0

テーブル「rel」があります

---------------------
|id|refid|cellid|cat|
|1 |1    |1     |1  |
|2 |2    |1     |3  |
|3 |3    |1     |5  |
|4 |3    |5     |2  |
|5 |4    |2     |7  |

各セル ID に対して同じセル ID を持つ行の数をカウントしたい。次に、これらのカウントを HTML ページで取得できるようにします。

SQL クエリを実行し、結果を配列に格納するコードを作成しました。

<?php
// Connect to the database server
$dbcnx = mysql_connect("localhost",USER,PASSWORD);
if (!$dbcnx) {
  echo( "<P>Database Connection Failed</P>" );
  exit();
}
// Select the matrix databse database
  if ( !@mysql_select_db("DATABASE") ) {
    echo( "<P>Not connected to Database</P>" );
    exit();
  }

  $cell_array = array();
  if ($result = mysql_query("SELECT cellid, COUNT(*) FROM rel GROUP BY cellid")) {
    if (mysql_num_rows($result)) {
      while ($row = mysql_fetch_assoc($result)) {
        $array[] = $row;
      }
    }
  }
?>

次に、require を使用して別のページからこの php スクリプトにアクセスし、任意の cellid のカウント結果を回復して、結果を HTML テーブルに入れることができるようにします。

これはこの問題にアプローチする正しい方法ですか?もしそうなら、この配列から値を呼び出す構文は何ですか?私は見ました

echo $cell_array['cellid'];

他の回答で使用されていますが、私にはうまくいかないようです。

ありがとう

4

2 に答える 2

1

「$cell_array」ではなく「$array」という新しい配列に行を追加しているため、$cell_array は空です。

ジョンが言及したように count(*) にエイリアスを与えてから

変化する

$array[] = $row;

$cell_array[$row["cellid"]] = $row['totalcount'];

値を引き出すには、次を使用します。

echo $cell_array[x];

ここで x は、カウントしたい cellid です。

また、「DATABASE」に定数を使用したいと思いますので、変更してください

if ( !@mysql_select_db("DATABASE") ) {

if ( !@mysql_select_db(DATABASE) ) {
于 2012-10-18T13:22:40.970 に答える
1

列には値を取得できるようにするCOUNT(*)必要がありますALIAS

SELECT cellid, COUNT(*) totalCount
FROM rel 
GROUP BY cellid

PHPでアクセスできます

while ($row = mysql_fetch_assoc($result)) 
{
    echo $row["cellid"];
    echo $row["totalCount"];
}
于 2012-10-18T13:16:14.840 に答える