resulaat van query tonen m.b.v. mysql_fetch_array

Status
Niet open voor verdere reacties.

jansbl

Gebruiker
Lid geworden
1 mrt 2007
Berichten
86
Hallo,

Ik heb een database met daarin een tabel personen en een tabel plaatsnamen.
De tabel personen heeft zowel een kolom geboorte_plaats als overleden_plaats.
Die beide kolommen verwijzen naar de tabel plaatsnamen.

Ik heb een goedwerkende query die alle gegevens toont in phpMyAdmin.
Alleen nu heb ik wat problemen om de gegevens zichtbaar te maken in php.

De query ziet er als volgt uit:
Code:
SELECT * 
FROM personen
JOIN plaatsen pl_geb ON personen.art_geb_plaats = pl_geb.plaats_id
LEFT JOIN plaatsen pl_overl ON personen.art_overl_plaats = pl_overl.plaats_id

In php heb ik het volgende stukje script:
Code:
$sql ="SELECT * FROM personen JOIN plaatsen pl_geb ON personen.art_geb_plaats = pl_geb.plaats_id LEFT JOIN personen pl_overl ON personen.art_overl_plaats = pl_overl.plaats_id" ;

$resultaat = mysql_query($sql);
echo $resultaat;
if (mysql_num_rows($resultaat) > 0) {
echo "<table border=1>";
echo "<tr><td><b>Voornaam</b></td><td><b>Achternaam</b></td><td><b>Geb. Datum</b></td><td><b>Artiest</b></td><td><b>Naam";
echo "</b></td><td><b>Geb. plaats</b></td><td><b>Geb. land</b></td><td><b>Overleden in</b></td></tr>";

while ($rij = mysql_fetch_array($resultaat)){
echo"<tr>";
echo "<td>".$rij['art_geb_voornaam']. "</td>";
echo "<td>".$rij['art_geb_achternaam']. "</td>";
echo "<td>".$rij['art_geb_datum']. "</td>";
echo "<td>".$rij['art_voornaam']. "</td>";
echo "<td>".$rij['art_achternaam']. "</td>";
echo "<td>".$rij['plaats_naam']. "</td>";
echo "<td>".$rij['plaats_land']. "</td>";
echo "<td>".$rij['plaats_naam']. "</td>";
echo"</tr>";
}
echo "</table>";
}

Met deze script worden niet meer de geboorteplaatsen getoond, maar alleen de plaats van overlijden.
Ik vermoed dat de truuk wel zal zitten in de mysql_fetch_array($resultaat).
Maar wat is de juiste manier om alles zichtbaar te maken?

B.v.d.,
Jans
 
Dat komt waarschijnlijk omdat je twee keer hetzelfde aanroept:
PHP:
echo "<td>".$rij['plaats_naam']. "</td>";
echo "<td>".$rij['plaats_land']. "</td>";
echo "<td>".$rij['plaats_naam']. "</td>";

Kijk anders even hoe hij in de array bekend is
PHP:
while ($rij = mysql_fetch_array($resultaat)){
  print_r($rij);
  echo '<br /><br />';
}
 
Dat komt waarschijnlijk omdat je twee keer hetzelfde aanroept:
PHP:
echo "<td>".$rij['plaats_naam']. "</td>";
echo "<td>".$rij['plaats_land']. "</td>";
echo "<td>".$rij['plaats_naam']. "</td>";

Kijk anders even hoe hij in de array bekend is
PHP:
while ($rij = mysql_fetch_array($resultaat)){
  print_r($rij);
  echo '<br /><br />';
}

Dat ik twee keer hetzelfde wil printen moet natuurlijk niet, maar dan ging dan ook mijn vraag over. De ene keer moet de geboorteplaats worden getoond, de tweede keer de plaats van overlijden.
Ik zal vanavond even kijken hoe het in de array staat door jouw regels te gebruiken.
Alvast bedankt.
Ik kom hierop nog terug.

Jans
 
Moment,

ik moet even beter de query bekijken
Jans
 
Laatst bewerkt:
Als het goed is wordt dan bovenin ook de naam van het veld weergegeven.

Heten ze daar dan ook hetzelfde?
 
Onderstaand is de array:

Code:
Array ( 
[0] => 2 [art_id] => 2 
[1] => Farrokh Bomi[art_geb_voornaam] => Farrokh Bomi 
[2] => Bulsara [art_geb_achternaam] => Bulsara 
[3] => Freddy [art_voornaam] => Freddy 
[4] => Mercury [art_achternaam] => Mercury 
[5] => 1946-09-05 [art_geb_datum] => 1946-09-05 
[6] => 2 [art_geb_plaats] => 2 
[7] => 1991-11-24 [art_overl_datum] => 1991-11-24 
[8] => 3 [art_overl_plaats] => 3 
[9] => [art_opmerkingen] => 
[10] => 2 [plaats_id] => 3 
[11] => Stone Town [plaats_naam] => London 
[12] => Zanzibar [plaats_land] => England 
[13] => [plaats_opmerkingen] => 
[14] => 3 
[15] => London 
[16] => England 
[17] => 
)

Ik zie wel al dat er iets verkeerd zit, maar weet nog niet waarom :o

In de array zijn de [0] t/m [9] de kolommen v.d. tabel personen (zijn correct).
Bij 6 zie je geboorteplaats: => 2 [art_geb_plaats] => 2 De 2 is de plaats_id in de tabel plaatsen.
Bij [8] de plaats van overlijden: [8] => 3 [art_overl_plaats] => 3 De 3 is dan weer de plaats_id in de tabel plaatsen.

Vanaf [10] gaat het mis:
Bij [10] verandert plaats_id van 2 naar 3
Bij [11] verandert dan Stone Town in London
[12] gaat op dezelfde manier mis
[13] is leeg (opmerkingen)
[14] t/m [16] is plaats_id 3 , London, Engeland


Jans
 
Nog niet veel verder

Ik heb nog wat dingen geprobeerd, maar ben er nog niet in geslaagd om het probleem op te lossen.
Dus als iemand nog een idee heeft, heel graag.

Jans
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan