关联不同的数据

时间:2010-03-26 22:05:31

标签: php mysql associations

我会尽量保持清醒,因为我无法让任何人帮助我,

我正在尝试将“视频”表格中的部分数据与各自的ID相关联。

让我们说,我有专栏ID,标题,系列,季节,插曲。

我收到我的数据:

    <?
$result = mysql_query("SELECT * FROM videos WHERE serie = '".$row['serie']."' AND season = '".$row['season']."'");
$total_rows = mysql_num_rows($result);
       ?>

(即在您看到视频本身的页面中)

所以现在我可以从赛季和赛季中获得一些剧集。

我要做的是为下一集添加一个链接,为前一个链接添加一个链接。在我使用ID的网址中,http://website.com/view/id/'视频ID在这里'/

那么如何才能获得同一季节和以下系列的以下和之前剧集的ID?

非常感谢帮助!

我想到的最简单的事情是

<?=$row['id'] + 1?>
<?=$row['id'] - 1?>

但事实是它是混合视频,所以它不会100%

3 个答案:

答案 0 :(得分:0)

如果你这样做:

$results = mysql_query($sql);

(其中$ sql是你提到的select语句)

然后$ results数组将包含该系列/赛季的所有结果。

所以你可以通过以下方式访问它:

$previous = $results[$n - 1];
$next = $results[$n + 1];

$previous_id = $previous['id'];
$next_id = $next['id'];

请注意,您当然需要检查$ n - 1是否不小于零,且($ n + 1)不大于$ total_rows。

答案 1 :(得分:0)

这是我尝试过的,我想这就是你的意思,

所有它正在进行的是前一集,所以我得/ view / id / 3 /(如果我正在观看的剧集是4)

    <?
                 $result = mysql_query("SELECT * FROM videos WHERE serie = '".$row['serie']."' AND season = '".$row['season']."'");
$total_rows = mysql_num_rows($result);
                 $previous = $results[$n - 1];
                 $next = $results[$n + 1];

                 $previous_id = $previous['id'];
                 $next_id = $next['id'];

                ?>

                <? if($row['episode'] == 1) { ?>
                <td align="center" width="33%"></td>
                <? } else { ?>
                <td align="center" width="33%"><a href="view/id/<?=$previous_id?>/"><img src="images/previous.gif" srcover="images/previoush.gif" alt="Previous Video" border="0" /></a></td><? } ?>

仅适用于前一个,

对不起,我必须这样张贴,如果没有,它就不会出现,

(如果我的代码错了,请纠正我)

感谢回复

答案 2 :(得分:0)

我认为你的字面意思也是我的榜样。我会在早上发布一个完整的例子(我只是在mo回复我的iPhone)。出于某种原因,它不会让我在你的上一个回复中添加评论,所以很抱歉这是一个答案。

[edit]这是一个更完整的例子:

<?php

$result = mysql_query("SELECT * FROM videos WHERE series='$series' AND season = '$season'");

$last_row = null;
$next_row = null;

$current_id = $_GET['id'];

while($row = mysql_fetch_assoc($result)) {
    if($current_id == $row['id']) {
        $next_row = mysql_fetch_assoc($result);
        break;
    }

    $last_row = $row;
}

if($last_row != null) {
    echo "<a href='?id={$last_row['id']}'>Prev</><br/>\n";
}

if($next_row != null) {
    echo "<a href='?id={$next_row['id']}'>Next</><br/>\n";
}

?>

有几点需要注意:

  • 这是未经测试的。
  • 在你的初始例子中,我不知道你在哪里获得$ row ['serie']和$ row ['season'],所以在我的例子中,我刚刚使用了变量$ series和$季节。您必须将这些内容填入您希望过滤当前结果集的内容。
  • 对于我的示例,URL格式使用GET布局(即。?id =)。