PHP if else将检查ipaddress与表中存储的IP地址

PHP if else将检查ipaddress与表中存储的IP地址,php,ip-address,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

我有一个快速的小民意测验和一个查询来检查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");

}
$ip=$\u服务器['REMOTE\u ADDR'];
包括(“../db/config.php”);
包括(“../db/opendb.php”);
$result=mysql_查询(“从轮询中选择*,其中ip='$ip');
如果($result==$ip){
回声:“谢谢你们的投票。”;
}否则{
“回声”。
“回答1
”。 “回答2
”。 “回答3
”。 “回答4
”。 ""; 回声“; 回声“; 包括(“../db/closedb.php”); }

提前谢谢。

你只是忘了先取一行。此外,您还可以通过简单的计数获得必要的信息:

$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
}

你只是忘了先取一行。此外,您还可以通过简单的计数获得必要的信息:

$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
}
您的代码应该是:

$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将加快代码的速度。

您的代码应该是:

$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将加快代码的速度。

mysql\u查询不会直接返回数据,而是返回对结果的引用

您可以通过以下方式获取查询的行数:

$num=mysql\u 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'];

mysql_查询不直接返回数据,而是返回对结果的引用

您可以通过以下方式获取查询的行数:

$num=mysql\u 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'];

换句话说,mysql\u query返回一个结果句柄,而不是您选择的字段。换句话说,mysql\u query返回一个结果句柄,而不是您选择的字段。