2012-08-07 110 views
1

我試圖去我的數據庫,從一堆基於兩個變量的列中獲取信息,並將所有這些列的值全部返回到一個php列表(或數組)中,所以例如,最終的結果會是這樣的$output = array($foo,$bar,$hello);從SQL查詢創建一個數組

這裏是我現在連接到數據庫和我的查詢的代碼,我知道我錯過了這裏的重要代碼,希望有人可以幫助我,謝謝。

<? php 

$var1 = 20.0; 
$var2 = 15.0; 

function getFromDB($var1, $var2){ 

mysql_connect("localhost", "test", "test") or die (mysql_error()); 
mysql_select_db("test") or die(mysql_error()); 
$queryString = "SELECT * from table1 WHERE foo=".$var1."AND bar=".$var2; 
$go = mysql_query($queryString); 
while($row = mysql_fetch_array($go)){ 
echo $row['col1']; 
echo $row['col2']; 
echo $row['col3']; 

} 
} 

getFromDB($var1,$var2); 
?> 

這個想法是讓col1,2和3的值在一個數組中。謝謝! 山姆

+2

你應該停止使用'mysql_ *'函數。他們正在被棄用。請使用[PDO](http://php.net/manual/en/book.pdo.php)(自PHP 5.1起支持)或[mysqli](http://php.net/manual/en/book)。 mysqli.php)(自PHP 4.1起支持)。如果你不確定使用哪一個,[閱讀這篇文章](http://stackoverflow.com/questions/13569/mysqli-or-pdo-what-are-the-pros-and-cons)。 – Matt 2012-08-07 13:47:02

+0

_already_在一個數組中。 '$ row'是一個數組。如果你想要一個包含所有行的多維數組,可以在while循環中使用'$ rowset [] = $ row' – 2012-08-07 13:48:19

+1

將這些變量放入數組中,就像將任何變量放入數組一樣。你通常如何做到這一點。你的問題的答案在你的問題!正如@Matt指出你應該使用更好的數據庫連接方法。你的代碼可能容易受到SQL注入 – Cfreak 2012-08-07 13:48:35

回答

1

無論是其中的一個將工作:

while($row = mysql_fetch_array($go)){ 
    $output[] = array($row['col1'], $row['col1'], $row['col1']); 
} 

或:

while($row = mysql_fetch_array($go)){ 
    $output[] = $row; 
} 

,你應該使用一個依賴於$行數據的樣子。

+0

非常感謝,並且還要感謝所有其他回覆 – 2012-08-07 13:54:23

0
$data = array(); 
while ($row = ...) 
{ 
    // appends the contents of $row to a new value in $data 
    $data[] = $row; 
} 

print_r ($data); // <-- to see the output 
0
$array = array(); 
while ($row = mysql_fetch_array($go)) { 
    $array[] = array($row['col1'], $row['col2'], $row['col3']); 
} 

請注意,您應停止使用mysql_*功能。他們正在被棄用。請使用PDO(自PHP 5.1起支持)或mysqli(自PHP 4.1起支持)。如果您不確定要使用哪一個,請致電read this SO article

+0

爲什麼這是低調投票?這是正確的答案,並將幫助OP改進他的代碼前進。 – Matt 2012-08-07 13:51:53

0

更換

echo $row['col1']; 
echo $row['col2']; 
echo $row['col3']; 

$array = $row; 

,並返回$array

+0

爲什麼'$ array [] = $ row'?如果你要保留指數,這是如何有效地做到這一點。 – Matt 2012-08-07 13:53:27

+0

謝謝,我甚至沒有想到......自從我使用PHP編碼以來已經有一段時間了。 – 2012-08-07 13:54:22