如何在其他表中获得一个包含多个数据的结果

时间:2015-06-24 06:50:42

标签: mysql php

我的问题是这个。

我想将table1放在组合框中,其中一个结果与table2中的数据不同。我希望你能明白我的意思..抱歉...... :)

我的桌子:

enter image description here enter image description here
这是我的编码。

            $table2="SELECT * FROM table2 WHERE tid=".$tid;
            $rtable2=mysqli_query($conn, $table2) or die('Error'.mysqli_error($conn));  
                if(mysqli_num_rows($rtable2)){
                    while($rowtable2=mysqli_fetch_assoc($rtable2)){     

                        $table1="SELECT * FROM table1 WHERE tid= ".$rowtable2['tid'];
                        $rtable1=mysqli_query($conn, $table1) or die('Error'.mysqli_error($conn));

                        // last touch                   
                    }                   
                }
                if(mysqli_num_rows($rtable1)){
                    while($rowtable1=mysqli_fetch_assoc($rtable1)){                                 
                        echo "  
                            <option value='".$rowtable1['tid']."'>".$rowtable1['name']."</option>
                        ";          
                    }                   
                }

输出:

enter image description here

我希望是这样的。

enter image description here

1 个答案:

答案 0 :(得分:0)

在你的第一行:

$table2="SELECT DISTINCT(tid) FROM table2";

但你也可以把它放在一个声明中:

$table="SELECT DISTINCT(table2.tid) as tid, table1.name as name FROM table2 LEFT OUTER JOIN table1 on table1.id=table2.tid";
$rtable=mysqli_query($conn, $table) or die('Error'.mysqli_error($conn));  
if(mysqli_num_rows($rtable)){
  while($rowtable=mysqli_fetch_assoc($rtable)){                                 
    echo "<option value='".$rowtable['tid']."'>".$rowtable['name']."</option>";
  }                   
}