将MySQL数据与另一个表进行比较

时间:2014-03-20 19:38:47

标签: php mysql sql

以下代码回显了tableOne中的8个名称,但我想将这些名称与另一个表中的8个名称进行比较。我想将$row['weight']中回显的行与tableTwo进行比较,如果结果不匹配,则将<span class="strike"> </span>添加到$row['weight']中回显的结果中。

如何添加if / else $row['weight']将每个名称与另一个表中的名称进行比较?

$result = mysqli_query($con,"SELECT * FROM tableOne LIMIT 0, 8");

$i = 1;

while($row = mysqli_fetch_array($result)) {

  echo $i. " - " . $row['weight'] . '<br>';
  $i++;
}

3 个答案:

答案 0 :(得分:1)

以下是一些简单的代码,可以帮助您入门:

$result = mysqli_query($con,"SELECT * FROM tableOne LIMIT 0, 8");
$result2 = mysqli_query($con,"SELECT * FROM tableTwo LIMIT 0, 8");

$i = 1;

while($row = mysqli_fetch_array($result)) {
    $value1 = $row['weight'];
    $row2 = mysqli_fetch_array($result2);
    $value2 = $row2['weight'];
    echo $i . " - table 1: ";
    echo $value1;
    echo ", table 2: - ";
    if ($value2 != $value1) {
        echo '<span class="strike">$value2</span>';
    } else {
        echo $value2;
    }
    echo '<br>';
    $i++;
}

您可以使代码更智能,处理没有要比较的值的情况,并在HTML表格中显示值,但希望这可以帮助您入门。

答案 1 :(得分:1)

试试这个:

    $sql="select * from tableone to left join tabletwo tw on to.weight=tw.weight ";

此查询将返回tableone中匹配的所有行以及权重不匹配的行的空行。

所以在你的PHP代码中:

    while($row = mysqli_fetch_array($result)) {
      if(empty($row['weight'])){
        echo '<span class="strike">$row[weight]</span>';
      }
    }

这适用于表中任何动态数量的记录。

答案 2 :(得分:0)

如何将值($ row [])保存在一个数组($ tableOne)中并对表二($ tableTwo)执行相同的操作然后在foreach()中执行比较? (为简单起见,如果您不想加入任何联接)