输出是数组,如何解决这个问题?

问题描述:

现在我选择从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。

+1

使用1查询和循环抓取..'选择NewSID的,newsimg FROM NewsHomepage WHERE 1和3'之间的ID。当怀疑数组使用'print_r'或'var_dump'时。这将显示您的索引,以便您可以相应地访问它。 – chris85

+2

是的那些是数组。您需要了解如何从PHP中的数组中获取值。 – webDev

+0

你还需要学会停止滥用'$ GLOBALS'。如果必须,请抓取数据库句柄,并将其分配给可以使用的较短变量。 '$ db-> query(...)'是方式,*方式*比这更可读。 – tadman

首先,你应该阅读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]; 
} 
+0

'while($ news1){'无限循环最有可能。 – Qirel

+0

mysql_fetch_row检索并返回下一行它不是无限循环,你可以在手册中检查它并且http://stackoverflow.com/questions/2974011/while-row-mysql-fetch-arrayresult-how-many-loops-are-being - 这里执行 –

+0

但是,如果您将它分配给一个变量,然后使用*变量*,而不是函数作为参数,那么将会有一个无限循环,因为该变量将始终为“true”,并保留第一行 - 它不会重复。试试吧,你会看到;-) – Qirel

您可以通过一个查询获取所有这些信息,而不是您目前正在运行的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。

+0

谢谢你的帮助。我会研究这一点,因为这6个查询不是很方便.. ;-) – Julian