0

您好,基本上我正在尝试返回 category_name 表中的 3 个值。然而这被证明是不可能的......当我做 var dump 我得到但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)
4

3 回答 3

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()直到没有数据为止,将从数据库返回的行添加到$cats数组中。

于 2012-07-26T19:11:44.753 回答
1

首先 - 你必须切换到mysqliPDO

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

$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 />";
}
于 2012-07-26T19:12:22.547 回答
0

您正在从结果集中获得第一行。

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

尝试使用:

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

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

希望有帮助!

于 2012-07-26T19:16:41.157 回答