1

特定のイベントからの参加者の数を出力するクエリを作成しようとしています。テーブルの名前は「payments」で、イベントのIDは「itemid」列にあります。これは私が作成したものですが、ブラウザでは機能しないようですが、phpMyAdminでは正常に機能します。数値を表示する代わりにページをロードするたびに、クエリの出力として「配列」が表示されます。

修正:

$res = mysql_query("SELECT COUNT(*) AS entrants FROM payments WHERE itemid='Sample Event 1'") or die();
$row = mysql_fetch_array($res,MYSQL_ASSOC);

<?php echo $row['entrants']; ?>
4

5 に答える 5

10

これで配列をフェッチするため、配列を取得し続けます。

mysql_fetch_array($entrant_query);

fetch_array関数は、行を配列として返します。

データベースから行を返す方法は他にもたくさんありますが、探しているのはfetch_rowだと思います。

代わりにvar_dumpを試して、何が返されるかを確認できます。

<?php
$a = array(1, 2, array("a", "b", "c"));
var_dump($a);
?>

// output:

array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  array(3) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "b"
    [2]=>
    string(1) "c"
  }
}

最後に、関数は非推奨になりました。代わりにPDOmysql_*への移行を検討することをお勧めします。それははるかに安全で、より柔軟であり、あなたが始めたばかりの場合は、学ぶためのはるかに良いオプションです。

于 2012-08-15T14:10:54.920 に答える
2

のドキュメントを確認してください

mysql_fetch_array($query);

http://pa.php.net/manual-lookup.php?pattern=mysql_fetch_array%28%29&scope=quickref

このコードも試してみてください

$f1 = mysql_fetch_array($entrant_query);
//this will  give u the print out of the associative array:
printr($f1);
//you can now access  each variable of the associative array by
//where the associative that prinr output
foreach($f1 as $value){
 echo $value;
}
于 2012-08-15T14:29:23.560 に答える
1

このメソッドmysql_fetch_array()は、クエリ結果を配列にロードし、そこからデータにアクセスするために使用できます。配列をループしてすべてのデータを抽出することも、特定のデータに直接アクセスすることもできます。

于 2012-08-15T14:12:12.987 に答える
1

クエリがレコード数を返し、1つのフィールドを返す場合でも、関数を呼び出しているmysql_fetch_arrayので、それだけが返されます。行には、いくつものフィールドの配列があります。

通常SELECT * from usersは、行がなくなるまで何度も繰り返しますが、クエリが1つのフィールドを返すという理由だけで、それが機能するため、1の配列になります。

于 2012-08-15T14:12:16.987 に答える
1
include ("includes/db.php");
// Get data from the database for content
$res = mysql_query("SELECT COUNT(*) AS entrants FROM payments WHERE itemid='Sample Event 1'") or die();
$row = mysql_fetch_array($res,MYSQL_ASSOC);

<?php echo $row['entrants']; ?>

現在は正常に動作しています。

于 2012-08-15T14:35:02.823 に答える