2017-08-10 177 views
2

我是PHP新手。我正在開發一個項目並且學習PHP。但我面臨着一個忙碌的問題,我不知道爲什麼會發生這種情況。我有一個數據庫名稱表gift_items我試圖通過PHP代碼獲取該表的數據。但是當在php和我的瀏覽器中運行查詢時,會顯示一些數據,而不是數據庫中的完整數據。PHP沒有從MySQL數據庫中獲取正確的數據

這裏是我的ServerConnection.php

<?php 

$Server = 'localhost'; 
$username = 'root'; 
$password = ''; 


$database = 'db_gifters'; 


$connection = mysqli_connect($Server,$username,$password); 

if($connection) 
{ 
    mysqli_select_db($connection,$database); 
} 
else 
{ 
    echo "Could not connect to server"; 
} 


?> 

以及在index.php的PHP代碼我在哪裏實際運行查詢的一部分。

<?php 
    $Listquery = "select giftname, gifttype from gift_items order by 
    gifttype,giftname";              

    $gifttype_query = "select distinct gifttype from gift_items";              

    $ListqueryResult = mysqli_query($connection,$Listquery);              

    $gifttype_queryResult = mysqli_query($connection,$gifttype_query);              

    $Listresult = mysqli_fetch_array($ListqueryResult);              

    $gifttype_result = mysqli_fetch_array($gifttype_queryResult);              

    foreach ($gifttype_result as $value)              
    { 
     echo $value; 
    } 
?> 

輸出結果如下:它給我相同的數據的輸出,而不是兩次兩個不同的數據值。給出 enter image description here

我在這裏也安裝結果在同一查詢數據庫中的畫面拍攝ADN它給了我正確的結果,但在PHP代碼它給我相同的值的兩倍輸出。

enter image description here 有人可以解決這個問題,或告訴我什麼是我的腳本代碼中的實際問題?有沒有任何邏輯錯誤?

+0

同樣的,請你*不*濫用片段的工具。這是僅用於HTML/CSS/Javascript * *。 –

+0

好。但我只是用它來更好地低估。真正的問題是什麼。 –

+0

輸出$ connection-> error其中#Grumpy ?? –

回答

1

您需要將數據作爲關聯數組而不是索引數組獲取。它將解決問題。

還有另一篇文章,雖然使用PDO解釋這樣做的原因:PHP why does my function return twice the result of the array with different keys?

在這種情況下,只是你想從陣列中的每個查詢。

mysqli_fetch_array([結果變量這裏],MYSQLI_ASSOC)

$Listresult = mysqli_fetch_array($ListqueryResult,MYSQLI_ASSOC);              

$gifttype_result = mysqli_fetch_array($gifttype_queryResult,MYSQLI_ASSOC);              

foreach($gifttype_result as $value)              
{ 
    echo $value['gifttype']; 
} 

更多信息可以在這裏閱讀:Assoc. Array Fetch 禮貌PHP.net

+0

當我運行此代碼時,它給出了錯誤「警告:非法字符串偏移'gifttype'在」 在 echo $ value ['gifttype']; –

+0

它通常意味着你試圖使用一個字符串作爲數組。在foreach循環var_dump($ Listresult)和var_dump($ gifttype_result)之前使用 並在此處顯示您的結果。 –

相關問題