我正在制作一个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 |时间
因此,如果已经设置了视频和用户名,则应该每次检查。
我也试过了!但是它不起作用
答案 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))