0

クエリCOUNTから結果を取得するにはどうすればよいですか。

これが私のデータベースでのクエリの外観です

   fname  lname   mname    positionName  COUNT(tbl_votes.studId)
    jr    gwapo   is-very    chairman           2

これが私のウェブページの見た目です

       Name           Position      Number of Votes
  jr is-very gwapo    chairman         ______

そしてここに私のコードがあります。

<?php
  if ($result = $mysqli->query("SELECT tbl_student.fname, tbl_student.lname, tbl_student.mname, tbl_position.positionName, Count(tbl_votes.studId) FROM tbl_candidate Inner Join tbl_student ON tbl_candidate.studId = tbl_student.studId Inner Join tbl_position ON tbl_candidate.positionId = tbl_position.positionId Inner Join tbl_votes ON tbl_student.studId = tbl_votes.candId WHERE tbl_position.positionId =  '1' GROUP BY tbl_student.fname, tbl_student.lname, tbl_student.mname, tbl_position.positionName")) {

      if ($result->num_rows > 0) {
          echo "<table border='1' cellpadding='10'>";
          // set table headers
          echo "<tr><th>Name</th><th>Position</th><th>Number of Votes</th></tr>";

          while ($row = $result->fetch_object()) {
              echo "<tr>";
              echo "<td>" . $row->fname . " " . $row->mname . " " . $row->lname . " </td>";
              echo "<td>" . $row->positionName . "</td>";
              //this is where i suppose to echo the count result
            echo "<td>" . $row-> ??? . "</td>"; 
            echo"<tr>";
          }
          echo "</table>";
      } else {
          echo "No results to display!";
      }

  }
  $mysqli->close();

?>

heres my problem, how could i pass the "Count(tbl_votes.studId)" in "echo "" . $row-> ??? . ""; " ? pls help...

4

5 に答える 5

1

SQL クエリで、 に変更Count(tbl_votes.studId)Count(tbl_votes.studId) as stu_countます。

そしてphpでは、あなたが使うことができます$row->stu_count

于 2013-02-01T08:58:55.673 に答える
0

' count ' とともに ' as ' を使用する必要があります。したがって、クエリは次のようになります

"SELECT tbl_student.fname, tbl_student.lname, tbl_student.mname, tbl_position.positionName, Count(tbl_votes.studId) as no_of_votes FROM tbl_candidate Inner Join tbl_student ON tbl_candidate.studId = tbl_student.studId Inner Join tbl_position ON tbl_candidate.positionId = tbl_position.positionId Inner Join tbl_votes ON tbl_student.studId = tbl_votes.candId WHERE tbl_position.positionId =  '1' GROUP BY tbl_student.fname, tbl_student.lname, tbl_student.mname, tbl_position.positionName"

次に、php経由で取得できます

$row->no_of_vote

詳細については、COUNT ASを参照してください

于 2013-02-01T09:02:31.350 に答える
0

SQL エイリアスを使用する必要があります。

Count(tbl_votes.studId) as cnt
//or
Count(tbl_votes.studId) 'cnt'

次に、次の方法でアクセスできます$row->cnt

エイリアスに関するいくつかのルール:

  • クエリの残りの部分でエイリアスを使用できます(例では を使用できますORDER BY cnt)。注: 私が知る限り、select で作成したエイリアスを別の select ステートメントで使用することはできません。たとえば、SELECT COUNT(something) AS cnt, cnt+3 FROM... は機能しません
  • テーブルのエイリアスを使用して、将来の使用でテーブル名をエイリアスに置き換えることができます
于 2013-02-01T08:59:44.843 に答える
0

Select field1, field2, Count(tbl_votes.studId) as cnt from ... を試してください。

于 2013-02-01T09:00:03.533 に答える
0

書く代わりに

count(some_field)

書きます

count(some_field) as count_some_field

そのカウント フィールドにエイリアスを指定します。$row->count_some_field としてアクセスできます。

于 2013-02-01T09:00:53.833 に答える