【发布时间】:2014-02-03 21:08:04
【问题描述】:
我对 SQL 和 PHP 编码有点新手,但我正在尝试执行以下操作:
为了防止登录用户两次参加比赛,我将他们的用户 ID 和比赛 ID (comp) 记录到名为 competitions 的 SQL 表中.当用户加载页面时,我希望能够查询数据库以检查此用户 ID 之前是否已进入特定比赛。如果有,则显示页面的一个版本,如果没有,则显示第二个版本。
基本上,我正在查看 userid==x AND comp==y 是否在表格的给定行中。
这是我目前得到的代码,但它似乎不起作用。
$result = databaseSelect("select id, userid, comp from competitions where userid=" . $_SESSION['user']);
if (count($result) > 0) {
$r2 = ("select" . $result['id'] . " from" . $result . " where" . $result['comp'] . " == " . $compid);
if (count($r2) > 0) {
echo "<p>No competitions</p>";
}
else{
echo "<p>Competition...</p>";
}
【问题讨论】:
-
首先尝试在
" where"语句中添加一些填充。 -
Hardy:你能举一个你所说的填充的例子吗?
-
他的意思是在 'from' 和 'where' 之后添加一个空格,这样您的查询就不会看起来像“从某个地方选择一些东西 wheresomevalue == 2”
-
我现在的代码可以正常工作了,因为它实际上在页面上显示了一些东西。然而,即使
$compid是一个没有用户输入的完全唯一的数字,它仍然会表现得好像$r2中有一个大于0 的值。当echoing$r2时,我会显示:select fromArray where = 3 -
然后是另一件事;您的 databaseSelect 查询到底返回了什么?资源?数组?您的第二个...“查询”存在上述问题。另外,你实际上并没有用它做任何事情。您只需定义一个字符串(查询),然后计算该字符串中的字符数。由于该字符串中有 > 0 个字符,因此您将始终看到“No Competitions”...如果您真的想要一个答案,您也应该运行该查询。