第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在多對多關(guān)系中只重復(fù)一次行

如何在多對多關(guān)系中只重復(fù)一次行

PHP
神不在的星期二 2023-04-15 17:38:50
我在 php 上處理多對多關(guān)系我有 3 個表,包含電影名稱的電影表和包含流派和流派 ID 的電影 ID 流派表和包含電影 ID 和流派 ID 流派表的 movie_genre 表具有這些值(1 ,'action'),(2 ,'comedy'),(3 ,'drama'),(4 ,'mystery');我使用下面的代碼來獲取數(shù)據(jù) $query = " SELECT movie_name,movie_id,genre FROM movies    JOIN movie_genre ON movies.movie_id = movie_genre.movie_id    JOIN genre ON movie_genre.genre_id = genre.genre_id    WHERE movie.movie_id = ?";    $stmt = mysqli_prepare($conn, $query);    $stmt->bind_param('i', $id);    $stmt->execute();    $result = $stmt->get_result();    if(mysqli_num_rows($result) > 0 ){    while ($row = mysqli_fetch_assoc($result)) {    echo ' movie_id: '.$row["movie_id"].' movie name:'.$row["movie_name"].'    Genres:' .$row["genre"]        }}但結(jié)果會像movie_id movie_name genre[1]movie_id movie_name genre[2]movie_id movie_name genre[3]一個例子movie_id:55 movie name: titanic genre : action movie_id:55 movie name: titanic genre : dramamovie_id:55 movie name: titanic genre : romance我想要的結(jié)果是movie_id:55 movie name: titanic genre : action drama romance我確實(shí)嘗試使用 limit 1 但結(jié)果只顯示第一種類型
查看完整描述

2 回答

?
撒科打諢

TA貢獻(xiàn)1934條經(jīng)驗(yàn) 獲得超2個贊

您可以使用GROUP_CONCATGROUP BY

SELECT movie_name,movie_id, GROUP_CONCAT(genre SEPARATOR ' ') AS genre

FROM movies

JOIN movie_genre ON movies.movie_id = movie_genre.movie_id

JOIN genre ON movie_genre.genre_id = genre.genre_id

WHERE movie.movie_id = ?

GROUP BY movie_name,movie_id


查看完整回答
反對 回復(fù) 2023-04-15
?
慕神8447489

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超1個贊

將需要為我無法測試的流派做一個循環(huán),所以這只是將我想象的工作放在一起,但它會沿著這些方向進(jìn)行,這里可能存在語法錯誤


$query = " SELECT movie_name,movie_id,genre FROM movies

    JOIN movie_genre ON movies.movie_id = movie_genre.movie_id

    JOIN genre ON movie_genre.genre_id = genre.genre_id

    WHERE movie.movie_id = ?";    


    $stmt = mysqli_prepare($conn, $query);

    $stmt->bind_param('i', $id);

    $stmt->execute();

    $result = $stmt->get_result();

    if(mysqli_num_rows($result) > 0 ){


    // if it's greater than zero, great, we have at least 1 movie.

    // but if it's greater than 1, then we know we have more than 1 genre


    while ($row = mysqli_fetch_assoc($result)) {

    echo 'movie_id:'.$row["movie_id"].'movie name:'.$row["movie_name"];

    break; // so it only runs through this loop once, instead of using limit

    }//end while


    if(mysqli_num_rows($result) > 1 ){

    // more than 1 genre so loop and print out just genres

    while ($row = mysqli_fetch_assoc($result)) {    

      echo $row["genre"];    

    }//end while

    }//end if more than 1 genre

    }//end if


查看完整回答
反對 回復(fù) 2023-04-15
  • 2 回答
  • 0 關(guān)注
  • 140 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號