2012-08-07 111 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