2016-06-23 8 views
1

"order by"タグに問題があります。mysqli_queryです。 実際にそれが正常に動作しますが、最後のリターンでちょうどこのエラーによって順:PHP mysqli select&order by

There was an error: Unknown column 'id' in 'order clause'

$query2 = "SELECT * FROM items WHERE itemownerid = '".$creatorid."' AND game = 1 AND `game_id` = $gameid order by id desc"; 
+5

**警告**:mysqliを使用する場合は、[パラメータ化されたクエリ](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)を使用する必要があります。 ['bind_param'](http://php.net/manual/en/mysqli-stmt.bind-param.php)を使用して、クエリにユーザーデータを追加します。 **重大な[SQLインジェクションのバグ](http://bobby-tables.com/)を作成したため、文字列の補間または連結を使用してこれを実行しないでください。 ** '$ _POST'や' $ _GET'データを直接クエリに入れないでください。誰かがあなたのミスを悪用しようとすると、非常に危険です。 – tadman

+3

アイテムテーブルに列IDがありますか? – scaisEdge

+1

@Anantなぜ彼はすべての結果が同じ値を持っているので、その列で注文する必要がありますか? – Barmar

答えて

2

が実際にエラー自体はid列が存在しないことを言いますが、あなたのitemsテーブルに存在し、order by idが失敗した理由です。

有効な列名に変更してください。 1つの例は次のとおりです。 -

$query2 = "SELECT * FROM items WHERE itemownerid = '".$creatorid."' AND game = 1 AND `game_id` = $gameid ORDER BY <write any existing column name of your items table> DESC"; 

注:@tadmanが提案するコメントを処理してください。非常に便利で必要です