Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP/MySQL中获取和比较行值?_Php_Mysql_Database - Fatal编程技术网

如何在PHP/MySQL中获取和比较行值?

如何在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

我想知道我需要使用什么代码从一行中获取值(这自然会有来自不同列的数据)

我想检查IP地址是否与轮询ID相同。正如您所期望的,IP地址存储在一列中,轮询ID存储在下一列中

  $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对有多行)。也可以为这对列添加索引。干杯