2017-05-09 88 views
1

下面while循環語句循環mysqli查詢結果(來自數據庫的文本和圖像)。一行可以只包含文本或圖像和文本。我試圖僅在圖像字段爲空時顯示文本,並且當它們都存在於一行中時顯示圖像和文本。但是,我試圖在下面的while循環語句中使用if語句,問題是,當它假設只顯示文本時,它會顯示帶有沒有src值的圖像標記的文本,請幫助解決此問題。 謝謝。php while循環數據庫數據

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

我們不能在這裏幫助,因爲我們不知道你正在使用的數據。 – arkascha

+0

那麼'$ image'實際上包含_exactly_? – arkascha

+0

@arkascha圖片位置網址 – boost

回答

0

$row['images']可能包含空格,嘗試修剪它。此外,您還可以簡化if

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>"; 

}