0

好的,所以我不确定我是否会以一种完全可怕的方式去做。但是,我基本上是在尝试为我的室友创建一个电影数据库,以显示我们服务器上的内容并轻松查看。

我创建了一个数据库,该数据库使用来自我们 plex 服务器的 xml 提要自动更新,但是有一个小问题困扰了我一整夜。

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

我要做的是遍历最近的表,如果“最近”->“Desc”字段为空,则从“episodes”->“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)

4

1 回答 1

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");

然后,您可以完全摆脱第二个 select 语句,而 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' />";
}
于 2013-07-20T02:35:42.607 回答