PHP mysql检查多个表中的变量

时间:2013-09-11 09:37:31

标签: php mysql

我的数据库中有3个表

+----+--------+  +----+--------+  +----+--------+
+ id +  name  +  + id +  name  +  + id +  name  +
+----+--------+  +----+--------+  +----+--------+
+ 12 + banana +  + 2  + mario  +  + 1  + apple  +
+ 5  + apple  +  + 5  + luigi  +  + 2  + banana +
+ 7  + luigi  +  + 99 + apple  +  + 3  + input  +
+----+--------+  + 14 + input  +  + 4  + luigi  +
                 +----+--------+  + 5  + mario  +
                                  +----+--------+

第3张表是从第1张和第2张创建的。 在我的HTML文件中,有一个表格可以从表格3中获取所有“名称” 在第一列中有所有table3.name,在第二,第三列我需要像这样检查:

+--------+------+------+
+ name   + tab1 + tab2 +
+--------+------+------+
+ apple  +   V  +   V  +
+ banana +   V  +   X  +
+ input  +   X  +   V  +
+ luigi  +   V  +   V  +
+ mario  +   X  +   V  +
+--------+------+------+

我在html文件中创建了表的整个结构,但我无法进行“检查”。

$result = $data->query("SELECT * FROM `table3` ORDER BY `table3`.`name` ASC  ");
while($line = mysql_fetch_array($result))
{       
    echo '<tr><td>'.$line['name'].'</td>';

    echo '<td></td>';
    echo '<td></td>';
    echo '<td></td>';
    echo '<td></td>';
    echo '<td></td>';
    echo '<td></td></tr>';
    }     
echo "</table>";

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

以下是它的工作原理:

查询:

SELECT t3.name,t2.id t2_id,t1.id t1_id
FROM table3 t3
LEFT JOIN table2 t2 ON t2.name=t3.name
LEFT JOIN table1 t1 ON t1.name=t3.name

在代码中:

if(!empty($line['t2_id'])) {
  echo 'tick'; 
} else {
  echo 'cross'; 
}

对表1的蜱和十字架做同样的事情。