Bekijk Volledige Versie : variabele uit andere tabel oproepen
Hallo,
Ik wil graag een variabele uit een tabel aanroepen, met een voorwaarde, dus
$sql = "select * FROM reacties WHERE cursus = '$cursus' ORDER BY id DESC ";
Ik wil dus alle reacties waar cursus "een_bepaalde_cursus" is, aanroepen.
Wat die cursus is, is al eerder uit een andere tabel gehaald. Hoe kan ik er
nu voor zorgen dat de server weet wat $cursus is? Nu lukt het namelijk nog
niet.
Het zit dus zo: alle cursussen heb ik een een tabel staan, de tabel
'cursus'. Hier zit ook een kolom 'cursus in', waarin ik aangeef welke cursus
het is, bijvoorbeeld html.
Dan is er nog de tabel reacties. Hierin staat weer een kolom 'cursus'. Als
er nou een reactie is op 'html'(dus in de 2e tabel staat in de kolom
'cursus' 'html', dan moeten alle reacties waar als cursus 'html' staat
opgegeven, weergegevn worden. Snap je?
Alvast bedankt,
Rick
Daniel Tryba
01/04/03, 01:35
Rick <r.haasteren@planeet.nl> wrote:
> Ik wil graag een variabele uit een tabel aanroepen, met een voorwaarde, dus
> $sql = "select * FROM reacties WHERE cursus = '$cursus' ORDER BY id DESC ";
>
> Ik wil dus alle reacties waar cursus "een_bepaalde_cursus" is, aanroepen.
> Wat die cursus is, is al eerder uit een andere tabel gehaald. Hoe kan ik er
> nu voor zorgen dat de server weet wat $cursus is? Nu lukt het namelijk nog
> niet.
>
> Het zit dus zo:
[knip]
> Snap je?
Ik snap het in iedergeval niet. Begin eens met uit te leggen waar het
uberhaupt over gaat, wie is die server, wat kan ie en welke taal babbelt
hij, waar staan die tabellen en hoe spreek je die aan? Ik kan wel gaan
gokken maar daar is het nu veels te laat voor.
--
Daniel Tryba
Daniel Tryba wrote:
> Rick <r.haasteren@planeet.nl> wrote:
>> Ik wil graag een variabele uit een tabel aanroepen, met een
>> voorwaarde, dus $sql = "select * FROM reacties WHERE cursus =
>> '$cursus' ORDER BY id DESC ";
>>
>> Ik wil dus alle reacties waar cursus "een_bepaalde_cursus" is,
>> aanroepen. Wat die cursus is, is al eerder uit een andere tabel
>> gehaald. Hoe kan ik er nu voor zorgen dat de server weet wat $cursus
>> is? Nu lukt het namelijk nog niet.
>>
>> Het zit dus zo:
> [knip]
>> Snap je?
>
> Ik snap het in iedergeval niet. Begin eens met uit te leggen waar het
> uberhaupt over gaat, wie is die server, wat kan ie en welke taal
> babbelt hij, waar staan die tabellen en hoe spreek je die aan? Ik kan
> wel gaan gokken maar daar is het nu veels te laat voor.
Ja, het is inderdaad een beetje een vaag verhaal zie ik nu:-~. M'n server
spreekt vloeiend php. Ik heb in m'n mysql DB twee tabellen staan: 'reacties'
en 'cursus'. In cursus staan o.a. de kolommen 'cursusnaam' en 'id'. In
reacties staat onder andere 'cursusnaam'. Nu moet er dus een cursus uit de
tabel 'cursus' worden aangeroepen, waarbij ik de 'id' in de URL opgeef.
Laten we aannemen dat in de kolom 'cursusnaam' uit de tabel 'cursus' staat
aangegeven dat het een cursus 'html' is. Dit gaat allemaal prima, maar nu
wil ik dat alleen alle reacties worden getoond waarbij 'cursusnaam' html is.
Ik wil dus de variabele uit de ene tabel gebruiken om een bepaald deel van
een andere tabel aan te roepen. Dit is nog niet gelukt.
Ik hoop dat het zo iets duidelijker is.
Alvast bedankt!
Rick
Maarten Wierda
01/04/03, 14:05
Rick wrote:
> Ja, het is inderdaad een beetje een vaag verhaal zie ik nu:-~. M'n server
> spreekt vloeiend php. Ik heb in m'n mysql DB twee tabellen staan: 'reacties'
> en 'cursus'. In cursus staan o.a. de kolommen 'cursusnaam' en 'id'. In
> reacties staat onder andere 'cursusnaam'. Nu moet er dus een cursus uit de
> tabel 'cursus' worden aangeroepen, waarbij ik de 'id' in de URL opgeef.
>
> Laten we aannemen dat in de kolom 'cursusnaam' uit de tabel 'cursus' staat
> aangegeven dat het een cursus 'html' is. Dit gaat allemaal prima, maar nu
> wil ik dat alleen alle reacties worden getoond waarbij 'cursusnaam' html is.
> Ik wil dus de variabele uit de ene tabel gebruiken om een bepaald deel van
> een andere tabel aan te roepen. Dit is nog niet gelukt.
Heb je geen cursus ID in de tabel reacties staan?
cursus -> id, naam
reacties -> naam
Dus je selecteert eerst een cursusnaam a.h.v. het ID en dan wil je daar
alle reacties van?
--
Cheers, Maarten Wierda
"Won't you believe it. It's just my luck. No Recess." - K.D. Cobain
Maarten Wierda wrote:
> Rick wrote:
>
>> Ja, het is inderdaad een beetje een vaag verhaal zie ik nu:-~. M'n
>> server spreekt vloeiend php. Ik heb in m'n mysql DB twee tabellen
>> staan: 'reacties' en 'cursus'. In cursus staan o.a. de kolommen
>> 'cursusnaam' en 'id'. In reacties staat onder andere 'cursusnaam'.
>> Nu moet er dus een cursus uit de tabel 'cursus' worden aangeroepen,
>> waarbij ik de 'id' in de URL opgeef.
>>
>> Laten we aannemen dat in de kolom 'cursusnaam' uit de tabel 'cursus'
>> staat aangegeven dat het een cursus 'html' is. Dit gaat allemaal
>> prima, maar nu wil ik dat alleen alle reacties worden getoond
>> waarbij 'cursusnaam' html is. Ik wil dus de variabele uit de ene
>> tabel gebruiken om een bepaald deel van een andere tabel aan te
>> roepen. Dit is nog niet gelukt.
>
> Heb je geen cursus ID in de tabel reacties staan?
>
> cursus -> id, naam
>
> reacties -> naam
>
> Dus je selecteert eerst een cursusnaam a.h.v. het ID en dan wil je
> daar
> alle reacties van?
Ja, beide hebben een id, maar staan in een andere tabel. De reacties staan
dus niet in dezelfde tabel als de cursus
Thnx
Rick
Maarten Wierda
01/04/03, 20:35
Rick wrote:
[...]
>>Heb je geen cursus ID in de tabel reacties staan?
>>
>>cursus -> id, naam
>>
>>reacties -> naam
>>
>>Dus je selecteert eerst een cursusnaam a.h.v. het ID en dan wil je
>>daar
>>alle reacties van?
>
>
> Ja, beide hebben een id, maar staan in een andere tabel. De reacties staan
> dus niet in dezelfde tabel als de cursus
Je had er denk ik beter aan gedaan om een cursus ID op te slaan in de
tabel reacties. Ik weet nl. niet hoe je met deze structuur de reacties
kunt ophalen m.b.v. e1n query. Het kan wel eenvoudig met 2 queries.
+-
$getNaam = mysql_qyery("SELECT naam FROM cursus WHERE id =
".$_GET['id']."");
$theNaam = mysql_result($getNaam, 0, "naam");
$getReacties = mysql_query("SELECT * FROM reacties WHERE naam =
'".$theNaam."'");
--
Cheers, Maarten Wierda
"Smack it! Beat it! Masturbate it!" - K.D. Cobain
Maarten Wierda wrote:
> Rick wrote:
>
> [...]
>>> Heb je geen cursus ID in de tabel reacties staan?
>>>
>>> cursus -> id, naam
>>>
>>> reacties -> naam
>>>
>>> Dus je selecteert eerst een cursusnaam a.h.v. het ID en dan wil je
>>> daar
>>> alle reacties van?
>>
>>
>> Ja, beide hebben een id, maar staan in een andere tabel. De reacties
>> staan dus niet in dezelfde tabel als de cursus
>
> Je had er denk ik beter aan gedaan om een cursus ID op te slaan in de
> tabel reacties. Ik weet nl. niet hoe je met deze structuur de reacties
> kunt ophalen m.b.v. e1n query. Het kan wel eenvoudig met 2 queries.
>
> +-
>
> $getNaam = mysql_qyery("SELECT naam FROM cursus WHERE id =
> ".$_GET['id']."");
>
> $theNaam = mysql_result($getNaam, 0, "naam");
>
> $getReacties = mysql_query("SELECT * FROM reacties WHERE naam =
> '".$theNaam."'");
Het probleem is dat er meerdere cursussen zijn die dezelfde lijst met
reacties moeten krijgen. Dus een html-cursus bestaande uit 12 pagina's heeft
onderaan telkens de reacties op de gehele cursus staan.
Met de 2 queries die je me gaf lukt het aardig, ik krijg nu alleen niet de
resultaten uit de tabel 'reacties', maar uit 'cursus', en dat is dus niet de
bedoeling.
Verder heb ik WHERE id = ".$_GET['id'].""); vervangen door WHERE id =
'$id'"); maakt dat nog iets uit?
Thnx
Maarten Wierda
02/04/03, 13:05
Rick wrote:
> > > Ja, beide hebben een id, maar staan in een andere tabel. De reacties
> > > staan dus niet in dezelfde tabel als de cursus
> >
> > Je had er denk ik beter aan gedaan om een cursus ID op te slaan in de
> > tabel reacties. Ik weet nl. niet hoe je met deze structuur de reacties
> > kunt ophalen m.b.v. e1n query. Het kan wel eenvoudig met 2 queries.
> >
> > +-
> >
> > $getNaam = mysql_qyery("SELECT naam FROM cursus WHERE id =
> > ".$_GET['id']."");
> >
> > $theNaam = mysql_result($getNaam, 0, "naam");
> >
> > $getReacties = mysql_query("SELECT * FROM reacties WHERE naam =
> > '".$theNaam."'");
>
> Het probleem is dat er meerdere cursussen zijn die dezelfde lijst met
> reacties moeten krijgen. Dus een html-cursus bestaande uit 12 pagina's heeft
> onderaan telkens de reacties op de gehele cursus staan.
Maar als je m.b.v. de query $getReacties de reacties ophaalt, lukt dat
toch. Kun je dit iets meer toelichten?
> Met de 2 queries die je me gaf lukt het aardig, ik krijg nu alleen niet de
> resultaten uit de tabel 'reacties', maar uit 'cursus', en dat is dus niet de
> bedoeling.
Vreemd. SELECT * FROM reacties mag nooit gegevens uit de tabel cursus
weergeven.
> Verder heb ik WHERE id = ".$_GET['id'].""); vervangen door WHERE id =
> '$id'"); maakt dat nog iets uit?
Ja dat maakt zeker iets uit. Ik raad je sterk aan superglobals te
gebruiken <http://80.84.227.171/artikelen.php?aid=88>.
Overigens is de manier die ji nu hanteert een hele verkeerde manier. Het
beste is om een kolom in de tabel reacties toe te voegen genaamd
cursus_id. Dan kun je nl. direct op de tabel reacties selecteren.
--
Cheers, Maarten Wierda
"Won't you believe it. It's just my luck. No Recess." - K.D. Cobain