php - Warum können nicht die Felder „ID' und „Titel' aus der SQL-Anweisung extrahiert werden, sondern nur das Feld „Titel'?
扔个三星炸死你
扔个三星炸死你 2017-06-10 09:47:31
0
2
646

SQL-Anweisung

    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);
        
    }

Extraktion

                <?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 } ?>

Der Titel kann extrahiert werden, aber die ID kann nicht extrahiert werden?
Es gibt keine Fehler in den Titeln dieser extrahierten Daten, aber warum sind alle IDs gleich, das heißt, die ID des entsprechenden Titelfelds wird nicht extrahiert? Was ist mit SQL schief gelaufen? Unter der Anleitung aller Meister

Das Titelfeld ist Titel und das ID-Feld ist ID

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

Antworte allen(2)
淡淡烟草味

你把*换成t1.*看看

过去多啦不再A梦

第一:你连表查询的t1.id >= t2.id就已经会出现重复的数据,虽然你的算法看起来这个可能性比较小。
第二:结果集包含多个id字段,php取出来的结果出现在select后面的最后的id字段会覆盖之前的值,当然也可能查询优化器会改变select后列的顺序也说不定。

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage