首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mySQL使用php的结果显示了两次

mySQL使用php的结果显示了两次
EN

Stack Overflow用户
提问于 2015-08-21 10:57:45
回答 4查看 319关注 0票数 0

我正在连接到我的SQL服务器,使用以下代码从它获取信息:

代码语言:javascript
复制
if ($_POST['searchdb']) {
$searchi="".$_POST['search'];
$query = "SELECT * FROM consume WHERE  type LIKE '%{$searchi}%' OR description LIKE '%{$searchi}%'";
if($result= mysqli_query($link, $query)) {
while ($row = mysqli_fetch_array($result)) {
    print_r($row);
      }
   } 
}

每个值只存储在我的数据库中一次,但是我得到了以下输出:

代码语言:javascript
复制
Array
(
    [0] => RF Connector
    [Type] => RF Connector
    [1] => Male N Type Angle Cable Mtg.
    [Description] => Male N Type Angle Cable Mtg.
    [2] => Carousel
    [Location] => Carousel
    [3] => 2
    [Drawer] => 2
    [4] => Test
    [Supplier] => Test
    [5] => 12345678
    [Order Code] => 12345678
    [6] => 1
    [id] => 1
)

为什么这些数据似乎出现了两次?或者这是正常的?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-08-21 11:01:04

这是正常行为,参见这里的http://php.net/manual/en/mysqli-result.fetch-array.php

如果要使用数字索引,请使用以下命令

mysqli_fetch_array($result,MYSQLI_NUM);

对于关联索引,请使用以下内容

mysqli_fetch_array($result,MYSQLI_ASSOC);

如果不传递任何参数,则会得到一个包含这两个参数的数组。

票数 1
EN

Stack Overflow用户

发布于 2015-08-21 11:01:05

因为您使用的是mysqli_fetch_array,它将两个数据副本放入结果,一次使用列号(从最左边的列开始,编号为0),一次使用列的名称。

您可能会发现使用mysqli_fetch_assoc而不是mysqli_fetch_array更有用,您可以得到数据的一个副本,并得到有用的列名。

票数 1
EN

Stack Overflow用户

发布于 2015-08-21 11:02:12

这是因为您使用了while mysqli_fetch_array($result)

代码语言:javascript
复制
                                    ^^^^^

它将为您提供对象和关联。

while mysqli_fetch_assoc($result)

您将得到关联的值。

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

https://stackoverflow.com/questions/32138599

复制
相关文章

相似问题

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