cari

Rumah  >  Soal Jawab  >  teks badan

php - Mengapa pernyataan sql tidak boleh mengekstrak medan ID dan tajuk, tetapi hanya medan tajuk?

SQL statement

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

Pengeluaran

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

Tajuk boleh diekstrak tetapi ID tidak boleh diekstrak?
Tiada ralat dalam tajuk data yang diekstrak ini, tetapi mengapa semua ID adalah sama, iaitu ID medan tajuk yang sepadan tidak diekstrak? Apa yang salah dengan SQL? Di bawah bimbingan tuan-tuan semua

Medan tajuk ialah tajuk dan medan id ialah id

扔个三星炸死你扔个三星炸死你2768 hari yang lalu661

membalas semua(2)saya akan balas

  • 淡淡烟草味

    淡淡烟草味2017-06-10 09:49:31

    Lihatlah*换成t1.*

    balas
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-10 09:49:31

    Pertama: Jika t1.id >= t2.id dalam pertanyaan jadual penyertaan anda, data pendua akan muncul, walaupun algoritma anda nampaknya kurang berkemungkinan berbuat demikian.
    Kedua: Set hasil mengandungi berbilang medan id. Medan id terakhir selepas pilihan dalam hasil yang dikeluarkan oleh PHP sudah tentu, pengoptimum pertanyaan juga boleh mengubah susunan lajur selepas pilihan.

    balas
    0
  • Batalbalas