0

明らかな何かが欠けている可能性がありますが、このクエリを実行しようとすると、結果が返されません。MySQL に直接プラグインし、変数を有効な行の値に置き換えてみたところ、正しい出力が得られました。変数を使用すると、結果が得られません。誰にも考えがありますか?

    $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;
4

2 に答える 2

1

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

$sql = "
    SELECT title FROM le7dm_pf_tasks t
        INNER JOIN le7dm_pf_projects p ON t.project = p.id
    WHERE p.title = '{$ws_title}'
    ORDER BY title DESC LIMIT 1
";

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

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

echo $result_title;

本当に 1 行しかない場合は、while ループは必要ありません。やるだけ

$row = mysql_fetch_assoc($result_query);
于 2012-05-01T01:57:52.947 に答える
0

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

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

于 2012-05-01T14:34:34.743 に答える