php页面传递参数的问题,求指教
$query = $db->findall("p_newsclass where f_id='$_GET[cid]'");while ($row = $db->fetch_array($query)) { $news_class_in.= $row[id].",";}echo $news_class_in=$news_class_in."$_GET[cid]";
就是显示新闻列表,能正确打印出来
但是写到SQL中
$result = mysql_query("select id from p_newsbase where cid in ($news_class_in)");$total = mysql_num_rows($result);pageft($total, 20);if ($firstcount findall("p_newsbase where cid in ($news_class_in) limit $firstcount, $displaypg");
就出现错误了,获取的cid居然变了
回复讨论(解决方案)
$news_class_in.= $row[id].",";
这样拼接出来的结果是会多出一个逗号,可以用substr或者rtrim去掉:
while ($row = $db->fetch_array($query)) {
$news_class_in.= $row[id].",";
}
$new_class_in = rtrim($new_class_in, ",");
echo $new_class
看你的截图,应该就是cid in()括号中的最后一个逗号引起的sql错误
URL上是id,怎么用$_GET[ cid] 获取?
URL上是id,怎么用$_GET[ cid] 获取?
$query = $db->findall("p_newsclass where f_id='$_GET[cid]'");while ($row = $db->fetch_array($query)) { $news_class_in.= $row[id].",";}echo $news_class_in=$news_class_in."$_GET[cid]";
这是直接打印URL获取的就是cid
下面写的htm文件指定的链接是cid啊
{section name=l loop=$sm_list} {/section}
$news_class_in.= $row[id].",";
这样拼接出来的结果是会多出一个逗号,可以用substr或者rtrim去掉:
while ($row = $db->fetch_array($query)) {
$news_class_in.= $row[id].",";
}
$new_class_in = rtrim($new_class_in, ",");
echo $new_class
看你的截图,应该就是cid in()括号中的最后一个逗号引起的sql错误
谢谢回答,看我下面的截图,为什么我直接打印就不会有后面的逗号呢?
最后一张图,错误的sql语句,多了一个“,”。
你这样写循环最后会多一个逗号
$news_class_in 这个变量最后多了一个逗号。
加一句:
$news_class_in = trim($news_class_in, ',');
上一篇: 关于PHP的拦截器运用
推荐阅读
-
php页面传递参数的问题,求指教
-
php两个表单值传递的有关问题,求大神指教
-
PHP页面间参数传递的四种方法详解,四种方法详解
-
javascript - PHP嵌入表单提交遇到问题关于取onclick事件产生的值 求大神指教
-
网络编程 - 使用PHP通过不同页面访问同一主机的cookie传递问题
-
解决SpringMVC Controller 接收页面传递的中文参数出现乱码的问题
-
解决SpringMVC Controller 接收页面传递的中文参数出现乱码的问题
-
PHP页面间参数传递的四种方法详解
-
codeigniter - PHP session在页面间传递的问题
-
PHP页面间参数传递的四种方法