hulp nodig bij JOIN

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dirk

Dirk

10/01/2007 13:50:00
Quote Anchor link
Ik heb hulp nodig bij het volgende:

Ik heb een MySQL-database met twee tabellen:

- tdias (met de velden diaID, diaPad, diaOmschrijving en diaPrijsID)
- tprijs (met de velden prijsID en prijstekst)

Ik wil een overzicht van alle records die in de database staan, maar in plaats van het veld diaPrijsID zou ik graag de waarden van het veld prijstekst uit de tabel tprijs laten zien. Ik weet dat dit mogelijk is door een JOIN. Ik heb al op het forum en de tutorials gezocht, maar wat ik ook probeer: ik krijg het niet voor elkaar. Ik heb de volgende code:


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
//verwijzign naar extern formulier naar verbinding met naam database, username en password
include("verbinding/connect.php");


//query definieren
$q_allesophalen="SELECT * FROM tdias"; //selecteer alles uit de tabel tdias
$alles=mysql_query($q_allesophalen); //het resultaat heet 'alles'
$num=mysql_numrows($alles); //tel het aantal rijen van het resultaat
mysql_close(); //sluiten


//titel maken voor pagina en loopje draaien

echo "<b><center>Database Output</center></b><br><br>";
$i=0;
while($i < $num)
{

    //alle gevonden records laten zien
    $diaID=mysql_result($result,$i,"diaID");
    $diaPad=mysql_result($result,$i,"diaPad");
    $diaOmschrijving=mysql_result($result,$i,"diaOmschrijving");
    $diaprijsID=mysql_result($result,$i,"diaprijsID");
    echo "<b>$diaID $diaPad</b><br>Omschrijving: $diaOmschrijving<br>diaPrijsID: $diaPrijsID<br><hr><br>";
    $i++;
}

?>


Die selecteert dus alleen de records uit de tabel tdias. Kan iemand me helpen met het maken van de JOIN?
Alvast enorm bedankt!
Dirk
 
PHP hulp

PHP hulp

19/11/2024 17:28:23
 
Joren de Wit

Joren de Wit

10/01/2007 14:05:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
SELECT
    d.diaID,
    d.diaPad,
    d.diaOmschrijving,
    p.prijstekst
FROM
    tdias AS d,
    tprijs AS p
WHERE
    d.diaPrijsID = p.prijsID
 
Dirk

Dirk

10/01/2007 14:55:00
Quote Anchor link
Misschien een stomme vraag, maar ik ben redelijk nieuw met PHP:
waarom zetten we nu d. en p. voor de veldnamen, en wat betekent AS?
Ik ga het direct proberen, maar wil altijd graag weten wat het script precies doet...
Alvast bedankt!
Dirk
 
Joren de Wit

Joren de Wit

10/01/2007 15:22:00
Quote Anchor link
Ik gebruik een alias voor de tabelnamen, dat doe je door middel van die AS. Je kunt ook zonder aliasses werken, maar dan zul je de hele tabelnaam voor de kolomnaam moeten zetten.
 
Klaasjan Boven

Klaasjan Boven

10/01/2007 15:24:00
Quote Anchor link
AS is een ALIAS

Let op:
Je vraagt uit beide tabellen het id.
Als je nu de query zou afsluiten met id=id
heeft de Database geen idee welk id je bedoelt :)
Daar doe je normaal gesproken iets als tabel1.id=tabel2.id
Voor de luie mensen is uitgevonden dat je de tabelle ook mag hernoemen, grbuik dit echter zinvol. In de query van Blanche is in één oogopslag te zien wat er wordt bedoelt. Bij ingewikkelde querys uit meerdere tabellen is dit soms lastig. Gebruik dan ook zinvolle Aliassen. Bijvoorbeeld jouw query:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
SELECT
    dia.diaID,
    dia.diaPad,
    dia.diaOmschrijving,
    prijs.prijstekst
FROM
    tdias AS dia,
    tprijs AS prijs
WHERE
    dia.diaPrijsID = prijs.prijsID


NU is precies duidelijk uit welke tabel een en ander komt. Ow ja dit is trouwens geen php maar sql;)
Gewijzigd op 01/01/1970 01:00:00 door Klaasjan Boven
 
Dirk

Dirk

10/01/2007 15:51:00
Quote Anchor link
Aha, dat klinkt inderdaad logisch!
Ik krijg nu de volgende melding:

Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in /home/virtual/site32/fst/var/www/html/diadb3.php on line 24

Line 24 correspondeert met rij 9 in de code die ik in de eerste post heb gezet.
Enig idee wat dat inhoudt?

@Klaasjan: je hebt gelijk, het is sql... Ik ben lekker bezig in Flash, en vond dat ik nu eindelijk maar eens 'echt' dynamische sites moest gaan bouwen, vandaar mijn overstap naar PHP en MySQL. Valt nog niet mee hoor...! In ieder geval bedankt voor al jullie hulp, ik waardeer het enorm dat jullie een NOOB op weg willen helpen!
 
Klaasjan Boven

Klaasjan Boven

10/01/2007 18:57:00
Quote Anchor link
Ook een newbie is op phphulp welkom
Quote:
Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in /home/virtual/site32/fst/var/www/html/diadb3.php on line 24


Betekend vaak dat je query niet gelukt is
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.