Hallo,

Ik heb de onderstaande select list gemaakt die gebruiks in een team laat zien in een select list, Maar nu laat hij maar 1 gebruik zien in de select list en niet de rest van de leden in het team.

Iemand een idee wat ik verkeerd doe?

<?php
<select class='button' name='login[id]'>";
$teams=mysql_query("SELECT teamid FROM membersteams WHERE memberid='{$_COOKIE['tid']}'");
while(list($teamid)=mysql_fetch_row($teams)){
$name=mysql_query("SELECT name FROM teams WHERE id='$teamid'");
$name=mysql_fetch_array($name);
$name1=mysql_query("SELECT memberid FROM membersteams WHERE teamid='$teamid'");
$name1=mysql_fetch_array($name1);
$name3=mysql_query("SELECT id, name FROM members WHERE id='$name1[memberid]'");
$name3=mysql_fetch_array($name3);
$out[body].="<option value='$name3[id]'>$name3[name]</option>\n";
}
$out[body].="</select>

?>
Je ziet aan je highlighted code hopelijk zelf ook dat dit een heel vreemd werkje is. Ik zie er eerlijk gezegd niets meer dan chaos in. EN je datamodel is vreemd. Je hebt het team id in een cookie staan. Vervolgens doe je WHERE memberid = teamid. Ik hooop niet voor je datamodel dat memberid teamid is.....

Dit zou ik er ongeveer van maken, al ben ik een beetje creatief geweest in je doel, want wat er nu staat is gekheid......

<?php
/*Gegevens uit database ophalen*/
$query = "SELECT team_id FROM membersteam WHERE memberid = ".$_COOKIE['tid']."";
if(!$result = mysql_query($query)){
trigger_error(mysql_error());
}
else{
$row = mysql_fetch_assoc($result);
$teamid = $row['team_id'];
$query = "SELECT name FROM membersteam WHERE id = ".$teamid."";
if(!$result = mysql_query($result)){
trigger_error(mysql_error());
}
else{
echo '<select>';
while($rows = mysql_fetch_assoc($result)){
echo '<option>'.$row['name'].'</option>';
}
echo '</select>';
}
}
?>
Ik heb hem nu een beetje aangepast, Zoals hij hoort te zijn. Maar nu krijg ik de ERROR! melding te zien die ik er ingezet heb.

Als ik de query's uitvoer in phpmyadmin krijg ik wel resultaat..

<?php
$query = "SELECT memberid FROM membersteams WHERE teamid = ".$_COOKIE['tid']."";
if(!$result = mysql_query($query)){
trigger_error(mysql_error());
}
else{
$row = mysql_fetch_assoc($result);
$query = "SELECT name FROM members WHERE id = ".$row['memberid']."";
if(!$result = mysql_query($result)){
$out[body].="ERROR!!!";
}
else{
$out[body].="<select>";
while($rows = mysql_fetch_assoc($result)){
$out[body].="<option>".$row['name']."</option>";
}
$out[body].="</select>";
}
}
?>
Handig als je post welke error je krijgt.
De error $out[body].="ERROR!!!";

als ik trigger_error gebruik dan krijg ik niets te zien, Ik heb ook E_ALL aan staan
EDIT: en oja, gebruik $out['body'] in plaats van $out[body]. Anders krijg je daar nog leuke errors van

EDIT2: echo je query eens. Die zal waarschijnlijk niet zo lekker zijn.
Tis niet netjes in productiecode maar om te debuggen kan je perfect

<?php
or die(mysql_error())
?>

gebruiken , direct duidelijk wat er mis gaat :P

Reageren