login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Gegegevens uit ander tabel halen

Offline markdekker - 05/10/2008 18:39 (laatste wijziging 05/10/2008 18:42)
Avatar van markdekkerNieuw lid Ik zit met een probleem en hopelijk kan iemand mij hiermee helpen.

Door dit stukje zorg ik ervoor dat de ID van de game in de database word toegevoegd aan een profiel van een persoon:
  1. echo "<td><select size=\"1\" name=\"favogame\">";
  2.  
  3. $select = "SELECT * FROM games ORDER BY titel";
  4. $query = mysql_query($select)or die(mysql_error());
  5. while($list = mysql_fetch_object($query))
  6.  
  7. if($list->id== $favogame)
  8. echo "<option value=\"".$list->id."\" selected>".$list->titel."</option>";
  9. else
  10. echo "<option value=\"".$list->id."\">".$list->titel."</option>";
  11. echo "</select></td>";


Dus hierboven zorgt ervoor dat de ID van een game word toegvoegd aan $favogame, favogame is te vinden in het tabel leden_gegevens.

Dit werkt vooralsnog, maar nu zit ik met het probleem om de titel van de game aanklikbaar te maken.

Ik heb nu dit:

  1. $select = "SELECT * FROM games WHERE titel = '".$list->titel."'";
  2. $query = mysql_query($select);
  3.  
  4. if($list->favogame == "index.php?pagina=nieuws/lezen&id=" || empty($list->id))
  5. echo "Onbekend";
  6. else
  7. echo "<a href=\"index.php?pagina=games/lezen&id=".htmlspecialchars($list->favogame)."\" target=\"_self\">".htmlspecialchars($list->favogame)."</a>";
  8. ?>


Door het stukje code hierboven krijg ik het ID nummer te zien en die is ook aanklikbaar en word om de juiste manier naar de game toegestuurd. Het gedeelte dat aanklikbaar is werkt wel alleen ik wil dat de ID die je te zien krijgt , de titel word die te vinden is in het tabel games.

In het kort hoe het nu is:
- Tabel: games
ID
titel
- Tabel: leden_gegevens
favogame (hierin staan de ID's van tabel games)

ID uit het tabel games word toegevoegd aan favogame in tabel leden_gegevens.

Ik ook dat iemand weet hoe ik dit moet aanpakken. Ik hoorde iets over joins maar weet niet hoe ik dit moet gebruiken in mijn bovenstaande code.

5 antwoorden

Gesponsorde links
Offline zointer - 06/10/2008 04:37
Avatar van zointer HTML gevorderde Joins
http://www.site...ySQL/Joins
http://www.site...ySQL/Joins
Offline markdekker - 06/10/2008 07:24
Avatar van markdekker Nieuw lid Helaas kom ik er niet echt helemaal uit, de tutorials zien er zo simpel uit maar blijkt toch wat lastiger te zijn.

  1. $sql = "
  2. SELECT
  3. w.titel
  4. FROM
  5. games AS w
  6. INNER JOIN
  7. leden_gegevens AS f
  8. ON f.favogame = w.titel
  9. ";
  10.  
  11. if($list->favogame == "http://www.wildz.nl/nextgaming/index.php?pagina=nieuws/lezen&id=" || empty($list->id))
  12. echo "Onbekend";
  13. else
  14. echo "<a href=\"http://www.wildz.nl/nextgaming/index.php?pagina=games/lezen&id=".htmlspecialchars($list->favogame)."\" target=\"_self\">".htmlspecialchars($list->favogame)."</a>";


Heb nu het bovenstaande alleen weet nu niet precies hoe ik "titel" kan gebruiken als vervanger voor favogame.
Offline Kr4nKz1n - 06/10/2008 10:14
Avatar van Kr4nKz1n Onbekend Dit is totaal niet juist, geen mysql_query geen fetch.

$list->titel kun je nu gebruiken, mits je de functie implementeert.
Offline Mythix - 06/10/2008 14:19
Avatar van Mythix Nieuw lid Je tabelstructuur zit niet helemaal goed, het is te zeggen. tabellen joinen op basis van een titel is niet echt praktisch, als je table collation op case sensitive staat of er ergens een typfout gebeurd, of zelfs een spatie verdwijnt zit je in de problemen, best kan je werken met de PK en foreign key

verder zitten er nog wat fouten in je script zoals Krank aan aanhaalde,
als je een query uitvoerd krijg je een variabele terug van het type "result", hier moet je dan over loopen
  1. $result = mysql_query( $sql );
  2. //objecten ophalen
  3. while ($result = mysql_fetch_object( $result ){
  4. echo $result->titel;
  5. }
  6. //of associatieve arrays ophalen
  7. while ($result = mysql_fetch_assoc( $result ){
  8. echo $result['titel'];
  9. }
Offline TomJansen - 08/10/2008 10:43
Avatar van TomJansen Nieuw lid Ik neem aan dat Mark die mysql_query() en mysql_fetch_object() alleen voor het forum expres had weggelaten; zodat we ons beter kunnen richten op de essentie; om ons oogpijn te besparen zeg maar. En dat vind ik goed.
Er staat een query $sql en daaronder wordt $list uitgelezen. Da's duidelijk genoeg, en veel overzichtelijker zo.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.202s