[英]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.