1

SQLWHERE句で変数を使用するのに問題があります。このエラーが発生します:

警告:mysql_fetch_array():指定された引数は有効なMySQL結果リソースではありません

コードは次のとおりです。

$sql3= mysql_query("SELECT COUNT($ww) FROM data WHERE $".$ww." =  ".$weeknumber." "); 

私は何が間違っているのですか?

4

5 に答える 5

1

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
于 2012-04-06T19:05:46.390 に答える
0

$ww列名を参照していると思います。$weekNumber明らかに値です。その場合、SQLクエリは次のようになります。

$sql3= mysql_query("SELECT COUNT(".$ww.") FROM data WHERE ".$ww." = ".$weeknumber." ");

私はPHPの人ではありませんが、あなたが正しいPHP構文を持っていると思います。

于 2012-04-06T18:00:25.543 に答える
0

このリンクを見ることをお勧めします。@Crontab が述べたように、where 句の前にドル記号がある理由がわかりません。

他に指摘すべき点がいくつかあります。リンクにあるように、クエリ テキストが適切にエスケープされていることを確認する必要があります。また、私が間違っていない場合 (PHP に慣れていない場合)、引用符を使用するだけでなく、テキストを明示的に連結する必要がありますか? (つまり、"SELECT ... " ... " の代わりに "SELECT ... " + " ... " を実行する必要がありますか?)

于 2012-04-06T18:04:30.247 に答える
0

php 文字列の書式設定はここで完璧です。ごちゃごちゃした紛らわしい連結文字列をきれいに読みやすくしてください!

$sql3= mysql_query(sprintf("SELECT COUNT(%s) FROM data WHERE %s=%d", $ww, $ww, $weeknumber));
于 2012-04-06T18:11:54.190 に答える
0

$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']}";
于 2012-04-06T18:12:58.807 に答える