簡體   English   中英

在特定表列上顯示PHP在MySQL上的行內容(不同表上的.row名稱相同)

[英]Show MySQL row content on PHP from specific table column (same .row name on different tables)

在我的應用程序中,我有兩個包含兩個具有相同列名的 列的表

表標題

COLUMN = name    - CONTENT example: Jurassic World Trailer

表視頻

COLUMN = name    - CONTENT example:<img src='/abc.png'>

我需要在PHP文件中顯示“名稱”兩列中的行,但是TITLES表中的row =“ name”總是最先出現,並且我無法從VIDEOS row =“ name”中顯示圖像。

        // output data of each row
    while($row = $result->fetch_assoc()) {      

            $written_fichas = $written_fichas .' target="_parent">'.$row['name'].'</a></b></div></td></tr><tr><td align="right"><div class="44"> '.$row["name"];

顯然,我必須更改為“ videos”表提取第二個查詢的方式,並在$ row ['name'] 和表名之外添加,但是我應該怎么做?

<div class="44"> '$VIDEOS-TABLE->.$row["name"];

上面代碼的預期結果

target="_parent">Jurassic World Trailer</a> //name come from titles table and is OK
</b></div></td></tr><tr><td align="right">
<div class="44"><img src='/abc.png'> //name NEED to come from VIDEOS table

謝謝您的幫助。

更新-更多代碼。

// First query
$sql = "SELECT MAX(l.`id`) FROM `videos` as l WHERE l.approved = 1" . $type2 ." GROUP BY l.`title_id`,  l.`name`, l.`season`, l.`episode` ORDER BY l.`id` DESC LIMIT 1000";
$result=mysqli_query($conn,$sql);
if ($result->num_rows > 0){
    $ids_max=[];
    while($row = $result->fetch_row())
        $ids_max[]=$row[0];
    $where_in = implode(',', $ids_max); 

    // Second query: 
    $sql = "SELECT l.id, l.name, l.title_id, t.name, t.poster, l.season, l.episode, l.approved FROM `videos` as l, `titles` as t WHERE l.title_id = t.id AND l.`id` IN (" .$where_in .")" .$type ." ORDER BY l.`id` DESC LIMIT " .$offset .", " .$limit;
    //print $sql;
    $result = $last_id = $conn->query($sql);

    //write head
    $file = fopen($filename, "w");
    $written_head = "
        <head>
        <link type=\"text/css\" rel=\"stylesheet\" href=\"/styles.css\"> 
        </head>
        <body>
    fwrite($file, $written_head . PHP_EOL);

    if ($result->num_rows > 0){
        // output data of each row
        while($row = $result->fetch_assoc()) {      
            if (empty($row['episode'])) {
                $written_fichas = "<div><table><tr><td><a href=/".$row['title_id'].'-'.$row['name'];
                $written_fichas = $written_fichas .' target="_parent"><img src='.$row['poster'].' /></a><div>&nbsp;</div></td>';
                $written_fichas = $written_fichas ."</tr><tr><td><table><tr><td></td></tr><tr><td><div class='55'><b><a href=/".$row['title_id'];
                $written_fichas = $written_fichas .' target="_parent">'.$row['name'].'</a></b></div></td></tr><tr><td><div class="44"> '.$row["name"];
                $written_fichas = $written_fichas .'</div></td></tr></table></td></tr></table></div>';

            fwrite($file, $written_fichas . PHP_EOL);
        }
    }else {
        fwrite($file, "0 results". PHP_EOL);}

在MySql中使用以下語法:

SELECT column_name AS alias_name FROM table_name;

SELECT column_name(s) FROM table_name AS alias_name;

為什么給SQL表加上別名會使用“ AS”?

以下代碼為您提供了一個解決方案:

將第二個查詢更新為此:

$sql = "SELECT l.id, l.name as video_name, l.title_id, t.name, t.poster, l.season, l.episode, l.approved FROM `videos` as l, `titles` as t WHERE l.title_id = t.id AND l.`id` IN (" .$where_in .")" .$type ." ORDER BY l.`id` DESC LIMIT " .$offset .", " .$limit;

將最后一行更新為這一行:

<div class="44"> '.$row["video_name"];

暫無
暫無

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

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