我是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;
}
?>
输出如下:它给出了两次相同数据的输出,而不是两个不同的数据值。如上所述
这里我也将结果的屏幕截图附加到数据库中,并且查询结果相同,但它给出了准确的结果,但在PHP代码中,它给出了两倍于输出的相同值。
答案 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提供