簡體   English   中英

如何從php中的兩個表中選擇數據

[英]how can select data from two tables in php

我有兩個表格的新聞和主題

      news                        topics

id  title  text                id  title  text
--- ----- ----                 --- -----  ----
1   abc    aa                   1   hgd    hh   
2   def    bb                   2   ddf    ff
3   gfs    cc                   3   gty    gg
4   sdfv   dd                   4   bbc    tt

我想選擇兩個表的標題

我嘗試了這段代碼,但它不起作用

<?
$select_newtopics = $mysqli->query("select * from news,arts order by id desc");
$num_newtopics = $select_newtopics->num_rows;

while ($rows_newtopics = $select_newtopics->fetch_array(MYSQL_ASSOC)){

$id_newtopics       = $rows_newtopics ['id'];
$title_newtopics    = $rows_newtopics ['title'];

echo $title_newtopics."<br>";

}
?>

由於我看不到將兩個表捆綁在一起的鍵,因此您可以使用UNION參考google來獲取其他信息,例如以下示例:

SELECT title FROM news
UNION
SELECT title FROM topics;

假設您想要一個包含兩個表中所有(唯一)標題的結果集,而不管這些表是否以任何方式相關...

SELECT title FROM news

UNION 

SELECT title FROM topics

有關更多詳細信息,選項和詳細信息,請參見MySQL的UNION文檔。


要顯示結果,它與您先前的代碼基本相同:

$select_newtopics = $mysqli->query("SELECT title FROM news

UNION 

SELECT title FROM topics");

$num_newtopics = $select_newtopics->num_rows;

while ($row = $select_newtopics->fetch_array(MYSQL_ASSOC)) {
    echo $row['title'] . '<br>';
}

您的表必須共享一個ID,例如添加了news_id到topics表以鏈接兩個表

    news                        topics

id標題文本id標題文本news_id --- ----- ---- ----------- ---- ------- 1 abc aa 1 hgd hh 1 2 def bb 2 ddf ff 2 3 gfs cc 3 gty gg 3 4 sdfv dd 4 bbc tt 4

請更新您的數據庫結構,您可以使用JOIN

<?
 $select_newtopics = $mysqli->query("SELECT news.id AS newsId,
                                 news.title AS  newsTitle, 
                                 news.text AS newsText, 
                                 topics.id AS topicId, 
                                 topics.title AS topicTitle, 
                                 topics.text AS topictext
                                 FROM topics
                                 LEFT JOIN news ON topics.news_id = news.id
                                 ORDER BY topics.id
                                 DESC");
 $num_newtopics = $select_newtopics->num_rows;

 while ($rows_newtopics = $select_newtopics->fetch_array(MYSQL_ASSOC)){

        $id_newtopics       = $rows_newtopics ['topicId'];
        $title_newtopics    = $rows_newtopics ['topicTitle'];

        echo $title_newtopics."<br>";

}?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM