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

一度に1mysql_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配列に追加します。

于 2012-07-26T19:11:44.753 に答える
1

まず、mysqliまたはPDOに切り替える必要があります

次に、返されたデータをループする必要があります。現在のスクリプトでは、1つの結果のみを配列にフェッチしています。

$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

You are getting the first row from your result set.

Subsequent calls to mysql_fetch_array will return the next result row.

Try using:

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

The issue with the other answers that appears to be confusing the OP is that MYSQL_ASSOC tells mysql_fetch_array to return an array using column names as indexes instead of the default MYSQL_BOTH (which uses numeric and named array indexes).

Hope that helps!

于 2012-07-26T19:16:41.157 に答える