Alle rows ophalen geeft problemen
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..
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$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>";
}
}
$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
Gewijzigd op 01/01/1970 01:00:00 door Rick Secret
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
Gewijzigd op 01/01/1970 01:00:00 door Terence Hersbach
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.
Gewijzigd op 01/01/1970 01:00:00 door Rick Secret
Code (php)
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
27
28
29
30
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
27
28
29
30
<?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?
?>
$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?
Gewijzigd op 01/01/1970 01:00:00 door Terence Hersbach
En hier overschrijf je $sql waarin het resultaat zit:
while($sql = mysql_fetch_array($sql)){
Alles werkt weer!