将mysql结果推入php数组并打印此数组

时间:2014-04-24 19:33:43

标签: php mysql arrays

所以我试图创建一个获取输入的代码,然后开始将此输入的所有值与数据库中其他值的每个其他值进行比较。 为此,我想将每一行放在一个数组中,然后将此数组与输入值进行比较。现在我的问题是,我无法将一行完整的行放入有问题的代码中。

 $row = array();
 for ($i = 1; $i <= 10; $i++) {
$autorange2="SELECT AutoRange  FROM $tbl_name WHERE Nr='$i'";
$auto2=mysql_query($autorange, 0);
array_push($row, "$auto2");
}
print_r($row);

我的结果是

Array ( [0] => Resource id #6 [1] => Resource id #7 [2] => Resource id #8 [3] =>  
Resource id #9 [4] => Resource id #10 [5] => Resource id #11 [6] 
=> Resource id #12 [7] => Resource id #13 [8] => Resource id #14 [9] => 
Resource id #15 )

(打印用于测试目的)

2 个答案:

答案 0 :(得分:0)

使用mysql_fetch_array。试试这个 -

for ($i = 1; $i <= 10; $i++) {
   $autorange2="SELECT AutoRange  FROM $tbl_name WHERE Nr='$i'";
   $auto2=mysql_query($autorange, 0);
   while($row1 = mysql_fetch_array($auto2))
   {
       array_push($row, $row1);
   }
}

如果您确定查询结果中只有1行 -

for ($i = 1; $i <= 10; $i++) {
   $autorange2="SELECT AutoRange  FROM $tbl_name WHERE Nr='$i'";
   $auto2=mysql_query($autorange, 0);
   array_push($row, mysql_fetch_assoc($auto2));
}

答案 1 :(得分:0)

您尝试输入$row - 结果集。你不能输出结果集,你必须先获取它。

使用mysql_fetch_assoc功能。

$row = array();
for ($i = 1; $i <= 10; $i++) {
 $autorange2="SELECT AutoRange  FROM $tbl_name WHERE Nr='$i'";
 $auto2=mysql_query($autorange); // <-- I removed 2nd parameter, you don't need it there
 while($data = mysql_fetch_assoc($auto2)) {
  $row[] = $data; // same as array_push($row, $data);
  // $data['AutoRange']; <-- get access to data on this row
 }
 print_r($row);
}

如果您想直接访问集合中的某些条目,请使用$data['fieldName'],其中fieldName是您要访问的字段名称。

mysql_fetch_assoc返回关联的数组。

注意:如果您将使用来自this的方法答案,您必须知道mysql_fetch_array返回索引数组,因此您必须使用{{{{}}访问数据1}},$data[0]等。我认为最好使用$data[1]函数并使用关联数组。

另一个注释:您使用这种方法处理数据库是什么?您不需要mysql_fetch_assoc循环来从表中获取数据。结果集中返回的数据,具体取决于您的查询。

此查询将返回表for中的所有行:

$tbl_name

所以你的代码将是:

SELECT AutoRange  FROM $tbl_name

现在,您有$rows = array(); $autorange2="SELECT AutoRange FROM $tbl_name WHERE Nr='$i'"; $auto2=mysql_query($autorange); // <-- I removed 2nd parameter, you don't need it there while($data = mysql_fetch_assoc($auto2)) { $rows[] = $data; // same as array_push($row, $data); // $data['AutoRange']; <-- get access to data on this row } print_r($rows); 表中每行的autorange字段值。

您如何访问此数据:

$tbl_name