isset()在这边吗? /或者我的if条件错了吗?

时间:2013-12-11 19:21:00

标签: php if-statement conditional-statements isset

我正在制作一个Tube-Site而且我无法完成我的代码。目前我正在制作一个最喜欢的脚本,所以注册的人可以“偏爱”视频,并可以在特殊网站上看到它们。

逻辑上,不应该两次支持视频,这是我的问题。

但我认为我的if条件是错误的,因为它没有检查userid和videoid是否存在!

这是我的代码:

<?php
 session_start();
 include('config.php');

    $videoid = $_GET['id'];
    $userid = $_SESSION["username"];

    $result = mysql_query("SELECT `id` FROM `users` WHERE `username` = '$userid'") or die (mysql_error());
    $row = mysql_fetch_assoc($result);
    $usernameid = $row['id'];

    if (isset($userid, $videoid))
    {
    $row = "INSERT INTO favorites (userid, videoid, time)
    VALUES
    ('$usernameid','$videoid', now())";

    mysql_query("$row");

    header ("Location: http://localhost/video.php?id=" . $_GET['id'] . ""); 
    } 
    else
    {
    header ("Location: http://localhost/video.php?id=" . $_GET['id'] . "");
    }


?>

我的收藏夹 - 表:收藏夹| userid | videoid |时间

因此,如果已经设置了视频和用户名,则应该每次检查。

我也试过了!但是它不起作用

3 个答案:

答案 0 :(得分:0)

更新

if($userid != '' && $videoid != ''){
    $check = mysql_query("SELECT * FROM `favorites` WHERE `userid` = '$usernameid' AND `videoid` = '$videoid'");

    if (mysql_num_rows($check) == 0) {
        $row = "INSERT INTO favorites (userid, videoid, time)
        VALUES ('$usernameid','$videoid', now())";

        mysql_query("$row");

        header ("Location: http://localhost/video.php?id=" . $_GET['id'] . ""); 
    }else{
        echo "You've already voted!";
    }
}else{
    header("Location: http://localhost/");
}

答案 1 :(得分:0)

你应该考虑调查MySQLI因为mysql_ *函数正在慢慢被弃用。

无论如何你应该使用一个名为mysql_num_rows的函数并检查结果是0还是1.如果返回的结果为1,你就会知道该视频已经是有利的了,不应该重复这个动作。如果你得到0然后插入它!

if (mysql_num_rows($result) == 0 && isset($userid) && isset($videoid)) {
$row = "INSERT INTO favorites (userid, videoid, time)
VALUES ('$usernameid','$videoid', now())";

    mysql_query("$row");

    header ("Location: http://localhost/video.php?id=" . $_GET['id'] . ""); 
}

答案 2 :(得分:-2)

变化:

if (isset($userid, $videoid))

有:

if (isset($userid) && isset($videoid))