2015-10-19 155 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

对不起。不起作用。 –