0

在保留论坛问题的 MySQL 数据库表中,我有一个字段也保留了喜欢或不喜欢该问题的用户 ID,例如,当单击的按钮以这种格式 1、2、3更新喜欢的列时, 4, 5 .etc...我想验证用户只能喜欢/不喜欢一个问题,因为我是 php 新手,我希望使用foreachif语句来检查用户 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;

有人能帮我怎么做吗?我不需要创建两个表,如果这是错误的怎么做?欢迎任何建议。

4

2 回答 2

1

由于一个用户可以为多个问题投票,而一个问题可以由多个用户投票,因此您具有多对多关系。因此,您最好使用两个表。

于 2013-06-07T20:07:48.400 回答
1

您在这里访问数组键的基本语法错误:

$likes = ("$row[likes]");

那应该是:

$likes = $row['likes'];

这就留下了这个变量是否真的保存了你想要的数组的问题,如果没有看到更多的代码,我们就无法判断。跑步var_dump($likes);很快就会告诉你。

于 2013-06-07T20:09:15.197 回答