Php 附加变量值中的空格
我试图根据实际情况为我的“get_threads”变量提供一些额外的内容。但它没有按预期工作,查询根本没有执行。 “final”变量中似乎缺少一些空格。 但当我将它们添加到值中时,输出完全消失 输出查询是:Php 附加变量值中的空格,php,variables,Php,Variables,我试图根据实际情况为我的“get_threads”变量提供一些额外的内容。但它没有按预期工作,查询根本没有执行。 “final”变量中似乎缺少一些空格。 但当我将它们添加到值中时,输出完全消失 输出查询是: SELECT id, main_forum_id, icon_id, title, description, author_id, closed, views, posts, date_created, last_post_author_id, last_replyTime FROM for
SELECT id, main_forum_id, icon_id, title, description, author_id, closed, views, posts, date_created, last_post_author_id, last_replyTime FROM forum_thread WHERE main_forum_id= ('1') ORDER BY views ASC LIMIT 0, 20
这就是代码:
$get_threads = "SELECT id, main_forum_id, icon_id, title, description, author_id, closed, views, posts, date_created, last_post_author_id, last_replyTime FROM forum_thread WHERE main_forum_id= ('" . $actualBoard . "')";
if (isset($_GET[ 'sortField' ])) {
switch ($_GET[ 'sortField' ]) {
case topic:
$get_threads .= " ORDER BY title ASC ";
break;
case rating:
$get_threads .= " ORDER BY rating ASC ";
break;
case replies:
$get_threads .= " ORDER BY replies ASC ";
break;
case views:
$get_threads .= " ORDER BY views ASC ";
break;
case lastReply:
$get_threads .= " ORDER BY last_replyTime DESC ";
break;
}
} else {
$lastReplyClass = 'columnLastPost active';
$get_threads .= " ORDER BY last_replyTime ASC ";
}
$get_threads .= " LIMIT $start, $perPage";
解决方案:
好吧,我真是个白痴。。
当时有一个格式化功能并删除了它。导致错误的原因:
Fatal error: Call to undefined function formatDateString()
ASC限制
必须有一个空间
您应该在您的限制和订单之前添加一个空格
$get_threads .= " ORDER BY last_replyTime ASC";
}
$get_threads .= " LIMIT $start, $perPage";
按上次回复时ASC给出
订单与限制20之间的空格
另外,开关盒用单引号或双引号包围
比如说,
case "topic":
break;
case "views":
break;
尝试在所有“ORDER BY[…]ASC | DESC”插入引号后加上空格,将引号插入大小写
参数中。示例:case'topic':
(如果topic未定义为常量),您可以在开关中插入默认值
case
…我知道,但这就是问题所在。如果我添加一个空格,输出为:nothing。没有PHP错误,没有MySql错误。什么都没有。试着在数据库中使用查询,如果它能工作,试一下,这是调试SQL=)的第一步输出不能是什么都没有,只是因为你添加了一个空格。然后你在错误的地方添加了空格或者其他东西。空格不会杀死任何东西。你可以在顶部看到经过编辑的代码。我确信,我的代码是正确的。在我将查询拆分为这几个部分之前,它就像一个符咒。这就是该死的空格。你仍然缺少限制之前的空格,它仍然说是ASCLIMIT而不是ASC LIMIT。这就是问题的重点……当我正确添加空格时,输出完全是空的。@RedDragon55:在执行之前,只需echo
你的查询,然后运行DB
。看看有没有结果?同时用您的查询更新您的问题。@RedDragon55:运行查询时有结果吗?我只想问这个问题。例如选择。。。其中主论坛id=('1')。。。限制20,20
不是你的功能部分。是的,我期望的结果。我已经发布了查询<代码>从论坛线程中选择id、主论坛id、图标id、标题、描述、作者id、关闭、视图、帖子、创建日期、最后发布作者id、最后回复时间,其中主论坛id=('1')按视图排序ASC限制0、20
@RedDragon55:您忘记了开关大小写字符串值周围的引号。我现在更新了我的答案。
case "topic":
break;
case "views":
break;
$get_threads = "SELECT id, main_forum_id, icon_id, title, description, author_id, closed, views, posts, date_created, last_post_author_id, last_replyTime FROM forum_thread WHERE main_forum_id= ('" . $actualBoard . "') ";
$sortField = (isset($_GET[ 'sortField' ])) ? $_GET[ 'sortField' ] : '';
switch ($sortField) {
case 'topic':
$get_threads .= " ORDER BY title ASC ";
break;
case 'rating':
$get_threads .= " ORDER BY rating ASC ";
break;
case 'replies':
$get_threads .= " ORDER BY replies ASC ";
break;
case 'views':
$get_threads .= " ORDER BY views ASC ";
break;
case 'lastReply':
$get_threads .= " ORDER BY last_replyTime DESC ";
break;
default:{
$lastReplyClass = 'columnLastPost active';
$get_threads .= " ORDER BY last_replyTime ASC ";
}
break;
}
$get_threads .= " LIMIT $start, $perPage";