Как показать два результата двух запросов mysql в одной таблице?

Это мой код и результат неверный. Я хочу показать результаты моего первого запроса в первом столбце и результаты второго запроса во 2-м столбце, но оба результата помещаются в один (первый) столбец. Как это можно сделать без изменения запроса?

/*
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>

-1

Решение

Попробуй это:

// Select the data, all together now. The difference is we'll give it a name
$query2="SELECT contacts_a.username as firstTableName,
contacts_b.username as secondTableName
FROM contacts_a
LEFT JOIN contacts_b
ON contacts_a.level = contacts_b.level";

// Execute the Query
$query_run2=mysql_query($query2);

// Loop over our results...
while($query_array1 = mysql_fetch_assoc($query_run1)) {
// We're going to use this again, give it a good name
$firstName = ($query_array1['firstTableName'] == NULL)   ? 'NULL' :
$query_array1['firstTableName'];
$secondName = ($query_array1['secondTableName'] == NULL) ? 'NULL' :
$query_array1['secondTableName'];

// Put out a new table row
echo   '<tr>';
// And our first TD...
echo '<td>' . firstName  .'</td>';
echo '<td>' . secondName .'</td>';
echo   '</tr>';

// End our loop
} // So Long and Thanks for All the Fish!

Некоторые другие мысли: Не используйте MySQL! Вы также можете избавиться от первого запроса сейчас, так как он излишний. Что касается проверок NULL, что произойдет, если данные будут представлены в виде пустой строки? Обычно я проверяю наличие нулевых и пустых кавычек: » или «», чтобы убедиться, что я получаю обратно то, что хочу.

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я на самом деле не пробовал это, и я использую PDO, поэтому мой синтаксис MySQL для возврата и чтения массива MySQL может быть неправильным!

0

Другие решения

$qa1 = mysql_fetch_assoc($query_run1);
$qa2 = mysql_fetch_assoc($query_run2);

do {
echo   '<tr>
<td>'.(current($qa1) == NULL ? 'NULL': current($qa1)).'</td>
<td>'.(current($qa2) == NULL ? 'NULL': current($qa2)).'</td>
</tr>';
} while( next($qa1) || next($qa2) );
-2

По вопросам рекламы [email protected]