返回多个结果mysql& PHP

时间:2012-07-26 19:08:49

标签: php mysql

你好基本上我试图返回category_name表中的3个值。 但事实证明这是不可能的....当我做var转储时我得到array(2) { [0]=> string(3) "one" ["category_name"]=> string(3) "one" }而我不知道我做错了什么

$connection = mysql_connect("localhost","admin","");
mysql_select_db("test",$connection);
$result = mysql_query("SELECT category_name FROM category ");
$result2 = mysql_fetch_array ($result);
var_dump ($result2)

3 个答案:

答案 0 :(得分:2)

您需要一个循环,因为mysql_fetch_array()一次只能获取一个行:

$cats = array();
while( $row = mysql_fetch_array ($result)) {
    $cats[] = $row;
}

var_dump( $cats); // This will have all three categories in it

以上循环mysql_fetch_array(),直到没有数据为止,将从DB返回的行添加到$cats数组中。

答案 1 :(得分:1)

首先 - 您必须切换到 mysqli PDO

第二 - 您必须遍历返回的数据。在当前脚本中,您只需将一个结果提取到数组中。

$connection = mysql_connect( "localhost", "admin", "" );
mysql_select_db( "test", $connection );
$result = mysql_query( "SELECT category_name FROM category" );

while( $row = mysql_fetch_array($result) ) {
    echo $row['category_name'], "<br />";
}

答案 2 :(得分:0)

您将从结果集中获取第一行。

对mysql_fetch_array的后续调用将返回下一个结果行。

尝试使用:

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
   var_dump($row);
}

其他答案似乎令OP感到困惑的问题是MYSQL_ASSOC告诉mysql_fetch_array使用列名作为索引而不是默认的MYSQL_BOTH(使用数字和命名数组)返回数组索引)。

希望有所帮助!