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;

如果您真的只有一行,则不需要 while 循环。做就是了

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

strip_tags($ws_title); - 是什么做的!标题包含在链接到该特定项目页面的锚标记中。

不过感谢所有好的建议。将来在进行错误测试时,我将使用其中的一些。

于 2012-05-01T14:34:34.743 回答