anoniem Geplaatst: 24 juni 2003 Delen Geplaatst: 24 juni 2003 ik zit met het volgende probleem. een database tabel met rubrieken: rubriek_id 1 auto_increment, Primary key rubriek_naam Taal text etc.... rubriek_id 5 rubriek_naam Muziek...etc . Tabel met vragen: vraag_id int.11 , auto-increment, primary key rubriek_id int.11 vraag. text nu wil ik als ik de vragen tabel oproep niet het nummer van de rubriek zien maar uiteraard de naam. maar op mijn scherm verschijnt netjes in een tabel: Vraag nummer rubriek Vraag 1 5 Wie geeft mij zangles 2 8 wie doet mijn tuin... hoe pak ik zoiets aan? Quote Link naar reactie
anoniem Geplaatst: 24 juni 2003 Auteur Delen Geplaatst: 24 juni 2003 [quote:a0d52c2d9c="katrien"]hoe pak ik zoiets aan?[/quote:a0d52c2d9c] Met een [url=http://www.w3schools.com/sql/sql_join.asp]JOIN[/url] Quote Link naar reactie
anoniem Geplaatst: 24 juni 2003 Auteur Delen Geplaatst: 24 juni 2003 @Annie: wat is het verschil tussen 'union' en 'join'? Ps: als er 'ui' staat dan moet ik even aan m'n Engels werken! :P - Bas Quote Link naar reactie
anoniem Geplaatst: 25 juni 2003 Auteur Delen Geplaatst: 25 juni 2003 Met een UNION (en dus inderdaad geen onion ;)) combineer je resultsets tot 1 enkele resultset. Simpel gezegd: onder elkaar plakken van meerdere tabellen. Met een JOIN (bijv inner, outer, cross) geef je resultaten terug uit 2 of meer tabellen gebaseerd op een relatie tussen deze gegevens. Simpel gezegd: naast elkaar zetten van meerdere tabellen Wat simpele voorbeeld tabelletjes [code:1:6738818770] Tabel A: A1 | A2 ------- 1 | a 2 | b 3 | c 4 | d Tabel B: B1 | B2 ------- 1 | x 2 | y 3 | z [/code:1:6738818770] Wat voorbeeld output: [code:1:6738818770] UNION (ALL) result (kolomnamen uit tabelA worden gebruikt): A1 | A2 ------- 1 | a 2 | b 3 | c 4 | d 1 | x 2 | y 3 | z JOIN result (waarbij relatie op 1e kolom is gelegd; A1=B1): A1 | A2 | B1 | B2 ----------------- 1 | a | 1 | x 2 | b | 2 | y 3 | c | 3 | z [/code:1:6738818770] Quote Link naar reactie
anoniem Geplaatst: 25 juni 2003 Auteur Delen Geplaatst: 25 juni 2003 Aha, thanx! Kort doch duidelijk uitgelegd, daar houd ik van. :D - Bas Quote Link naar reactie
anoniem Geplaatst: 25 juni 2003 Auteur Delen Geplaatst: 25 juni 2003 damn ik heb er niet eens wat op aan te merken :x :wink: Quote Link naar reactie
anoniem Geplaatst: 25 juni 2003 Auteur Delen Geplaatst: 25 juni 2003 Dank je wel.. ik ga verder puzzelen. Quote Link naar reactie
anoniem Geplaatst: 25 juni 2003 Auteur Delen Geplaatst: 25 juni 2003 mooi het werkt in de myadmin krijg ik te zien wat ik bedoel, maar bij echo op het scherm geeft foutmelding.....iets doe ik dus nog fout in de fetch_row denk ik: $q=mysql_query("SELECT * vraag .vraag rubriek.rubriek_naam FROM vraag, rubriek where vraag.vraag_id=rubriek.rubriek_id LIMIT 0, 30"); while ($record=mysql_fetch_row($q)) { echo "<tr><td><center>$record[0]</center></td><td><center>$record[1]</center></td><td>$record[2]</td></tr>\n"; } echo "</table>"; echo "</td></tr></table>"; } Quote Link naar reactie
anoniem Geplaatst: 25 juni 2003 Auteur Delen Geplaatst: 25 juni 2003 1) Zet code tussen [code]...[/code] blokken 2) Wat voor foutmelding krijg je? Quote Link naar reactie
anoniem Geplaatst: 25 juni 2003 Auteur Delen Geplaatst: 25 juni 2003 Overigens ziet de query die je hier in je code hebt staan er niet helemaal jofel uit. Foutje bij de copy & paste naar het forum? Quote Link naar reactie
anoniem Geplaatst: 25 juni 2003 Auteur Delen Geplaatst: 25 juni 2003 foutmelding: Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in c:\phpdev\www\tweede ronde\gilde_site\vraag.php on line 16 kan inderdaad bij copy/paste wel wat gemist hebben [code:1:51d3dc9415]$q=mysql_query("SELECT * vraag .vraag rubriek.rubriek_naam FROM vraag, rubriek where vraag.vraag_id=rubriek.rubriek_id LIMIT 0, 30"); while ($record=mysql_fetch_row($q)) { echo "<tr><td><center>$record[0]</center></td><td><center>$record[1]</center></td><td>$record[2]</td></tr>\n"; } echo "</table>"; echo "</td></tr></table>"; } [/code:1:51d3dc9415] Quote Link naar reactie
anoniem Geplaatst: 25 juni 2003 Auteur Delen Geplaatst: 25 juni 2003 Het is [code:1:da6a5e3ad6]SELECT * FROM Tabel[/code:1:da6a5e3ad6] of [code:1:da6a5e3ad6]SELECT Kolom1, Kolom2 FROM Tabel[/code:1:da6a5e3ad6] [color=blue:da6a5e3ad6]tip:[/color:da6a5e3ad6] het is beter (lees: sneller) en vaak ook leesbaarder in een editor met highlighting om variabelen en strings te scheiden met een komma als je deze echo-ed, bijv. [code:1:da6a5e3ad6] echo "<tr><td>", $row[0], "</td><td>", $row[1], "</td></tr>";[/code:1:da6a5e3ad6] Quote Link naar reactie
anoniem Geplaatst: 26 juni 2003 Auteur Delen Geplaatst: 26 juni 2003 [quote:f6bb93ab6b="InZane"]damn ik heb er niet eens wat op aan te merken :x :wink:[/quote:f6bb93ab6b]misschien nog een kleine tip. Zorg ervoor dat de tabellen die je wilt samenvoegen met UNION over dezelfde kolomen beschikken. -R;emy Quote Link naar reactie
anoniem Geplaatst: 26 juni 2003 Auteur Delen Geplaatst: 26 juni 2003 [code:1:9e7aec4f11]$sql = "SELECT vraag.vraag, rubriek.rubriek_naam FROM vraag, rubriek WHERE vraag.vraag_id=rubriek.rubriek_id LIMIT 0, 30;"; $q = mysql_query($sql); while ($record=mysql_fetch_array($q)){ echo "<tr><td><center>".$record["vraag"]."</center></td><td><center>".$record["rubriek_naam"]."</center></td>\n"; } echo "</table>"; echo "</td></tr></table>"; [/code:1:9e7aec4f11]Bovenstaande code zou, hoewel niet getest, moeten werken. Vreemd iets: je vraagt maar 2 variabelen op met je query maar probeert 3 variabelen in een tabel te schrijven. Dat lijkt me niet helemaal juist, de gegeven code lijkt me duidelijk genoeg om uit te breiden zodat het gewenste resultaat te krijgen is. Succes ermee! - Bas Quote Link naar reactie
anoniem Geplaatst: 26 juni 2003 Auteur Delen Geplaatst: 26 juni 2003 [code:1:d7689f50f8]SELECT vraag.vraag, rubriek.rubriek_naam FROM vraag, rubriek WHERE vraag.vraag_id=rubriek.rubriek_id LIMIT 0, 30;[/code:1:d7689f50f8]Deze SQL-string is trouwens fout... want wat heeft vraag_id met rubruik_id te maken? Niets! Waarom worden ze gekoppeld? En Annie gaf als tip UNION, waarom wordt dit niet gebruikt? Oké WHERE id=id werkt ook (en de database ziet dit ook als een join) maar een JOIN is veel duidelijker\leesbaarder. De correcte SQL-string moet volgens mij als volgt zijn:[code:1:d7689f50f8]SELECT vraag.vraag, rubriek.rubriek_naam FROM vraag INNER JOIN rubriek ON vraag.rubriek_id=rubriek.rubriek_id LIMIT 0, 30;[/code:1:d7689f50f8]en volgens mij mag je in MySQL ook het volgende typen (maar is een tijdje geleden dat ik MySQL gebruikt heb, dus kan het fout hebben):[code:1:d7689f50f8]SELECT vraag.vraag, rubriek.rubriek_naam FROM vraag INNER JOIN rubriek USING rubriek_id LIMIT 0, 30;[/code:1:d7689f50f8] -Rémy Quote Link naar reactie
anoniem Geplaatst: 26 juni 2003 Auteur Delen Geplaatst: 26 juni 2003 bedankt voor alle hulp, met combinatie is het gelukt. op scherm krijg ik nu een keurige tabel met vraag_id, rubriek_id en vraag de query is zo geworden: [code:1:9a3dbb5bd1] $sql= "SELECT vraag.vraag_id, vraag.vraag, rubriek.rubriek_naam FROM vraag INNER JOIN rubriek ON vraag.rubriek_id=rubriek.rubriek_id LIMIT 0, 30;"; $q = mysql_query($sql); while ($record=mysql_fetch_array($q)){ echo "<tr><td><center>".$record["vraag_id"]."</center></td><td><center>".$record["rubriek_naam"]."</center></td><td>".$record["vraag"]."</td></tr>\n"; } echo "</table>"; echo "</td></tr></table>"; } [/code:1:9a3dbb5bd1] Quote Link naar reactie
anoniem Geplaatst: 30 juni 2003 Auteur Delen Geplaatst: 30 juni 2003 [quote:3bb8101219="Remytje"]En Annie gaf als tip UNION, waarom wordt dit niet gebruikt?[/quote:3bb8101219] Dat lees je dan toch echt fout :D Overigens ondersteund MySQL (in de 3 serie tenminste) geen UNION's. Quote Link naar reactie
anoniem Geplaatst: 30 juni 2003 Auteur Delen Geplaatst: 30 juni 2003 Foutje :oops: Bedoelde natuurlijk JOIN :wink: UNION wordt niet ondersteund (versie4 wel)... Daar kijk ik niet echt van op, subselects ook niet (versie 4.1 eindelijk wel), maar zo ontbreekt er nog heel wat aan MySQL. Jammer alleen dat je bij veel hostingbedrijven geen andere keuze hebt, zodat je 'verplicht' bent om er mee te werken, maar dit is een hele andere discussie (waarschijnlijk ook een lange discussie, als ik mij bedenk hoeveel mensen MySQL gebruiken :lol:) -Rémy Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen