$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 < 0)$firstcount = 0;$query = $db->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} {$sm_list[l].cidname}
{$sm_list[l].title} {$sm_list[l].date_time} {/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, ',');