【发布时间】:2018-05-30 23:37:38
【问题描述】:
这是我的代码,结果是错误的。我想在第一列中显示我的第一个查询的结果,在第二列中显示第二个查询的结果,但两个结果都在一个(第一)列中。我怎么能在不改变查询的情况下拥有这样的结果?
/*
username username
username_a_1 username_b_1
username_a_1 username_b_4
username_a_2 username_b_1
username_a_2 username_b_4
username_a_3 username_b_5
username_a_4 username_b_2
username_a_4 username_b_3
username_a_5 username_b_1
username_a_5 username_b_4
*/
<html>
<head></head>
<table border="1" >
<tr>
<th>USERNAME</th>
<th>USERNAME</th>
</tr>
<?php
include'db_connect.php';
$query1='SELECT username FROM contacts_a ';
$query_run1=mysql_query($query1);
$query2="SELECT contacts_a.username,contacts_b.username FROM contacts_a LEFT JOIN contacts_b ON contacts_a.level=contacts_b.level";
$query_run2=mysql_query($query2);
while($query_array1=mysql_fetch_assoc($query_run1)){
foreach($query_array1 as $index => $names){
echo '<tr>
<td>'.(($names == NULL )? 'NULL': $names).'</td>
</tr>';
}//end of foreach
}//end of while
while($query_array2=mysql_fetch_assoc($query_run2)){
foreach($query_array2 as $index => $names){
echo '<tr>
<td>'.(($names == NULL )? 'NULL': $names).'</td>
</tr>';
}//end of foreach
}//end of while
?>
</table>
</html>
【问题讨论】:
-
拜托,don't use
mysql_*functions。 它们不再被维护并且是officially deprecated。改为了解prepared statements,并使用PDO 或MySQLi。 This article 将帮助您做出决定。 -
您已经拥有第二个查询所需的所有数据:contacts_a.username 是第一个查询的用户名,contacts_b.username 是第二个查询的用户名。只需循环第二组数据即可打印到您的表格中。
-
... 并在该查询中添加一个
ORDER BY子句,以获取按您指定的顺序返回的行,而不是允许数据库以它想要的任何顺序返回行。跨度>
标签: php mysql html-table