0
私はサブクエリを持っており、MySQLのPHPで行を数えたいと思います。私は古いコードを修正しようとしており、PDOがより良く安全であることを知り、最終的にはこのコードをすべて書き直す予定ですが、今のところ私はそれを機能させる必要があります。私の問題は、$ total_employeesが行を数えるためのコマンドを計算することです。この数値は後で式で使用されます。 2つのサブクエリとして、またはphpとmysql_fetch_rowを使用する以外のSQL文で書き直す方法はありますか?私は複数のwhileループを避けようとしています。これは、見やすくするために、より大きなクエリから凝縮されています。すでにcount(*)を使用しているクエリでPHPの行をカウントしていますか?
while($rows=mysql_fetch_array($sqls)){
$cycle_id = $rows[cycle_id];
$sqls=("select subb.sqlcal AS sqlcalemp from
(select count(*) as sqlcal from dialogue_employees d_e,
dialogue_leaders d_l where
d_l.leader_group_id = d_e.leader_group_id and
d_l.cycle_id = $cycle_id) as subb");
$total_employees += $rows[sqlcalsemp];
これはそれを更新しようとする前に働いていた古いコードだった: は多分それぞれのすべてのカウントをつかむために、このような何かをしようと...
while($rows=mysql_fetch_array($sqls)){
$cycle_id = $rows[cycle_id];
$sqlcalcemp=mysql_query("select count(*) from dialogue_employees d_e,
dialogue_leaders d_l where
d_l.leader_group_id = d_e.leader_group_id and
d_l.cycle_id = $cycle_id") or die(mysql_error());
$rowtotal = mysql_fetch_row($sqlcalcemp);
$total_employees += $rowtotal[0];
単一のカウントを返します。外側のクエリは、必要のないこのカウントを選択します。だから、1行しか返さないようにしてください。 –
私たちは 'cycle_id'を得るための他のクエリを表示します、そして/またはそれらを数え、' cycle_id'でグループ化し、結果を1つのクエリで与えることができます。複数のクエリとループを実行する必要があります。 –
と可能であれば、テスト目的のためにいくつかのデータにsqlfiddle.comを提供してください。 –