2013-10-15 105 views
0

我在這裏是一個大的菜鳥,所以我試圖弄清楚它是否適合我。在變量中存儲SQL輸出

我想獲取「id,fist and last」的SQL請求並將它們存儲在一個變量中。 接下來的一半代碼會處理這些變量。

下面的語句只是查看var是否已經開始賦值......顯然它不是,但我沒有得到任何錯誤,只是空白行。我如何獲得一組信息來處理某些事情?

$newIDs = mysql_query("SELECT per_ID, per_FirstName, per_LastName FROM person_per WHERE DATE_SUB(NOW(),INTERVAL 6 MONTH)<per_FriendDate ORDER BY per_FriendDate DESC") or die(mysql_error()); 



while($row = mysql_fetch_assoc($newIDs)){ 
    echo $row ['per_ID'] = $per_ID; 
    echo $row ['per_FirstName'] = $per_FirstName; 
    echo $row ['per_LastName'] = $per_LastName; 
    //below is for testing purposes only 
    echo $per_FirstName; 
    echo "<br/>"; 

} 

print $per_ID; 
echo $per_LastName; 
+0

扭轉你的陳述。 $ per_id = $ row ['per_ID'];然後嘗試回顯它 – Jim

+0

你不應該使用'mysql_'查詢!這就是我所能說的。 – samayo

回答

1

我想你想要更多像這樣的測試東西:

while ($row = mysql_fetch_assoc($newIDs)) { 
    $per_ID = $row['per_ID']; 
    $per_FirstName = $row['per_FirstName']; 
    $per_LastName = $row['per_LastName']; 
    // below is for testing purposes only 
    echo $per_FirstName; 
    echo "<br/>"; 
} 

當你真正希望將所有從查詢的結果,你需要做的是這樣:

$rows = array(); 
$i = 0; 

while ($row = mysql_fetch_assoc($newIDs)) { 
    $rows[$i] = $row; 
    // below is for testing purposes only 
    echo $rows[$i]['per_LastName']; 
    echo "<br/>"; 

    $i++; 
} 

此外,你應該注意的是mysql_fetch_assoc()實際上是一個過時的PHP函數,根據手冊頁:http://php.net/manual/en/function.mysql-fetch-assoc.php

0
echo $row ['per_ID'] = $per_ID; 

應該然後

$per_ID=$row['per_ID']; 

您呼應$per_ID;應該工作

正如它在一個循環中,你將覆蓋$ per_ID每一次,最終機智的最後一個值。

0

它看起來像你的問題是在這些語句:

echo $row ['per_ID'] = $per_ID; 
echo $row ['per_FirstName'] = $per_FirstName; 
echo $row ['per_LastName'] = $per_LastName; 

等號有分配變量$per_ID的值(這在當時是未分配)到陣列。這不是你想要的。

相反,你可能想是這樣的:

$per_ID = $row ['per_ID']; 

事情變得的事實,你有一個while循環中,你會繼續寫相同的三個變量進一步複雜化。所以在循環結束後,你只能得到最後一組字段的值。