2017-04-25 90 views
0

現在我選擇從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

回答

1

首先,你應該閱讀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

2

您可以通過一個查詢獲取所有這些信息,而不是您目前正在運行的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