SQLWHERE句で変数を使用するのに問題があります。このエラーが発生します:
警告:mysql_fetch_array():指定された引数は有効なMySQL結果リソースではありません
コードは次のとおりです。
$sql3= mysql_query("SELECT COUNT($ww) FROM data WHERE $".$ww." = ".$weeknumber." ");
私は何が間違っているのですか?
COUNT(column_name) に列名を入れてテーブルの列を数えてみませんか?
そのようです:
$sql3= mysql_query("SELECT COUNT(week_num) as wknum FROM data WHERE '$ww' = '$weeknumber'");
$counted_weeks["week_num"]
// $counted_weeks["week_num"] will output your sum
//week_num would be a column name from your "data" table
$ww
列名を参照していると思います。$weekNumber
明らかに値です。その場合、SQLクエリは次のようになります。
$sql3= mysql_query("SELECT COUNT(".$ww.") FROM data WHERE ".$ww." = ".$weeknumber." ");
私はPHPの人ではありませんが、あなたが正しいPHP構文を持っていると思います。
このリンクを見ることをお勧めします。@Crontab が述べたように、where 句の前にドル記号がある理由がわかりません。
他に指摘すべき点がいくつかあります。リンクにあるように、クエリ テキストが適切にエスケープされていることを確認する必要があります。また、私が間違っていない場合 (PHP に慣れていない場合)、引用符を使用するだけでなく、テキストを明示的に連結する必要がありますか? (つまり、"SELECT ... " ... " の代わりに "SELECT ... " + " ... " を実行する必要がありますか?)
php 文字列の書式設定はここで完璧です。ごちゃごちゃした紛らわしい連結文字列をきれいに読みやすくしてください!
$sql3= mysql_query(sprintf("SELECT COUNT(%s) FROM data WHERE %s=%d", $ww, $ww, $weeknumber));
$ww
それが有効な列名で$weekNumber
あり、整数であると仮定すると、これは機能するはずです:
$query = "SELECT COUNT(*) AS cnt FROM data WHERE $ww = '$weekNumber'";
$rs = mysql_query($query);
$r = mysql_fetch_assoc($rs);
echo "Count: {$r['cnt']}";