簡體   English   中英

使用php的mySQL結果顯示兩次

[英]Results from mySQL using php show twice

我正在連接到我的SQL Server,並使用以下代碼從中獲取信息:

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
)

為什么數據似乎出現兩次? 還是正常?

這是正常行為,請參見此處http://php.net/manual/en/mysqli-result.fetch-array.php
如果您希望數字索引使用此
mysqli_fetch_array($result,MYSQLI_NUM);
對於關聯索引,請使用此
mysqli_fetch_array($result,MYSQLI_ASSOC);

如果您不傳遞任何參數,則將獲得包含兩個參數的數組。

因為您正在使用mysqli_fetch_array將數據的兩個副本放入結果中,所以一次使用列號(從最左邊的列開始,編號為0),一次使用列的名稱。

您可能會發現使用mysqli_fetch_assoc而不是mysqli_fetch_array更有用,您將獲得一個數據副本,並且會獲得有用的列名。

這是因為您在mysqli_fetch_array($ result)時使用

                                    ^^^^^

它會給你對象和聯想

在mysqli_fetch_assoc($ result)時使用

您將獲得關聯值

是的,使用mysqli_fetch_arraymysqli_fetch_array

mysqli_fetch_assoc替換它,您將獲得僅包含一次數據的關聯數組,或使用mysqli_fetch_row獲得也僅包含一次數據的枚舉數組。

來源: http : //php.net/manual/en/function.mysql-fetch-assoc.php http://php.net/manual/en/function.mysql-fetch-row.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM