トーナメントを作成するためのWebアプリケーションを作成しています。このプロジェクトの過程でPHPを学んだので、私のスキルはおそらく最高ではありません。2つのmysqlグループクエリを組み合わせる
私のデータベースには識別子があります。day2_semifinal
またはday2_additional
は、基本的に準決為の種類を識別します。
だから私の最初のクエリがある:これは私のすべての準決勝のグループを取得します
$numberquery = mysql_query("
SELECT *
FROM tourneyplayers
INNER JOIN results
on (resultid=r_id)
INNER JOIN players
ON (p_id=playerid)
INNER JOIN tourneys
on (T_Id=tourneyid)
WHERE tourneyid='$tourneyid' and
in_day2 = 1 and
day2_semifinal IS NOT NULL
GROUP BY day2_semifinal
ORDER BY agegroupid",$connection);
、私はそれらを反復処理すると、グループ内のすべてのプレーヤー照会ます:私の後に今
$semigroup = $group['day2_semifinal'];
$playerQuery = mysql_query("
SELECT *
FROM tourneyplayers
INNER JOIN results
on (r_id=resultid)
INNER JOIN players
on (p_id=playerid)
WHERE tourneyid='$tourneyid' AND
day2_semifinal = '$semigroup' and
in_day2 = 1
ORDER BY day2startplace",$connection);
をテーブルを作成してプレーヤーのクエリのすべてのデータをday2_semifinal
にエコーした場合、別のクエリを実行します。
$numberquery = mysql_query("SELECT * FROM tourneyplayers INNER JOIN results on (resultid=r_id) INNER JOIN players ON (p_id=playerid) WHERE tourneyid='$tourneyid' and in_day2 = 1 and day2_additional_nosemi IS NOT NULL AND day2_additional_nosemi <> 0 GROUP BY day2_additional_nosemi ORDER BY agegroupid",$connection);
最初のものとかなり似ていますが、day2_semifinal
の識別子がday2_additional
に変更されています。そのクエリの後、私は再び、day2_additional_nosemi
グループを反復処理し、それらの内部のプレイヤーを照会します:
$additionalgroup = $group['day2_additional_nosemi'];
$playerQuery = mysql_query("SELECT * FROM tourneyplayers INNER JOIN results on (r_id=resultid) INNER JOIN players on (p_id=playerid) WHERE tourneyid='$tourneyid' AND day2_additional_nosemi = '$additionalgroup' and in_day2 = 1 ORDER BY day2startplace",$connection);
さて、これは動作しますが、これは最初のクエリはagegroupid
によってそれらを注文するので、順序で問題を作成しますが、 day2_semifinal
のプレーヤーのみ(day2_semifinal
と一緒に注文されたday2_additional
のプレイヤーがいます)。私は別のクエリを実行する場合、以前のデータはすでにエコーされており、順序は正しくありません。後で選手を選ぶために、2つの$numberquery
クエリをどのように連結することができますか?
削除mysql_を。セキュリティ上の理由からphp7から削除されましたmysqli_またはpdo –
私は次のプロジェクトでそれに移行します、私はまだ学習中です。私が修正している領域は公開されていません。 – Banana
GROUP BYを使用している間にすべての列を選択しているため、最初のクエリは無効です。最初のクエリで実際に何を集計しようとしていますか? –