私は動的にSQLクエリを実行する必要があります。私のコードは理解しやすいです:私の関数は配列とクエリを含む文字列を受け取り、配列を繰り返してクエリの "どこ"の部分のキー値を使用します。ここでは、コードの一部です:ループ反復後の文字列をリセットするPHP
function graficoTeste ($array, $sql) {
$conn = connect();
foreach ($array as $key => $value) {
$sql .= "'". $key. "'";
$result = $conn->query($sql);
if(!$result)
echo $conn->error;
while($row = $result->fetch_assoc()) {
$array[$key] = $row["count_est"];
}
}
問題がある:私は私のクエリはforeachの反復$キー値を毎回追加することを必要とする 、私は(実際のクエリを含む)文字列$ SQLを連結しています
SELECT COUNT(Estudante) AS count_est FROM `2016-1` WHERE municipio='Jatai'
SELECT COUNT(Estudante) AS count_est FROM `2016-1` WHERE municipio='Jatai''Goiânia'
SELECT COUNT(Estudante) AS count_est FROM `2016-1` WHERE municipio='Jatai''Goiânia''Goiás'
SELECT COUNT(Estudante) AS count_est FROM `2016-1` WHERE municipio='Jatai''Goiânia''Goiás''Catalão'
そして、私はそれをする必要があります:その結果$キー、と
SELECT COUNT(Estudante) AS count_est FROM '2016-1' WHERE municipio='Jatai'
SELECT COUNT(Estudante) AS count_est FROM `2016-1` WHERE municipio='Goiânia'
SELECT COUNT(Estudante) AS count_est FROM `2016-1` WHERE municipio='Goiás'
SELECT COUNT(Estudante) AS count_est FROM `2016-1` WHERE municipio='Catalão'
で$キーがなくてもデフォルトに$のSQL文字列を(元に戻す方法はありますループが反復するたびに?
ありがとうございました (私の悪い英語とポルトガル語のコード、ハハのために申し訳ありません)。
によって提案されたGROUP:固定、編集2をタイプミス。 –
しかし、これが難しい場合は、 '$ result = $ conn-> query($ sql。" '。$ key。 "'"); ' –
あなたは' $ sql'変数をどこで定義していますか?ループの繰り返しごとに "リセット"したい場合は、ループ*で定義する必要があります。または少なくともループによって変更されていない。 – David