PHP无法从MySQL数据库中获取正确的数据

时间:2017-08-10 18:07:00

标签: php mysql mysqli

我是PHP的新手。我正在研究一个项目并且想要学习PHP。但我面临着一个忙碌的问题,我不知道为什么会这样。我有一个数据库名称 gift_items 的表格,我试图通过PHP代码获取该表的数据。但是当在php中运行查询时,我的浏览器向我显示一些数据,而不是来自数据库的完整数据。

这是我的 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

这里我也将结果的屏幕截图附加到数据库中,并且查询结果相同,但它给出了准确的结果,但在PHP代码中,它给出了两倍于输出的相同值。

enter image description here 有人可以解决这个问题或告诉我我的脚本代码中的实际问题是什么?有没有任何逻辑错误。??

1 个答案:

答案 0 :(得分:1)

您需要将数据作为关联数组而不是索引数组获取。它将解决问题。

虽然使用PDO解释了其原因,但还有另一篇文章:PHP why does my function return twice the result of the array with different keys?

在这种情况下,只需要从每个查询中获取数组。

mysqli_fetch_array([RESULT VARIABLE HERE],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提供