如何在PHP/MySQL中获取和比较行值?
我想知道我需要使用什么代码从一行中获取值(这自然会有来自不同列的数据) 我想检查IP地址是否与轮询ID相同。正如您所期望的,IP地址存储在一列中,轮询ID存储在下一列中如何在PHP/MySQL中获取和比较行值?,php,mysql,database,Php,Mysql,Database,我想知道我需要使用什么代码从一行中获取值(这自然会有来自不同列的数据) 我想检查IP地址是否与轮询ID相同。正如您所期望的,IP地址存储在一列中,轮询ID存储在下一列中 $q = mysql_query("SELECT * FROM logs"); while($row = mysql_fetch_array($q)) { if(($ip = $_SERVER['REMOTE_ADDR']) == $row['ip']) { $duplic
$q = mysql_query("SELECT * FROM logs");
while($row = mysql_fetch_array($q))
{
if(($ip = $_SERVER['REMOTE_ADDR']) == $row['ip'])
{
$duplicateIP = true;
}//end if
if(($row['poll_id'] == 1))
{
$duplicatePoll = true;
}//end if
}//end while
我意识到这段代码不起作用,因为只要poll id等于1,它就会返回true。如何确保只有当轮询id与IP地址匹配时才会返回true?谢谢。而不是:
if(($ip = $_SERVER['REMOTE_ADDR']) == $row['ip'])
{
$duplicateIP = true;
}//end if
if(($row['poll_id'] == 1))
{
$duplicatePoll = true;
}//end if
你应该写:
if($_SERVER['REMOTE_ADDR'] == $row['ip'] && $row['poll_id'] == 1){
$duplicateIP = true;
}//end if
或更改您的查询:
$q = mysql_query(
"SELECT * FROM logs WHERE ip = '".$_SERVER['REMOTE_ADDR'] .
"' and poll_id = '".$iPollid."' "
);
除非您在其他地方使用
$ip
,否则不需要在if语句中进行变量赋值。这是什么?从日志中选择*,其中IP=$\u服务器['REMOTE\u ADDR'];赞成将IP和PoolID放在查询上。您还可以执行类似“从ip=”的日志中选择1作为exists”。$\u SERVER['REMOTE\u ADDR']”和poll\u id=”。$iPollid.“LIMIT 1;”。这将返回一行,其中数组索引“exists”中有1“。如果是空的,表上就不存在。我相信不需要限制1。”。ip+poll\u idYep上应该有“唯一”索引。但既然我们没有模式,就做最坏的打算。。。hehe(该表也称为log,因此您可以预期同一ip pollid对有多行)。也可以为这对列添加索引。干杯