php - sql語句為什麼提取不到id 和title兩個字段,只能提取title字段?
扔个三星炸死你
扔个三星炸死你 2017-06-10 09:47:31
0
2
598

SQL語句

    public function get_radom_article(){
            $table1 = $this->get_table('article') ;
            $sql = 'SELECT * 
    FROM `'.$table1 .'` AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `'.$table1 .'`)-(SELECT MIN(id) FROM `'.$table1 .'`))+(SELECT MIN(id) FROM `'.$table1 .'`)) AS id) AS t2 
    WHERE t1.id >= t2.id 
    ORDER BY t1.id LIMIT 10';
     return $this->query_all($sql);
        
    }

提取

                <?php foreach($this->radom_articles AS $key => $val) { ?>
                <li><a  href="article/<?php echo $val['id']; ?>" title="<?php echo $val['title']; ?>"><?php echo  $val['title']; ?></a></li>
                <?php } ?>

#可以提取到標題為什麼提取不到id?
這些提取到的數據,標題全部沒有錯誤,但是為什麼ID全部都是一樣的,也就是沒有提取到對應標題字段的id? SQL是哪裡出錯了嗎?各位大神指導下

標題的欄位是title,id欄位是id

扔个三星炸死你
扔个三星炸死你

全部回覆(2)
淡淡烟草味

你把*換成t1.*看看

过去多啦不再A梦

第一:你連表查詢的t1.id >= t2.id就已經會出現重複的數據,雖然你的演算法看起來這個可能性比較小。
第二:結果集包含多個id字段,php取出來的結果出現在select後面的最後的id字段會覆蓋之前的值,當然也可能查詢優化器會改變select後列的順序也說不定。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!