2012-04-30 13 views
0

私はおそらく何か明白な行方不明ですが、このクエリを実行しようとすると結果が返されません。私はMySQLに直接プラグインして、有効な行の値で変数を置き換えてみました。正しい出力が得られました。変数を使用すると結果は得られません。誰もが何かを持っていますか?PHPクエリは結果を返しません

$query = "SELECT title FROM le7dm_pf_tasks WHERE project = (SELECT id FROM le7dm_pf_projects WHERE title = '".$ws_title."') ORDER BY title DESC LIMIT 1"; 

    $result_query = mysql_query($query) or die("Error: ".mysql_error()); 

    while ($row = mysql_fetch_assoc($result_query)) { 
     $result_title = $row['title']; 
    } 

    $result_title = substr($result_title,0,6); 
    echo $result_title; 
+0

'var_dump($ query); ' – zerkms

+0

まず、これをしないでください。ここにSQLインジェクションの脆弱性があります。 SQLインジェクションエラーを修正するために入力を変更している「セーフモード」などがオンになっている可能性がありますが、入力を知らなくても不明です。 – Andrew

+0

@zerkmsするvarダンプは、以下を思い付く: 文字列(317) 入力された "プロジェクト=(le7dm_pf_projectsタイトル= 'AAA' からIDを選択)タイトルDESCをLIMIT 1 BY ORDERがle7dm_pf_tasksからタイトルを選択します"私がやっているページのタイトル。それは常に知られており、ユーザー入力はありません。 –

答えて

1

あなたのSQLは、いくつかのリワーク(あなたの問題の理由ではありませんが)を行うことができます。ネストされた選択の必要はありません(1行を返した場合にもエラーが発生する可能性があります)。参加してみてください。

また、whileステートメントを使用して不明な行数を反復処理しています。そして、あなたは抜けて、部分文字列を試みます。しばらくの間反復された最後の行に価値があることをどうやって知っていますか?

whileループ内に$ result_titleを出力して、データを確認してください。

echo $result_title; 

真に1行しかない場合は、whileループは必要ありません。ちょうど

$row = mysql_fetch_assoc($result_query); 
0

strip_tags($ ws_title); - それは何でした!タイトルは、その特定のプロジェクトページにリンクされたアンカータグで囲まれていました。

しかし、すべての良い提案をありがとう。私は将来バグテストをするときにそれらのいくつかを使うつもりです。

関連する問題