2017-06-10 21 views
0

嘿,我運行PHP的mysqli查詢:PHP MySQL查詢的幫助,結果不是我們所期望的

<?php do { echo $row['depicao']; ?>-<?php } while ($row = mysqli_fetch_array($query)); ?> 

結果我需要應顯示如下

數據DATA2,DATA3,DATA4等

但是我所看到的是:

- 數據 - 數據2,數據3,數據4

哪能獲得「 - 」不會作爲第一個結果出現?

我試過這個,但我得到了同樣的結果。

<?php do { echo $row['depicao']; echo'-'; ?><?php } while ($row = mysqli_fetch_array($query)); ?> 

感謝

+0

'do'' $ row'的第一次迭代是__not defined__ –

+0

??查詢運行正常,它只是不顯示所需順序的結果。 – user3410094

回答

0

嘗試使用while循環,而不是DO-一段時間。

<?php while($row = mysqli_fetch_array($query)) { echo $row['depicao'];echo'-';} ?> 

問題在於即使條件失敗,它至少執行一次。因此,即使沒有評估條件,也會打印一個「 - 」。

如果目標僅僅是去除多餘的 「 - 」,那麼它可以與 -

<?php do { echo $row['depicao']; if($row['depicao']!=null) echo "-"; } while ($row = mysqli_fetch_array($query)); ?> 
+0

修復它。非常感謝! – user3410094

+0

然後,您可以將其標記爲接受的答案。 – tejasdadhe

+1

仍然有一個「 - 」在末尾 – Rahul

2

做在

do { echo $row['depicao']; ?>-<?php } 
while ($row = mysqli_fetch_array($query)) 

$row得到後第一次迭代定義,而不是之前。這就是爲什麼 $row['depicao']什麼都不輸出。如果您在上有error_reporting- 您還會看到通知。

那麼,第一個定位是定義$row第一,然後將它輸出:

while ($row = mysqli_fetch_array($query)) { 
    echo $row['depicao']; 
    echo '-'; 
} 

但是,在這種情況下,你的輸出將與-結束。

所以,解決方案之一是收集數組值和implode「時間:

$values = []; 
while ($row = mysqli_fetch_array($query)) { 
    $values[] = $row['depicao']; 
} 
echo implode('-', $values); 
0

使用while循環,而不是做......而

因爲當你使用while循環做會一直執行,然後它會檢查條件,這就是爲什麼你的結果第一次得到-

所以使用while循環來檢查條件,如果爲true,那麼循環中的代碼將執行,否則不執行。

我會嚴格地建議你學習循環。