我只有一个快速的小轮询和一个查询来检查并查看IPaddress是否已经在表中,以了解某人是否已经投票。我已经创建了表,它可以工作。
我的问题是if else语句不起作用。我正努力做到这一点
如果ip地址在表格中显示字符串 否则显示民意调查
$ip=$_SERVER['REMOTE_ADDR'];
include("../db/config.php");
include("../db/opendb.php");
$result = mysql_query("SELECT * FROM Poll WHERE ip='$ip'");
if ($result==$ip) {
echo "Thank you for voting.";
} else {
echo "<form action=logvote.php method=post>" .
"<input type=radio name=ans value=ans1> Answer1<br>" .
"<input type=radio name=ans value=ans2> Answer2<br>" .
"<input type=radio name=ans value=ans3> Answer3<br>" .
"<input type=radio name=ans value=ans4> Answer4<br>" .
"<input type=submit value=Submit>";
echo "<input type=hidden name=ip value=";
echo "$ip>";
echo "</form>";
include("../db/closedb.php");
}
提前致谢。
答案 0 :(得分:4)
你只是忘了先取一行。此外,您可以通过简单的计数获得必要的信息:
$result = mysql_query("SELECT COUNT(*) as 'count' FROM Poll WHERE ip='$ip'");
$row = mysql_fetch_assoc($result);
if ($row['count']) {
// show string
} else {
// show poll
}
答案 1 :(得分:0)
您的代码应为:
$query = mysql_query("SELECT ip FROM Poll WHERE ip='$ip'");
$info = mysql_fetch_object($query);
$result = $info->ip;
if($result == $ip)
mysql_query()返回引用而不是字符串。
此外,在SELECT语句中使用ip将加速您的代码。
答案 2 :(得分:0)
mysql_query不直接返回数据,而是对结果的引用。
您可以使用以下命令获取查询的行数:
$ num = mysql_numrows($ result);
所以你可以查看:
$result = mysql_query("SELECT ip FROM Poll WHERE ip='$ip'");
if (mysql_numrows($result)) {
// dostuff
} else {
// do other stuff
}
// you can retrieve the ip like so:
$data = mysql_fetch_assoc($result);
$ip = $data['ip'];