【问题标题】:Comparing values of two tables in mysql /php using while and if combination使用while和if组合比较mysql / php中两个表的值
【发布时间】:2015-12-19 08:58:13
【问题描述】:

是否可以使用两个 while 语句比较两个表中的值。我正在使用以下不起作用的方式。请指出我的错误或建议我更简单的解决方案。

$sql = "select * from display where gp_no = '$gp_no' ";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0)
{

  $s = " select date,member_no  from bid where gp_no = '$gp_no ' "; 
  $r = mysqli_query($conn, $s);
  if (mysqli_num_rows($r) > 0)
   {
    while($row = mysqli_fetch_assoc($result))
     { 
      while($row1 = mysqli_fetch_assoc($r))
       { 
         if($row["member_no"] = $row1[ " member_no"])
          {
           //some code to display something 
        } // inner if
       } // inner while
      } // outer while
     } // outer if
    } // outermost if

【问题讨论】:

  • 为什么不试试子查询或者加入查询呢??
  • 因为我已经使用 join 创建了一个视图。那是我的一张桌子(视图)。现在,不可能将该视图与另一个表连接起来,因为这样会给出错误的结果。

标签: php mysql if-statement while-loop row


【解决方案1】:

您也可以使用不同的方法。如下所示:

$array1 = array('1','2','3');
$array2 = array('4','5','3');

foreach($array1 as $index=>$val)
{
    if($val == $array2[$index])
    {
    // go on
    }
}

你可以试试这样的:

foreach($result as $index=>$val)
{
    if($val->member_no == $r[$index]->member_no)
    {
    // go on
    }
}

【讨论】:

  • emmm 是的,我也在考虑这个,但后来卡住了,因为那时我需要一个动态数组,以便我可以从一个表中获取值并将其填充到一个数组中。那么,你能告诉我我该怎么做才能得到那个吗?
  • 对不起,我对这一切有点陌生。你能告诉我在做什么吗?我了解 $result 与我的问题相同。所以,我知道用什么喂它。什么是$index$val。我假设$r 也在做与我的问题相同的工作?请详细说明。
  • 阅读本教程..w3schools.com/php/php_looping_for.asp我认为你对foreach循环不太熟悉
【解决方案2】:

if($row["member_no"] = $row1[" member_no"])

== 而不是= ?


编辑:

比较使用一个while循环,它对你更好吗?它管理不同大小的表格:

if (mysqli_num_rows($r) > 0)
{
    $row_count = mysqli_num_rows($result);
    $row1_count = mysqli_num_rows($r);
    $remaining_rows = min($row_count, $row1_count);

    while($remaining_rows-- > 0)
    {
        $row = mysqli_fetch_assoc($result);
        $row1 = mysqli_fetch_assoc($r);
        if($row["member_no"] == $row1["member_no"])
        {
            //some code to display something 
        }
    }
}

【讨论】:

  • 首先告诉我,是否可以像我一样进行多次提取?
  • 我收到一个错误 Notice: Undefined index: member_no in /home/sdrtracks/bla/bla 指向这一行,即您在上面写的那行。
  • @naggarwal11 删除$row1["member_no"])中的空格
  • 意外地它删除了错误。为此点赞。但它仍然没有解决我的问题。是否可以并行运行两个循环。我的意思既不是嵌套的 one 也不是一系列的 one two 。我希望他们两个同时被执行。我在上面的问题中写的两个 while 循环? @akasummer
  • @naggarwal11 由于 mysqli_fetch_assoc() 接受 mysqli_query 返回值作为我认为的参数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-03
  • 2016-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-06
  • 1970-01-01
相关资源
最近更新 更多