用第二个表(PHP)的结果填充SQL空数据库值

时间:2013-07-20 02:18:05

标签: php mysql

好的,所以我不确定我是否会以一种完全可怕的方式来做这件事。 但是,我基本上是想为我的房间伙伴创建一个电影数据库,以显示我们在服务器上的内容,并轻松检查出来。

我创建了一个数据库,它使用来自我们的plex服务器的xml提要自动更新,但有一小部分一直在困扰我。

我正在尝试为最近添加的内容创建一个滑块,但是当涉及到“摘要”时,电影会将摘要添加到我的“最近”表中,而电视剧集则没有(不确定为什么plex的xml会去像这样,但我试图解决它)。电视剧集在“剧集”表格中有摘要。

我想要做的是循环查看最近的表格,如果“最近” - >“Desc”字段为空,则从“剧集” - >“取代”取代内容,而不是通过节目标题进行匹配)

到目前为止,我对此循环的代码是:

<?php
$con=mysqli_connect("localhost","","","plex");
// Check connection
if (mysqli_connect_errno())
{
 echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

                $recent = mysqli_query($con,"SELECT * FROM recent LIMIT 0, 6");
                $shows = mysqli_query($con,"SELECT * FROM shows");
                while($row = mysqli_fetch_array($recent))
                {
                    $art = $row['Art'];
                    $title = $row['Title'];
                    if (empty($row['Desc'])){
                        /* STUCK HERE*/
                    }
                    else {
                        $summary = $row['Desc'];
                    }
                    echo "<img src='$art.jpg' alt='$summary' title='$title' />";
                }
                mysqli_close($con);
        ?>

我的桌子看起来像:

**********episodes**********************      **********recent*************
****************************************      *****************************
*id**eptitle**showtitle**desc*thumb*art*      *id**Title**Desc**thumb**art*
*  **       **         **    *     *   *      *  **     **    **     **   *

我会尽力澄清任何不明确的事情(已经很晚了,你知道:P)

1 个答案:

答案 0 :(得分:0)

如果您想通过单个查询执行此操作,您可以执行以下操作:

$recent = mysqli_query($con,"SELECT r.Art, r.Title, if(r.Desc is null or r.Desc = '', e.Desc, r.Desc) as `Desc` FROM recent r inner join episodes e on r.Title = e.showtitle LIMIT 0, 6");

然后你可以完全摆脱第二个选择语句,而你在while循环中的PHP代码将是:

while($row = mysqli_fetch_array($recent))
{
    $art = $row['Art'];
    $title = $row['Title'];
    $summary = $row['Desc'];
    echo "<img src='$art.jpg' alt='$summary' title='$title' />";
}