我有一个快速的小投票和一个查询,用来检查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");
}提前谢谢。
发布于 2011-04-29 05:44:05
你的代码应该是:
$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可以加快代码速度。
发布于 2011-04-29 05:42:17
您只是忘记了首先获取行。此外,您还可以通过简单的计数获得必要的信息:
$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
}发布于 2011-04-29 05:45:50
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'];https://stackoverflow.com/questions/5825369
复制相似问题