2017-05-09 3 views
1

die unten while-Schleife-Anweisung loops mysqli Abfrageergebnis (Text und Bild aus der Datenbank). Eine Zeile kann nur Text oder Bild und Text enthalten. Ich versuche, Text nur anzuzeigen, wenn das Bildfeld leer ist, und Bild und Text anzuzeigen, wenn beide in einer Zeile vorhanden sind. Allerdings habe ich versucht, mit der if-Anweisung in der while loop-Anweisung unten, das Problem ist, dass, wenn es nur Text angezeigt wird, zeigt es Text mit Bild-Tag ohne src Wert, bitte helfen, dies zu beheben. Danke.php While-Loop-Datenbank Daten

while($row = mysqli_fetch_assoc($query)){ 
    $id = $row["id"]; 
    $text = $row["texts"]; 
    $image =$row['images']; 
    if(!empty($text) && !empty($image)){ 
     echo '<img src='.$image.'/>'; 
     echo '<div>'.$text.'</div>'; 
    }elseif(!empty($text) && empty($image)){ 
     echo '<div>'.$text.'</div>'; 
    } 
} 
+0

Wir hier nicht helfen, da wir nicht wissen, die Daten, die Sie arbeiten mit: Sie können aber auch die if vereinfachen. – arkascha

+0

Was enthält '$ image' eigentlich _exactly_? – arkascha

+0

@arkascha image location url – boost

Antwort

0

$row['images'] könnte Leerzeichen enthalten, versuchen Sie es trimmen.

while($row = mysqli_fetch_assoc($query)){ 
    $id = $row["id"]; 
    $text = trim($row["texts"]); 
    $image = trim($row['images']); 
    if(!empty($image)){ 
     echo '<img src='.$image.'/>'; 
    } 
    if(!empty($text)){ 
     echo '<div>'.$text.'</div>'; 
    } 
} 
0
while($row = mysqli_fetch_assoc($query)){ 
    $id = $row["id"]; 
    $text = $row["texts"]; 
    $image =$row['images']; 

    if($image) 
     echo "<img src='{$image}' />"; 
    if($text) 
     echo "<div>{$text}</div>"; 

}