输出是数组,如何解决这个问题?
现在我选择从MySQL的一些数据,我想呼应,但我不知道如何..输出是数组,如何解决这个问题?
代码
<?php
// Database connection
require_once($_SERVER["DOCUMENT_ROOT"] . "/includes/config.php");
require_once($_SERVER["DOCUMENT_ROOT"] . "/includes/opendb.php");
// News 1
$searchroutenews1 = "SELECT newsid FROM NewsHomepage WHERE id = '1'";
$handlenews1 = mysqli_query($GLOBALS["___mysqli_ston"], $searchroutenews1);
$news1 = mysqli_fetch_row($handlenews1);
$searchroutenewsimg1 = "SELECT newsimg FROM NewsHomepage WHERE id = '1'";
$handlenewsimg1 = mysqli_query($GLOBALS["___mysqli_ston"], $searchroutenewsimg1);
$NewsImg1 = mysqli_fetch_row($handlenewsimg1);
// News 2
$searchroutenews2 = "SELECT newsid FROM NewsHomepage WHERE id = '2'";
$handlenews2 = mysqli_query($GLOBALS["___mysqli_ston"], $searchroutenews2);
$news2 = mysqli_fetch_row($handlenews2);
$searchroutenewsimg2 = "SELECT newsimg FROM NewsHomepage WHERE id = '2'";
$handlenewsimg2 = mysqli_query($GLOBALS["___mysqli_ston"], $searchroutenewsimg2);
$NewsImg2 = mysqli_fetch_row($handlenewsimg2);
// News 3
$searchroutenews3 = "SELECT newsid FROM NewsHomepage WHERE id = '3'";
$handlenews3 = mysqli_query($GLOBALS["___mysqli_ston"], $searchroutenews3);
$news3 = mysqli_fetch_row($handlenews3);
$searchroutenewsimg3 = "SELECT newsimg FROM NewsHomepage WHERE id = '3'";
$handlenewsimg3 = mysqli_query($GLOBALS["___mysqli_ston"], $searchroutenewsimg3);
$NewsImg3 = mysqli_fetch_row($handlenewsimg3);
?>
这之后我require_once这在其他文件,然后我回显变量$ news1,$ news2,$ news3,$ NewsImg1,$ NewsImg2和$ NewsImg3。但是如果我现在回显这些变量,它会说:array。
首先,你应该阅读http://php.net/manual/en/mysqli-result.fetch-row.php 你可以找到有mysqli_result :: fetch_row - mysqli_fetch_row - 获取结果一行作为枚举数组所以现在你不能回声阵列那 mysqli_fetch_row总是返回数组为什么它给你数组。
你可以尝试循环或foreach循环或while循环显示数据。还有各种获取数组值的方法。
以下是您可以使用的示例。
while ($news1 = mysqli_fetch_row($handlenews1)) {
echo $news1[0];
}
您可以通过一个查询获取所有这些信息,而不是您目前正在运行的6个。然后,将mysqli_fetch_*()
作为一个参数,然后您将获取所有行,直到该函数返回null - 此时您已获取查询返回的所有行。在while
循环中要显示
$result = mysqli_query($GLOBALS["___mysqli_ston"], "SELECT newsid, newsimg FROM NewsHomepage WHERE id IN (1, 2, 3)");
while ($row = mysqli_fetch_assoc($result)) {
echo $row['newsid']." ".$row['newsimg'];
}
更改但是你需要它,并用两个变量,因为他们都在里面。
或者,您可以使用WHERE id BETWEEN 1 AND 3
代替,但使用IN (1, 2, 3)
可以更容易地更改为您所需的确切ID。
谢谢你的帮助。我会研究这一点,因为这6个查询不是很方便.. ;-) – Julian
使用1查询和循环抓取..'选择NewSID的,newsimg FROM NewsHomepage WHERE 1和3'之间的ID。当怀疑数组使用'print_r'或'var_dump'时。这将显示您的索引,以便您可以相应地访问它。 – chris85
是的那些是数组。您需要了解如何从PHP中的数组中获取值。 – webDev
你还需要学会停止滥用'$ GLOBALS'。如果必须,请抓取数据库句柄,并将其分配给可以使用的较短变量。 '$ db-> query(...)'是方式,*方式*比这更可读。 – tadman