在保持论坛问题的MySQL数据库表中,我有一个字段,它也保持用户ID的谁喜欢这个问题或不喜欢,例如,当按钮点击时正在更新列喜欢以这种格式1,2,3,4,5 .等…我想验证用户只能喜欢/不喜欢一个问题一次,因为我是php新手,我希望使用foreach
和if
语句来检查用户ID是否已经在数据库列喜欢/不喜欢,如果没有更新,如果可用echo
错误
如果我使用第一个代码没有得到任何东西,虽然数据在数据库中存在。
$nocast = htmlentities($_SESSION['user']['id'], ENT_QUOTES, 'UTF-8');
$likes = ("$row[likes]");
$dislikes = ("$row[dislikes]");
foreach($likes as $voters)
if($likes == $nocast)
echo("you already voted");
exit;
如果我使用第二个,我得到了我想要的,但问题是我不能直接输入数字。
$nocast = htmlentities($_SESSION['user']['id'], ENT_QUOTES, 'UTF-8');
$likes = ("1, 2, 3, 4, 5");
foreach($likes as $voters)
if($likes == $nocast)
echo("you already voted");
exit;
我不需要创建两个表,如果这是错误的,怎么做?
由于一个用户可以为多个问题投票,而一个问题可以由多个用户投票,因此您具有多对多关系。因此,您最好使用两个表。
这里访问数组键的基本语法是错误的:
$likes = ("$row[likes]");
应该是:
$likes = $row['likes'];
这就留下了一个问题,这个变量是否真的保存了你想要的数组,如果没有看到更多的代码,我们就无法判断。运行var_dump($likes);
将很快显示