login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Data uit 2 verschillende tabellen

Offline zarko - 08/05/2006 18:48
Avatar van zarkoNieuw lid Op een pagina vorm ik een URL de naam ervan haal ik uit tabel 'scheidsrechters' de id met de naam 'sid' haal ik uit de tabel 'scheidsrechters_info'.

In beide tabellen staan verschillende data.

Ik zie de namen ervan wel alleen de url dat ik wil voremen met het id ('sid') waarin de verwijzing naar de scheidsrechter voor uitvoerige informatie over hem staat werkt niet, althans het id ('sid') wordt niet weergegeven.

Het gaat hierbij om deze pagina: http://www.wkdu...dsrechters


  1. <?
  2. $query = mysql_query("SELECT * FROM scheidsrechters ORDER BY zone ASC");
  3. while($list = mysql_fetch_object($query)) {
  4. $kleur = ($i++ % 2) ? "$kleur1" : "$kleur2";
  5.  
  6. $query2 = mysql_query("SELECT * FROM scheidsrechters_info");
  7. $list2 = mysql_fetch_object($query2);
  8. $sid = "".$list2->sid."";
  9. $naam = "".$list->naam."";
  10. ?>


De URL vorm ik zo:
  1. <a href="index2.php?p=scheidsrechters-informatie&sid="<?=$sid?>""><?=$naam?></a>


Hoe krijg ik het nummer (sid) dat bij de scheidsrechter hoort?

16 antwoorden

Gesponsorde links
Offline Sitefoon - 08/05/2006 18:53
Avatar van Sitefoon Nieuw lid ="<?=$sid; ?>""><?=

staat in de tabel scheidsrechters 'sid';

want zo kun je aangeven dat die sid bij de scheidsrechter hoort

zodat je WHERE kunt gebruiken:
en daarboven heb je sid opgehaald uit de andere tabel

SELECT * FROM scheidsrechters WHERE sid=$id
Offline Stijn - 08/05/2006 18:54
Avatar van Stijn PHP expert hij neemt altijd ID 1 gebruik de WHERE in je 2e query

Verder zou ik dit aanpassen:

$sid = "".$list2->sid."";
$naam = "".$list->naam."";

=>

$sid = $list2->sid;
$naam = $list->naam;

groeten, stijn
Offline zarko - 08/05/2006 19:09 (laatste wijziging 08/05/2006 19:10)
Avatar van zarko Nieuw lid
Citaat:
staat in de tabel scheidsrechters 'sid';
Nee die staat in tabel 'scheidsrechters_info' omdat er al een naam is in de tabel 'scheidsrechters' met 'id' heb ik 't zo gedaan anders is 't beetje verwarrend.

Citaat:
gebruik de WHERE in je 2e query

Gedaan met: WHERE sid = '$_GET[sid]', maar nu geeft hij geen nummers meer weer, het is nu gewoon leeg als je langs de URL gaat.

Nog bedankt voor de tweede tip!;-)

Edit: wat typfoutjes!
Offline Ultimatum - 08/05/2006 19:15
Avatar van Ultimatum PHP expert doet hij het nu wel? want je moet geen $_GET in je WHERE gebruiken omdat je niks uit je url haalt maar uit je database, het moet dus een query zijn uit de database waar het id van de scheidsrechter staat
Offline Ibrahim - 08/05/2006 19:17
Avatar van Ibrahim PHP expert
  1. <?php
  2. $Query1 = mysql_query("SELECT * FROM tabel") or die("Query1 fout: <br />". mysql_error());
  3. $Fetchid = mysql_fetch_assoc ( $Query1 );
  4.  
  5. $Query2 = mysql_query("SELECT * FROM tabel2 WHERE id = '". $Fetchid['sid']."'") or die("Query2 fout: <br />". mysql_error());
  6.  
  7. $Fetchid2 = mysql_fetch_assoc( $Query2 );
  8. ?>

en de link:
<a href='index.php?sid=<?=$Fetchid2['id']?>'>Link</a>
Offline zarko - 08/05/2006 19:27
Avatar van zarko Nieuw lid @siliecom14, een fout:
Citaat:
query 2 fout:
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'scheidsrechters_info WHERE id = ''' at line 1
Offline Ibrahim - 08/05/2006 19:29
Avatar van Ibrahim PHP expert eeh je moet het wel aanpassen aan je eigen tabel dus sid moet dus de idnummer veldnaam zijn van tabel1
Offline zarko - 08/05/2006 19:35 (laatste wijziging 08/05/2006 19:35)
Avatar van zarko Nieuw lid
Citaat:
query 2 fout:
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'scheidsrechters_info WHERE sid = '3'' at line 1


Heeft deze fout ermee te maken omdat ik maar van twee scheidsrechters pas de uitgereide info heb geplaats?

Edit: m.a.w., moet ik nu voor elke scheidsrechter alle infor invoeren wil het goed werken?
Offline Ibrahim - 08/05/2006 19:36 (laatste wijziging 08/05/2006 19:46)
Avatar van Ibrahim PHP expert edit:

of je moet het in een while loop doen

  1. <?php
  2. $Query1 = mysql_query("SELECT * FROM tabel1") or die("Query1: <br />". mysql_error());
  3.  
  4. while( $Fetch1 = mysql_fetch_assoc( $Query1 ) )
  5. {
  6. $Query2 = mysql_query("SELECT * FROM tabel2 WHERE id = '". $Fetch1['id']."'") or die("Query2: <br />". mysql_error());
  7.  
  8. while( $Fetch2 = mysql_fetch_assoc( $Query2 ) )
  9. {
  10. echo '<a href="info.php?infoid='.$Fetch2['id'].'">'.$fetch1['naam'].'</a>';
  11. }
  12. }
  13. ?>


zo ongeveer en nu moet jij opletten op veiligheid enz en het uitbreiden en veranderen 
Offline zarko - 08/05/2006 19:44 (laatste wijziging 08/05/2006 19:44)
Avatar van zarko Nieuw lid Hmm... de fout blijft zich voordoen ondanks de while loop

  1. <?php
  2. $query1 = mysql_query("SELECT * FROM scheidsrechters ORDER BY zone ASC") or die("query 1 fout: <br />". mysql_error());
  3. while($fetchid = mysql_fetch_assoc ( $query1 )) {
  4. $kleur = ($i++ % 2) ? "$kleur1" : "$kleur2";
  5. $query2 = mysql_query("SELECT * scheidsrechters_info WHERE sid = '". $fetchid['id']."'") or die("query 2 fout: <br />". mysql_error());
  6.  
  7. $fetchid2 = mysql_fetch_assoc( $query2 );
  8.  
  9. $naam = $fetchid->naam;
  10. ?>


........Hier de HTML ed. .......

  1. <?
  2. }
  3. ?>
Offline Stijn - 08/05/2006 19:49
Avatar van Stijn PHP expert omg in je query2 moet je wel dit zetten: SELECT * FROM
Offline zarko - 08/05/2006 20:06
Avatar van zarko Nieuw lid Het is natuurlijk niet goed te praten dat ik 't vergat, maar als smoes gebruik ik dat ik evenstjes "blind" was!:p

Oke dat ook weer gefixt, maar kijk eens op de pagina: http://www.wkdu...dsrechters

daar zie je "niets" 

  1. <table width="100%" border="0" cellspacing="3" cellpadding="3">
  2. <tr>
  3. <td width="30%" style="border-bottom: 1px #2a2a2a solid"><strong>Naam</strong></td>
  4. <td width="40%" style="border-bottom: 1px #2a2a2a solid"><strong>Land</strong></td>
  5. <td width="30%" style="border-bottom: 1px #2a2a2a solid"><strong>Zone</strong></td>
  6. </tr>
  7.  
  8. <?
  9. // Stel hier de kleuren in die je wenst bij de achtergrondkleuren van de tabellen (om en om !)
  10. $kleur1 ="";
  11. $kleur2 ="#F4F4F4";
  12.  
  13. $query1 = mysql_query("SELECT * FROM scheidsrechters ORDER BY zone ASC") or die("query 1 fout: <br />". mysql_error());
  14. while($fetchid = mysql_fetch_assoc ( $query1 )) {
  15. $kleur = ($i++ % 2) ? "$kleur1" : "$kleur2";
  16. $query2 = mysql_query("SELECT * FROM scheidsrechters_info WHERE sid = '". $fetchid['id']."'") or die("query 2 fout: <br />". mysql_error());
  17.  
  18. $fetchid2 = mysql_fetch_assoc( $query2 );
  19.  
  20. $naam = $fetchid->naam;
  21. $vlag = $fetchid->vlag;
  22. $land = $fetchid->land;
  23. $zone = $fetchid->zone;
  24. ?>
  25. <tr bgcolor="<?=$kleur;?>">
  26. <td><a href="index2.php?p=scheidsrechters-informatie&sid=<?=$fetchid2['sid'];?>"><?=$naam;?></a></td>
  27. <td><img src="<? echo "scheidsrechters/images/$vlag"; ?>">&nbsp;&nbsp;&nbsp;<?=$land;?></td>
  28. <td><?=$zone;?></td>
  29. </tr>
  30. <?
  31. }
  32. ?>
  33. </table>
Offline Rens - 08/05/2006 20:08
Avatar van Rens Gouden medaille

Crew algemeen
Joins
Joins
Offline zarko - 08/05/2006 20:12
Avatar van zarko Nieuw lid Oke zal heb wel eens goed doornemen, maar kan iemand het snel fixen ander duurt het weer te lang tot ik alles heb uitgepuzzeld hoe de joins werken!
Offline Rens - 08/05/2006 20:20
Avatar van Rens Gouden medaille

Crew algemeen
Probeer dit eens:
  1. <table width="100%" border="0" cellspacing="3" cellpadding="3">
  2. <tr>
  3. <td width="30%" style="border-bottom: 1px #2a2a2a solid"><strong>Naam</strong></td>
  4. <td width="40%" style="border-bottom: 1px #2a2a2a solid"><strong>Land</strong></td>
  5. <td width="30%" style="border-bottom: 1px #2a2a2a solid"><strong>Zone</strong></td>
  6. </tr>
  7.  
  8. <?PHP
  9. // Stel hier de kleuren in die je wenst bij de achtergrondkleuren van de tabellen (om en om !)
  10. $kleur1 = "";
  11. $kleur2 = "#F4F4F4";
  12. $i = 0;
  13. $sQuery = "SELECT * FROM scheidsrechters ORDER BY zone ASC";
  14. if(!$rResult = MySQL_Query($sQuery))
  15. {
  16. echo MySQL_Error()." on line ".__LINE__;
  17. } else
  18. {
  19. while($aFetch = MySQL_Fetch_Assoc($rResult))
  20. {
  21. $kleur = ($i++ % 2) ? $kleur1 : $kleur2;
  22. ?>
  23. <tr bgcolor="<?=$kleur;?>">
  24. <td><a href="index2.php?p=scheidsrechters-informatie&sid=<?=$aFetch['id'];?>"><?=$aFetch['naam'];?></a></td>
  25. <td><img src="scheidsrechters/images/<?=$aFetch['vlag'];?>">&nbsp;&nbsp;&nbsp;<?=$aFetch['land'];?></td>
  26. <td><?=$aFetch['zone'];?></td>
  27. </tr>
  28. <?PHP
  29. }
  30. }
  31. ?>
  32. </table>

Die 2e query was trouwens nutteloos, je kunt toch net zo goed het ID uit de eerste tabel gebruiken i.p.v. hetzelfde ID maar dan uit de 2e tabel? 
Offline zarko - 08/05/2006 20:29 (laatste wijziging 08/05/2006 20:41)
Avatar van zarko Nieuw lid
Citaat:
Die 2e query was trouwens nutteloos, je kunt toch net zo goed het ID uit de eerste tabel gebruiken i.p.v. hetzelfde ID maar dan uit de 2e tabel?

Nee die is niet nutteloos je moet toch die 'sid' (nummer) daarvan hebben!

Op de manier zoals jij het hebt hierbove selecteert hij het id uit tabel 'scheidsrechters' maar ik moet die 'sid' hebben van tabel 'scheidsrechters_info'.

De fout kun je al direct op de pagina zien: http://www.wkdu...dsrechters

Bij die eerste naam 'Coffi Codjia' zijn id in de tabel 'scheidsrechters' id de nr. 3, maar in de tabel 'scheidsrechters_info' is zijn 'sid' nr. 1.

Klik er maar eens op die eerste scheidsrechter, dan krijg je de info van een andere scheidsrechter!

Edit:
Ik heb maar gekozen voor de, in mijn ogen, simpelste oplossing, en dat is gewoon dat ik de id's in beide tabellen voor dezelfde namen zelfde nummers geef!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.326s