2011-10-25 20 views
-3

mySQLデータから適切な選択を実行できないようです。カラム "format"のSQLクエリを取得できません

$sort = $_GET['sort']; 
// ... 
$sql = "SELECT id, title, genre, format, year FROM dvd WHERE format LIKE '$sort%'"; 

$result = mysql_query($sql, $link); 

<ul class="grid"> 
<?php 
while ($row = mysql_fetch_assoc($result)) 
    { ?> 
     ... 
where $sort = 'dvd' 

しかし、私は手動でそれを実行しようとしました、

SELECT id, title, genre, format, year FROM dvd WHERE format LIKE 'dvd'

私はphpMyAdminを使用した結果得ることができました - > MySQLの - > SQLを。

フォーマットを選択するたびにデータを取得できないのはなぜですか?

私はこれをジャンルやタイトルなどの他の列で試してみましたが、私が望む結果を得ることができました。

"SELECT id, title, genre, format, year FROM dvd WHERE format LIKE '". $sort ."%'"; 

は$ソート変数は$ _GETから来ていることを忘れて、それが

+0

手動クエリでワイルドカード%を忘れてしまった。 –

+0

だから '$ sql =" SELECT id、title、genre、year FROM dvd書式LIKE '$ sort%' ";'は動作しますか? –

答えて

0

単語「形式を確保しなければならないいけない:列はすべて

+0

フォーマットは予約語ではありません。 –

+0

right、formatは関数です。これらの文字の間に列名を入れようとすることができます: '名前を今変更したくない場合。 – mishu

+1

@Wesley van Opdorpはキーワードではありませんが、関数です。ここにmysqlのマニュアルへのリンクhttp://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_format – mishu

0

これを試してみてください同じVARCHARと同じ設定可能に構成されましたカラム名 "format"を他のものに変更してください...

0

あなたのデータベースには何があるのか​​よく分かっていない人には質問してください。

は、このよう

$sort = mysql_real_escape_string($_GET['sort']); 
$sql = "SELECT id, title, genre, format, year FROM dvd WHERE format LIKE '$sort%'"; 
$result = mysql_query($sql, $link) or trigger_error(mysql_error()." in ".$sql); 

あなたのクエリを実行し、表示を見ます。

関連する問題