我可能遗漏了一些明显的东西,但是当我尝试执行此查询时,它不返回任何结果。我将其直接插入 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;
最佳答案
您的 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);
关于PHP 查询没有返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10391408/