PHP if else检查ip地址对照存储在表中的一个

时间:2011-04-28 21:39:10

标签: php ip-address

我只有一个快速的小轮询和一个查询来检查并查看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");

}

提前致谢。

3 个答案:

答案 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'];