1

私は次のことをします:

$query .=" SELECT * , COUNT(PRESENT) FROM seventh_a";
$query .=" WHERE class ='0' AND NAME ='Alexander Kirkby Scherer'";
$query .=" AND PRESENT = 'TS' GROUP BY lesson";

$query = " SELECT * , COUNT(lesson) FROM seventh_a";
$query .=" WHERE class ='0' AND NAME ='Alexander Kirkby Scherer'";
$query .=" GROUP BY lesson";

その後、エコーアウトすることはできます$row['COUNT(PRESENT)']が、できません$row['COUNT(lesson)']

誰かが両方の値を取得するために何をすべきか教えてもらえますか?そうすれば私はそれらを扱うことができますか?

4

2 に答える 2

2

マニュアルページによると、 mysqli_multi_queryを使用している場合は、次のようにさまざまなクエリの結果にアクセスできます。

最初のクエリから結果セットを取得するには、mysqli_use_result()または を使用できますmysqli_store_result()mysqli_more_results()以降のすべてのクエリ結果は、およびを使用して処理できます mysqli_next_result()

彼らはいくつかのサンプルコードを提供します:

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if ($mysqli->multi_query($query)) {
    do {
        /* store first result set */
        if ($result = $mysqli->store_result()) {
            while ($row = $result->fetch_row()) {
                printf("%s\n", $row[0]);
            }
            $result->free();
        }
        /* print divider */
        if ($mysqli->more_results()) {
            printf("-----------------\n");
        }
    } while ($mysqli->next_result());
}
于 2012-10-05T15:02:50.863 に答える
1

2 query は使用できません。このような結合クエリを使用します

$query .=" SELECT * , COUNT(PRESENT),COUNT(lesson) FROM seventh_a";
$query .=" WHERE class ='0' AND NAME ='Alexander Kirkby Scherer'";
$query .=" AND PRESENT = 'TS' GROUP BY lesson";

あなたはあなたの結果を得るでしょ$row['COUNT(PRESENT)']$row['COUNT(lesson)']

または、このようなクエリ間の追加にmysqli のmulti_query関数を使用します;

$query .=" SELECT * , COUNT(PRESENT) FROM seventh_a";
$query .=" WHERE class ='0' AND NAME ='Alexander Kirkby Scherer'";
$query .=" AND PRESENT = 'TS' GROUP BY lesson;";   // semicolon here

$query .= " SELECT * , COUNT(lesson) FROM seventh_a";
$query .=" WHERE class ='0' AND NAME ='Alexander Kirkby Scherer'";
$query .=" GROUP BY lesson";
于 2012-10-05T14:54:43.473 に答える