Alle rows ophalen geeft problemen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Rick Secret

Rick Secret

28/05/2008 22:03:00
Quote Anchor link
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..

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>";
}
}


Ben benieuwd wat ik nu weer fout gedaan heb.

Bye
Gewijzigd op 01/01/1970 01:00:00 door Rick Secret
 
PHP hulp

PHP hulp

24/11/2024 00:58:21
 
Terence Hersbach

Terence Hersbach

28/05/2008 22:05:00
Quote Anchor link
(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
Gewijzigd op 01/01/1970 01:00:00 door Terence Hersbach
 
Rick Secret

Rick Secret

28/05/2008 22:06:00
Quote Anchor link
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.
Gewijzigd op 01/01/1970 01:00:00 door Rick Secret
 
Terence Hersbach

Terence Hersbach

28/05/2008 22:20:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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?
Gewijzigd op 01/01/1970 01:00:00 door Terence Hersbach
 
- SanThe -

- SanThe -

28/05/2008 22:40:00
Quote Anchor link
Foutafhandeling ontbreekt.

En hier overschrijf je $sql waarin het resultaat zit:
while($sql = mysql_fetch_array($sql)){
 
Rick Secret

Rick Secret

29/05/2008 17:44:00
Quote Anchor link
Beide -weer- bedankt...

Alles werkt weer!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.