Hey everybody,

Ik had nóg een probleempje.. Ik wil simpel alle rows ophalen die aan een bepaalde definitie voldoen, in dit geval berichten van een bepaalde gebruiker weergeven, maar hij geeft enkel de eerste weer..


$sql 		= mysql_query("SELECT * FROM messages WHERE user='".$_POST['searchname']."'");
$exist 		= mysql_num_rows($sql);
		
			if($exist == 0){
				echo "Er zijn geen berichten van deze gebruiker.<br>";
				include('footer.php');
				exit();
			}
			
while($sql = mysql_fetch_array($sql)){
echo "<fieldset class='usernotefieldset'><font color='#267DDC'><legend><b>".$sql['author']."  schreef om ".$sql['time']."</b><br></legend></font>";
echo $sql['message'];
echo "</fieldset>";
}
}


Ben benieuwd wat ik nu weer fout gedaan heb.

Bye
(offtopic)
ik heb het gevoel dat je een verkeerd datamodel hebt.

wat nu als er 2 mensen piet heten? zie jij dat dan als 1?

edit:typo
Neehoor, de gebruikersnamen zijn identiek (hier dus user)

Maar er zijn natuurlijk wel 2 rows met verschillende author, time, message maar met zelfde 'user' field, maar dat lijkt me normaal?

Hij haalt wel 1 row op en geeft deze netjes weer.

<?php
$result         = mysql_query("
    SELECT 
        * 
    FROM 
        messages 
    WHERE 
        user='".mysql_real_escape_string($_POST['searchname'])."'
") or trigger_error(mysql_error());
        
if(mysql_num_rows($result) == 0) {
    echo "Er zijn geen berichten van deze gebruiker.<br>";
    include('footer.php');
    exit();
}
            
while($data = mysql_fetch_array($result)) {
    echo '
    <fieldset class="usernotefieldset">
        <font color="#267DDC">
            <legend>
                <b>
                    '.$data['author'].' schreef om '.$data['time'].'
                </b>
            </legend>
        </font>'. htmlentities(stripslashes($data['message'])).'
    </fieldset>';
}
} // waar komt deze vandaan?
?>

dit zou m moeten zijn
tip: probeer duidelijke namen te gebruiken en programmeer overzichtelijk. dan had je deze fout niet gehad.
gebruik bij echo ' ipv ". Dit is sneller en je kan je html ook netjes afwerken.
ook is het handig xhtml 1.0 ofzo te gebruiken, je gebruikt nu html dat in 1995 modern was.

nog een vraagje:
Wat voor datatype gebruik je voor het veld time?

Foutafhandeling ontbreekt.

En hier overschrijf je $sql waarin het resultaat zit:
while($sql = mysql_fetch_array($sql)){
Beide -weer- bedankt...

Alles werkt weer!

Reageren