2015-10-19 128 views
1

我在結果集以下查詢mysqli的遍歷結果集

"select uid from userbase" 

我目前使用下面的循環中要循環,但我只能得到第一個值。

$i = 0; 
$output = mysqli_query($mysqli, "select uid from userbase") or die(mysqli_error($mysqli)); 
while ($row = $output->fetch_array()) { 
    $deviceToken = $row[$i]; 
    echo $deviceToken; 
    $i++; 

}

可能是什麼問題?是fetch_array()

+1

您正在與OOP混合使用程序,選擇一個並堅持以創建一致的代碼庫。 – Script47

+0

請告訴我如何。 –

+0

http://php.net/manual/en/mysqli-result.fetch-array.php – Script47

回答

1

您需要定義一個數組並將您的數據存儲到數組內循環中。 使用MYSQLI_ASSOC不需要增加的值

$deviceToken=array(); 
while ($row = $output->fetch_array(MYSQLI_ASSOC)) { 
    $deviceToken[] = $row['uid']; 
} 
print_r($deviceToken); 
for($i=0;$i<=count($deviceToken);$i++){ 
echo $deviceToken[$i]; 
} 
+0

如果它沒有鍵,爲什麼不使用'array_push '? – Script47

+0

我需要打印正在提取的個別devicetokens。我該怎麼辦? –

+0

使用'MYSQLI_ASSOC',你將得到所有'uid'。並使用循環來獲得個人devicetokens – Saty

0

你應該嘗試使用fetch()功能,而不是和你不必初始化變量,你會爲這是while將顯示即遞增影響您的查詢的所有行。

所以你的新代碼應該是;

while($row = $output->fetch()){ 

     $deviceToken = $row['uid']; 
     echo '$deviceToken<br>'; 
} 
+0

對不起。不起作用。 –