Hoi,

Ik heb een probleem ik wil 2x while gebruiken.
Maar ik krijg geen waardes van de table users.
ik zie niet direct mijn fout.
hopelijk kunnen jullie helpen.
Alvast dank


<?php 
$sql='SELECT * FROM busleden';
$rs=$con->query($sql);
while($row = $rs->fetch_assoc()){ ?>
<? $id = $row['lid']; ?>
<?php 
$sqls='SELECT * FROM users WHERE eid ="'.$id.'"';
$rss=$con->query($sqls);
while($rows = $rss->fetch_assoc()){ ?>
<? echo $rows['voornaam']; ?>
<? $achternaam = $rows['achternaam']; ?>
           {
             firstName: '<? echo $rows['voornaam']; ?>',
             lastName: '<? echo $achternaam ?>',
             betaald: '<? echo $row['betaald']; ?>',
			 opgestapt: '<? echo $row['opgestapt']; ?>',
             key: '<? echo $row['eid']; ?>',
           },
<? } ?>
<? } ?> 
waarom all die <?php
?>
---

en voor mij persoonlijk een beetje raar gescript maar gimmy sec dan pas ik beetje aan
en dan kan je kijken of hij wel werkt

[size=xsmall]Toevoeging op 23/08/2019 11:17:30:[/size]

probeer dit is als test

<?php 
$sql='SELECT * FROM busleden';
$rs=$con->query($sql);
while($row = $rs->fetch_assoc()){ 
$id = $row['lid']; 
 
$sqls='SELECT * FROM users WHERE eid ='$id'';
$rss=$con->query($sqls);
while($rows = $rss->fetch_assoc()){ 
echo 'firstName: '.$rows['voornaam'].'<br>';
echo 'lastName: '.$rows['achternaam'].'<br>';
echo 'betaald: '.$row['betaald'].'<br>';
echo 'opgestapt:'.$row['opgestapt'].'<br>';
echo 'key:'.$row['eid'].'<br><hr>';

} 
}

?>
Je bent ervan bewust dat je met een while in een while onnodig veel queries draait?

Een oplossing met een JOIN is overigens veel efficiënter.


Ook vraag ik mij af wat het verschil is tussen users en busleden? Ik heb eerder het idee dat een user zelf een buslid kan zijn, en dat je met één databasetabel prima uit de voeten kan.
Beste alvast bedankt.

ik heb een test gedaan. Maar ik krijg nog geen voornaam.
firstName: <br>lastName: <br>betaald: ja<br>opgestapt:ja<br>key:9999<br><hr>firstName: <br>lastName: <br>betaald: nee<br>opgestapt:nee<br>key:2<br><hr>

Ariën: het nadeel is dat in busleden enkel de id aanwezig is van users en geen voornaam of achternaam.
Maar waarom zou je die gegevens in aparte tabellen opslaan. Laat jouw tabelstructuur eens zien. Want ik heb sterk het idee dat er wat bijgeschaafd kan worden. Of anders aan de naamgeving of de queries, om het efficiënter te maken.

Want als je een whileloop in een whileloop gebruikt met queries, dan gaat hier een orkest aan alarmbellen rinkelen.

Een user kan dus een buslid zijn, dus kan je dit prima in de users-tabel aangeven met een extra veld.
ja hij heeft gelijk een join is beter

of inderdaad van de 2 tabellen 1 maken
maar nou moet ik zelf zeggen dat ik ook vaak meerdere gebruik vanwege het makkelijker sorteren enz

ik zal straks eventueel ff kijken voor die join maar eerst ff die voornaam

1 simmpele vraag staat voornaam eigelijk wel in users want ik denk dat deze niet bestaat of anders heet
of de namen zijn niet ingevult

check dat even na :)
Een join is zelfs niet eens nodig, als je busleden naar je tabel users brengt.
klopt inderdaad maar misschien heeft ie daar een reden voor :S
maar je hebt gelijk het zou handig zijn als ze bij elkaar zaten

Reageren