php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.07.2005, 17:54  
Gast
 
Beiträge: n/a
Standard Verständnissproblem

Bei folgendem Script kommt das bei raus:
http://mostavern.mo.funpic.de/test.php
Code:
<?php
//Datenbankverbindung....
mysql_connect("localhost", "***", "***");              
mysql_select_db("mostavern");
$sql= "SELECT datum_zeit,autor FROM guestbook ORDER BY datum_zeit DESC"; 
$ergebnis=mysql_query("$sql");
?>
<html>
<head>
</head>

<body>
<?php
//Ausgabe...
$anzeigen=0;                           

while(($row = mysql_fetch_array($ergebnis)) && (!$anzeigen==3))
	{
	echo $row['datum_zeit']." ".$row['autor']."
";
	
	$anzeigen++;
	}
?>
</body>
</html>
Ich verstehe nicht warum nur ein Eintrag angezeigt wird (in der Datenbank sind genug Einträge)
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 13.07.2005, 17:57  
Gast
 
Beiträge: n/a
Standard

PHP-Code:
<?php
//Datenbankverbindung....
mysql_connect("localhost""***""***"); // Fehlerbehandlung?
mysql_select_db("mostavern"); // Fehlerbehandlung?
$sql"SELECT datum_zeit,autor FROM guestbook ORDER BY datum_zeit DESC";
$ergebnis=mysql_query("$sql"); // Fehlerbehandlung?
?>
<html>
    <head>
        <title>...</title>
    </head>
    <body>
<?php
//Ausgabe...
$anzeigen=0;                           
echo 
'

Debug: '
mysql_num_rows($ergebnis), ' Datensätze gefunden</p>'

// Gleicheit ==  oder  ===
// Ungleichheit !=  oder !===
while(($row mysql_fetch_array($ergebnis)) && ($anzeigen!=3))
{
    echo 
$row['datum_zeit'], ' '$row['autor'], "
\n"
;
   
    
$anzeigen++;
}
?>
    </body>
</html>
 
Alt 13.07.2005, 17:59  
Gast
 
Beiträge: n/a
Standard

Bei mysql_fetch_array() kommt man immer nur auf einen Eintrag, zumindest wenn man es so nutzt. (http://de2.php.net/mysql_fetch_array)
mysql_fetch_assoc hilft dir bestimmt. => http://de2.php.net/mysql_fetch_assoc
 
Alt 13.07.2005, 18:00  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Michigras
Bei mysql_fetch_array() kommt man immer nur auf einen Eintrag, zumindest wenn man es so nutzt. (http://de2.php.net/mysql_fetch_array)
mysql_fetch_assoc hilft dir bestimmt. => http://de2.php.net/mysql_fetch_assoc
Wie jetzt? Was macht da fetch_assoc für einen Unterschied?
 
Alt 13.07.2005, 18:05  
Erfahrener Benutzer
 
Registriert seit: 23.02.2005
Beiträge: 211
TheIfrit
Standard

trenne am besten die ausgabe vo der DB abfrage.

PHP-Code:
<?php
        
while ($row mysql_fetch_array($ergebnisMYSQL_ASSOC))
{
   
$aData['datum_zeit'] = $row['datum_zeit'];
   
$aData['autor'] = $row['autor'];
}

//hier kommt dann ne schleife hin, wo die $aData ausgegeben wird
//und while bricht ab!!!  nutz ne foreach/for Schleife und da drin ne if abfrage
?>
__________________
Wie lautet die adäquate Antwort auf "ihr benehmt euch wie kleine Kinder!" ?

"Er hat Angefangen!"
TheIfrit ist offline  
Alt 13.07.2005, 18:09  
Gast
 
Beiträge: n/a
Standard

Wenn ich es so
PHP-Code:
<?php
while ( $row mysql_fetch_array($ergebnis))
        {
         ....
        } 
?>
holt er alle Einträge, wenn du das meinst.
mysql_fetch_assoc() hat auch nicht geholfen. Sobald $anzeigen==1 wird nichts mehr angezeigt...

EDIT: ich muss es doch in die while schleife machen, damit er nacheinander (z.B.) $row['autor'] ausgibt ->neu belegt und wieder ausgibt...?!
 
Alt 13.07.2005, 18:19  
Erfahrener Benutzer
 
Registriert seit: 05.07.2004
Beiträge: 1.476
DiBo33
Standard

Wen du nur 3 anzeigen willst, warum arbeitest du dann nicht gleich mit LIMIT ?
DiBo33 ist offline  
Alt 13.07.2005, 18:20  
Gast
 
Beiträge: n/a
Standard

a) Du kannst die Anahl der Ergenisdatensätze in der sql-Abfrge mit LIMIT beschänken
$sql= "SELECT datum_zeit,autor FROM guestbook ORDER BY datum_zeit DESC LIMIT 3";
Dann brauchst Du Dich nicht mehr im php-Code darum kümmern.

b) wie gesagt: Gleichheit mit ==, Ungleichheit mit != abtesten
nicht mit !$anzeigen==3
 
Alt 13.07.2005, 18:27  
Gast
 
Beiträge: n/a
Standard

ich habe eigentlich etwas anderes vor...
b) wie gesagt: Gleichheit mit ==, Ungleichheit mit != abtesten
nicht mit !$anzeigen==3

das ist der Fehler, vielen dank!

Tolles Forum, geht echt fix
:wink:
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:18 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.