2011-01-13 10 views
-2

Warum funktioniert das nicht?Hilfe mit PHP Während Funktion

<?php 
$select = "select * from messages where user='$u'"; 

$query = mysqli_query($connect,$select) or die(mysqli_error($connect)); 

$row = mysqli_num_rows($query); 

$result = mysqli_fetch_assoc($query); 

$title = mysqli_real_escape_string($connect,trim($result['title'])); 

$message = mysqli_real_escape_string($connect,trim($result['message'])); 

while(($result = mysqli_fetch_assoc($query))){ 
echo $title; 
echo '<br/>'; 
echo '<br/>'; 
echo $message; 
} 

?> 

wo, wie das funktioniert -

<?php 

echo $title; 

?> 

leider zu sagen, aber keiner der ARBEITS ANTWORTEN. ANDERE IDEEN?

+3

Können wir die gesamte Quelle sehen? Es scheint, dass der Kontext hier ein Problem sein könnte. –

+1

volle Quelle wird sicherlich helfen ... – bharath

+0

Wie kann einer von ihnen arbeiten, wenn '$ title' und' $ message' nicht deklariert werden? – BoltClock

Antwort

1

Wenn Ihre MySQL-Abfrage null Zeilen zurückgibt, werden Sie nie etwas in Ihrer while-Schleife gedruckt sehen. Wenn $ title und $ message nicht gesetzt sind (weil Sie sie mit $ result ['title'] & $ result ['message'] referenzieren möchten, wenn das die Feldnamen in der Datenbank sind), werden Sie nur zwei <br /> Tags sehen in Ihrem Seiten Quellcode.

1

Wenn die Bedingung für die while-Schleife nicht erfüllt ist, wird der Inhalt der while-Schleife niemals ausgeführt.

Wenn also nichts von der Abfrage abzurufen ist, wird keine Ausgabe angezeigt.

1

Haben Sie Code-Anzeige nichts oder überspringen Sie die Ausgabe vollständig? Wenn es vollständig überspringt, hat Ihre Abfrage 0 Zeilen zurückgegeben. Wenn es die <br /> s ausgibt, müssen Sie Ihre Variablen überprüfen. Ich könnte falsch sein, nicht te gesamten Code zu kennen, aber in der Regel in diesem Fall würden Sie so etwas wie echo $result['title'] statt echo $title

0

haben Versuchen Sie folgendes:

<?php 

$result = mysql_query($query); 
while($row = mysqli_fetch_assoc($result)){ 
    echo $title.'<br/><br/>'.$message; 
} 

?> 
0

Wenn $ Titel und $ Nachricht von Ihrem mysql kommen Abfrage dann müssen Sie auf sie über die $ Ergebnis-Array von mysqli_fetch_assoc zurückgegeben.

echo $result['title']; 
echo $result['message']; 
0

Auch wenn Ihr mit mysqli Sie so etwas wie dies tun würde:

$mysqli = new mysqli("localhost", "user", "password", "db"); 

if ($result = $mysqli->query($query)) { 

    while ($row = $result->fetch_assoc()) { 
     print $row['title']; 
    } 

    $result->close(); 
} 
0

Hat diese Arbeit;

<?php 
$select = "select * from messages where user='$u'"; 

$query = mysqli_query($connect,$select) or die(mysqli_error($connect)); 

$row = mysqli_num_rows($query); 

while(($result = mysqli_fetch_assoc($query))){ 
    echo $result['title']; 
    echo '<br/>'; 
    echo '<br/>'; 
    echo $result['message']; 
} 

?> 

Im Grunde habe ich dafür gesorgt, dass es das erste Ergebnis aus der Abfrage nicht ist Kommissionierung & dann auf mehr Ergebnisse durchlaufen wiederholt, um unter Berufung ist die gleiche Botschaft zu drucken.