首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL查询后的While-loop不能在PHP中运行

问SQL查询后的While-loop不能在PHP中运行
EN

Stack Overflow用户
提问于 2016-03-03 23:42:44
回答 2查看 183关注 0票数 0
代码语言:javascript
复制
$mysqli_query = mysqli_query($mysqli, "SELECT * FROM ".$snt_stone." ");   
        while($result = mysqli_fetch_array($mysqli_query)){

        $DatabaseID = $result['DatabaseID'];
        $ItemName = $result['ItemName'];
        $ItemStatus = $result['ItemStatus'];
        $ItemCategory = $result['ItemCategory'];

        }

我的数据库中有多个东西,但是由于某些原因,我的while循环只循环一次。如何才能让它循环遍历每一项/每行一次?

EN

回答 2

Stack Overflow用户

发布于 2016-03-03 23:58:08

你的问题是你不了解while循环是如何工作的。

代码语言:javascript
复制
while($result = mysqli_fetch_array($mysqli_query)){
$DatabaseID = $result['DatabaseID'];
}

此循环将$result['DatabaseID'];的值赋给变量$DatabaseID。当您第二次循环时,$DatabaseID的值再次更改。

因此,您基本上要做的就是遍历SELECT查询的结果,每次都将获取的值提供给一组特定的变量,并在每次执行循环时覆盖它们。

您可以通过运行以下命令来检查逻辑错误:

代码语言:javascript
复制
while($result = mysqli_fetch_array($mysqli_query)){

   echo $result['DatabaseID'];
   echo $result['ItemName'];
   echo $result['ItemStatus'];
   echo $result['ItemCategory'];

   $DatabaseID = $result['DatabaseID'];
   $ItemName = $result['ItemName'];
   $ItemStatus = $result['ItemStatus'];
   $ItemCategory = $result['ItemCategory'];

    }

您将看到echo给出了select的所有结果,但是由于您一直覆盖变量,所以只保存了最后一个值。

编辑

我认为对您的问题最简单的解决方案是将您需要的值保存为数组,然后使用该数组。最简单的方法是:

代码语言:javascript
复制
$mysqli_query = mysqli_query($mysqli, "SELECT * FROM ".$snt_stone." ");   
        while($result = mysqli_fetch_array($mysqli_query)){

        $DatabaseID[] = $result['DatabaseID'];
        $ItemName[] = $result['ItemName'];
        $ItemStatus[] = $result['ItemStatus'];
        $ItemCategory[] = $result['ItemCategory'];

        }

然后,您可以运行print_r($DatabaseID)来打印数组内容。

这种构造数组使用起来相当不方便,请查看php的数组手册,并创建一个最能满足您需要的数组:http://php.net/manual/en/function.array.php

当然,这也取决于您稍后要在代码中如何处理这些值。

票数 2
EN

Stack Overflow用户

发布于 2016-03-03 23:47:38

代码语言:javascript
复制
 $mysqli_query = mysqli_query($mysqli, "SELECT * FROM ".$snt_stone." ");   
    while($result = mysqli_fetch_array($mysqli_query)){

       echo  $result['DatabaseID'];
       echo $result['ItemName'];
       echo $result['ItemStatus'];
       echo $result['ItemCategory'];

    }
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35776591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档