函数只返回数组的第一个元素

时间:2015-01-20 11:31:12

标签: php mysql

应该很简单,但我无法弄明白。我有一个函数,它返回一个从MySql数据库中获取的数组。返回的数组应该有2个元素。

这是功能:

function path_to_photo ($id)
{
   $query = mysql_query("Select path from photos1 where listingsdb_id = $id"); 
   $test_array = mysql_fetch_array($query);

   return $test_array;
}

$one=2;
$test = path_to_photo($one); 
echo $test[0]; // --> this works fine
echo $test[1]; //-->this gives an error - undefined offset etc.

起初我以为我的数组实际上只返回一个元素,但是当我放入

$query = mysql_query("Select path from photos1 where listingsdb_id=$id"); 
$test_array = mysql_fetch_array($query);

return sizeof($test_array);

它给出了正确的2个数字。我只是不明白第二个索引会发生什么。这是MySQL中查询的输出

mysql> select path from photos1 where listingsdb_id=2;
+------------------+
| path             |
+------------------+
| small_photo.jpg  |
| big_photo.jpg |
+------------------+

1 个答案:

答案 0 :(得分:2)

mysql_fetch_array会返回一个数组,其中包含结果中下一行的数据。

您说Select path,因此结果中只有一列,因此数组长度应为1

如果你想获得所有path的数组,那么你将不得不创建一个空数组,然后反复调用mysql_fetch_array ,将每个条目放入先前提到过的数组,然后返回该数组。