Scheiden van resultaten query php en mysql

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • Stefan_99
  • Registratie: September 2015
  • Laatst online: 22-05 21:19
Ik ben bezig met een project voor school, waarbij we een website met php en mysql moeten maken.
Nu moeten we ook werken met query's, wat niet zo'n probleem is, echter lukt mij nu iets niet.

Ik probeer uit een tabel genaamd favorieten meerdere youtuber_id's te halen met de volgende query:SELECT youtuber_id FROM favorieten WHERE id='$id'

In de tabel staan dus een id en een youtuber_id. als een gebruiker(id) meerdere favorieten heeft, staat deze meerdere keren in de tabel met elke keer een andere youtuber_id. Nu heb ik een id met drie verschillende youtuber_id's.

Echter geeft de query als resultaat de 3 youtber_id's achter elkaar weer, wat op zich logisch is. Ik wil ze echter als 3 aparte variabelen krijgen die ik vervolgens kan gebruiken om uit de tabel youtubers gegevens op te halen. Kan iemand mij misschien helpen?

Beste antwoord (via Stefan_99 op 20-04-2016 22:18)


  • tha_crazy
  • Registratie: Maart 2007
  • Laatst online: 14:32

tha_crazy

Mafketel

Je zal de data in een Array moeten gooien.
http://php.net/manual/en/language.types.array.php

Nu overwrite die steeds de string waardoor je maar 1 waarde hebt.

Edit: je zou ook += kunnen doen in plaats van is, dan voegt die het steeds toe, maar is niet netter.

Tevens, escape je ID even, dit is vragen om SQL Injectie
http://php.net/manual/en/security.database.sql-injection.php
https://www.netsparker.co...ql-injection-cheat-sheet/

En nee, hobby project is geen excuus, aanleren dat je dat altijd doet!

[ Voor 19% gewijzigd door tha_crazy op 20-04-2016 21:48 ]

Alle reacties


Acties:
  • 0 Henk 'm!

  • The Eagle
  • Registratie: Januari 2002
  • Laatst online: 18:16

The Eagle

I wear my sunglasses at night

Maak er eens select distinct van? :)

En verder: geef even je datamodel weer. Hoe ziet de tabel er exact uit, wat probeer je exact boven waterr te halen? Simpelweg een select dumpen met een wat vage omschrijving helpt niet echt ;)

Having said that: hou in je achterhoofd dat GoT er niet is voor huiswerkvragen. We kunnen je hooguit een zetje in de goede richting geven, maar de rest moet je toch echt zelf uitvissen. Daar is het school voor ;)

Al is het nieuws nog zo slecht, het wordt leuker als je het op zijn Brabants zegt :)


Acties:
  • 0 Henk 'm!

  • theo98
  • Registratie: Mei 2013
  • Laatst online: 10-01 14:06
Allereerst nooit een query zo implementeren. Zo kan iemand een SQL injection doen en jouw db manipuleren.

Als je ze als variabelen wilt krijgen zul je ze moeten fetchen met PHP.

En je zult bij zulke vragen voortaan ook de db structuur mee moeten geven voor verheldering van je vraag (Het liefst een ERD natuurlijk).

Acties:
  • 0 Henk 'm!

  • kwaakvaak_v2
  • Registratie: Juni 2009
  • Laatst online: 02-06 12:29
dit los je op in php, en niet in mysql. iets met een for loopje enzulks.

Driving a cadillac in a fool's parade.


Acties:
  • 0 Henk 'm!

  • Stefan_99
  • Registratie: September 2015
  • Laatst online: 22-05 21:19
Afbeeldingslocatie: http://i65.tinypic.com/j8dt2s.png
Afbeeldingslocatie: http://i68.tinypic.com/b6x7o6.png
Afbeeldingslocatie: http://i64.tinypic.com/10xul9s.png
Afbeeldingslocatie: http://i66.tinypic.com/2wmkjs2.png

Wat ik wil is dus een lijst van favorieten krijgen van een gebruiker met een id. De id staat nu zoals te zien op de foto een aantal keer in de tabel favorieten. De youtuber_id's gebruik ik om de link naar het kanaal ervan en de naam uit de tabel youtubers te halen. Nu wordt van de gevonden youtber_id's 1 string gemaakt, maar ik wil dus verschillende strings zodat ik al die youtubers kan weergeven.

Wat er gebeurt als de id er maar een keer staat, met youtuber_id 1 is dat de link naar het kanaal van pewdiepie verwijst en de link de naam PewDiePie heeft.

Het commentaar dat er staat komt door het kopiëren vanaf een andere pagina

[ Voor 20% gewijzigd door Stefan_99 op 20-04-2016 21:41 ]


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • tha_crazy
  • Registratie: Maart 2007
  • Laatst online: 14:32

tha_crazy

Mafketel

Je zal de data in een Array moeten gooien.
http://php.net/manual/en/language.types.array.php

Nu overwrite die steeds de string waardoor je maar 1 waarde hebt.

Edit: je zou ook += kunnen doen in plaats van is, dan voegt die het steeds toe, maar is niet netter.

Tevens, escape je ID even, dit is vragen om SQL Injectie
http://php.net/manual/en/security.database.sql-injection.php
https://www.netsparker.co...ql-injection-cheat-sheet/

En nee, hobby project is geen excuus, aanleren dat je dat altijd doet!

[ Voor 19% gewijzigd door tha_crazy op 20-04-2016 21:48 ]


Acties:
  • 0 Henk 'm!

  • Edwin88
  • Registratie: Januari 2005
  • Laatst online: 12-09 16:01
Download sequel pro of een gelijksoortig database programma waar je snel kan spelen met verschillende queries.

Verder kan je deze queries ook samen voegen, google maar eens naar JOIN.

Acties:
  • +1 Henk 'm!

  • The Eagle
  • Registratie: Januari 2002
  • Laatst online: 18:16

The Eagle

I wear my sunglasses at night

kwaakvaak_v2 schreef op woensdag 20 april 2016 @ 21:30:
dit los je op in php, en niet in mysql. iets met een for loopje enzulks.
Bullshit. Applicatielogica stop je in je applicatie, maar de juiste data ophalen obv variabelen (en dus ook alle overzichtpagina's) laat je door de DB afhandelen. Dan is het 1x een query afvuren en de hele resultset dsplayer. Dat laatste doe je in pho volgens mij idd met een loopje als ik het zo zie.

Maar die data in 1x ophalen, dat kan met SQL echt niet zo lastig zijn.

Al is het nieuws nog zo slecht, het wordt leuker als je het op zijn Brabants zegt :)


Acties:
  • 0 Henk 'm!

  • Stefan_99
  • Registratie: September 2015
  • Laatst online: 22-05 21:19
Ik heb het door middel van een array opgelost. Nu moet ik nog even gaan uitvogelen hoe ik die verschillende links onder elkaar ga weergeven. Ik snap alleen niet helemaal hoe ik nou precies die sql injection tegen moet gaan?

Acties:
  • +1 Henk 'm!

  • Edwin88
  • Registratie: Januari 2005
  • Laatst online: 12-09 16:01
Google... Sql injection. We gaan niet alles voor je doen ;)

Acties:
  • 0 Henk 'm!

  • kwaakvaak_v2
  • Registratie: Juni 2009
  • Laatst online: 02-06 12:29
The Eagle schreef op woensdag 20 april 2016 @ 21:57:
[...]

Bullshit. Applicatielogica stop je in je applicatie, maar de juiste data ophalen obv variabelen (en dus ook alle overzichtpagina's) laat je door de DB afhandelen. Dan is het 1x een query afvuren en de hele resultset dsplayer. Dat laatste doe je in pho volgens mij idd met een loopje als ik het zo zie.

Maar die data in 1x ophalen, dat kan met SQL echt niet zo lastig zijn.
hoezo bullshit? Ik zeg toch nergens dat hij per te vullen variable een query moet runnen? Misschien dat het door je enterprise zonnebril anders kijken is. Maar het is zoals je zelf ook al zegt, vrij normaal dat je één resultset ophaalt en vervolgens met een loop daar de output van regelt.

Driving a cadillac in a fool's parade.


Acties:
  • 0 Henk 'm!

  • Stefan_99
  • Registratie: September 2015
  • Laatst online: 22-05 21:19
Het is gelukt zoals ik het wilde. Bedankt!

Acties:
  • 0 Henk 'm!

  • The Eagle
  • Registratie: Januari 2002
  • Laatst online: 18:16

The Eagle

I wear my sunglasses at night

kwaakvaak_v2 schreef op donderdag 21 april 2016 @ 11:00:
[...]


hoezo bullshit? Ik zeg toch nergens dat hij per te vullen variable een query moet runnen? Misschien dat het door je enterprise zonnebril anders kijken is. Maar het is zoals je zelf ook al zegt, vrij normaal dat je één resultset ophaalt en vervolgens met een loop daar de output van regelt.
Dus feitelijk zeg je dat je nooit een probleem kan zijn om meer data op te halen dan je nodig hebt, want met een loopje regel je de output op het scherm toch wel?
Als je zeg 10k regels ophaalt uit de DB, om er vervolgens slechts 10 per pagina te tonen waarbij je ook nog eens maar de helft van de velden gebruikt, dan lijkt me dat een vrij dure en onnodige exercitie eerlijk gezegd.
En 10k regels n een tabel is echt geen enterprise hoeveelheid. Een beetje bedrijsboekhouding van een jaar heeft dat zonder veel gekke dingen al.

Al is het nieuws nog zo slecht, het wordt leuker als je het op zijn Brabants zegt :)


Acties:
  • +1 Henk 'm!

  • kwaakvaak_v2
  • Registratie: Juni 2009
  • Laatst online: 02-06 12:29
Kun je nog meer verzinnen om je gelijk te af te dwingen?

Wat je in je alleen in je hele betoog vergeet :het is een school opdracht en een beginner. Ben er niet helemaal van overtuigd niet dat cursors of pagination al in het lesmateriaal staan.

Driving a cadillac in a fool's parade.

Pagina: 1