[英]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_array
時mysqli_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.