2015-08-21 76 views
0

我連接到我的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 
) 

爲什麼數據似乎會出現兩次?或者這是正常的?

+0

也許我是盲目的,但我不能在這裏看到重複的數據。 – itwasntme

+0

您應該閱讀下面的內容:http://php.net/manual/en/mysqli-result.fetch-array.php –

回答

1

這是正常現象,在這裏看到http://php.net/manual/en/mysqli-result.fetch-array.php
如果你想數字索引使用此
mysqli_fetch_array($result,MYSQLI_NUM);
和關聯索引使用
mysqli_fetch_array($result,MYSQLI_ASSOC);

如果你不及格,你會得到任何參數一個包含兩者的數組。

1

由於您使用的是mysqli_fetch_array,一旦使用列號(從最左列開始,編號爲0)和一次使用列名,將兩個數據副本放入結果中。

您可能會發現使用mysqli_fetch_assoc而不是mysqli_fetch_array更有用,您會得到一份數據並獲得有用的列名稱。

+0

非常感謝您的工作,並且爲您解釋了這一點,對我來說非常好! –

0

這是因爲您使用時mysqli_fetch_array($結果)

        ^^^^^ 

它會給你兩個對象和關聯

使用,而mysqli_fetch_assoc($結果)

你會得到聯想價值

+0

既是對象又是聯想?你的意思是數字,並且指的是數組的索引類型? –

+0

@AlexAndrei是的。 –