我正在连接到我的SQL服务器,使用以下代码从它获取信息:
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);
}
}
}每个值只存储在我的数据库中一次,但是我得到了以下输出:
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
)为什么这些数据似乎出现了两次?或者这是正常的?
发布于 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);
如果不传递任何参数,则会得到一个包含这两个参数的数组。
发布于 2015-08-21 11:01:05
因为您使用的是mysqli_fetch_array,它将两个数据副本放入结果,一次使用列号(从最左边的列开始,编号为0),一次使用列的名称。
您可能会发现使用mysqli_fetch_assoc而不是mysqli_fetch_array更有用,您可以得到数据的一个副本,并得到有用的列名。
发布于 2015-08-21 11:02:12
这是因为您使用了while mysqli_fetch_array($result)
^^^^^它将为您提供对象和关联。
while mysqli_fetch_assoc($result)
您将得到关联的值。
https://stackoverflow.com/questions/32138599
复制相似问题