Вывод двух таблиц из MySQL..

Статус
В этой теме нельзя размещать новые ответы.

serjinio

Гуру форума
Регистрация
10 Май 2007
Сообщения
439
Реакции
50
Вопрос для спецов .. в БД есть две таблицы
$res1 = mysql_query("SELECT t,a,b,c FROM tab1",$db);
$myrow = mysql_fetch_array($res);

$res2 = mysql_query("SELECT title,e,k,s FROM tab2",$db);
$myrow = mysql_fetch_array($res2);

как их одновременно вывести ,например, в НТML таблицу типо...

printf ("<table >..%s..%s.... </table>",$myrow["t"],

$myrow["a"],$myrow["b"],$myrow["e"], $myrow["c"], $myrow["c"], $myrow["k"],$myrow["title"], $myrow["s"]);
т.е. вперемешку из обеих таблиц...какой самый простой способ..Заранее спасибо...
 
Ну, например, выводишь строчку из первой, потом строчку из второй, либо например, столбец из первой, потом столбец из второй, тут никакого простого способа быть не может, все равны :)
 
Можно вернуть значения из базы в два массива, потом объеденить и перемешать. Либо сразу писать в один массив. Затем foreach'ем вывести.
 
Какой вопрос такие и советы.
Автор - как связаны между собой эти две таблицы? (по каким критериям идет сопоставление строк в таблицах?)
А сформировать один массив для вывода в таблице тебе поможет синтаксис запросов к майскьюэль - INNER JOIN (идем в гугл вводим - MYSQL JOIN синтаксис - читаем полученные статьи:(
пример.
таблица 1 `table1` (поля:(
id text id_table2
таблица 2 `table2` (поля:(
id text id_table1
Нам нужно сформировать массив значений из обоих таблиц:
запрос:
PHP:
$q = 'SELECT `table1`.`id` AS `tid1`,`table2`.`id` AS `tid2`,`table1`.`text` AS `ttext1`,`table2`.`text` AS `ttext2` FROM `table1` INNER JOIN `table2` ON `table1`.`id` = `table2`.`id_table1`';
$r = mysql_query($q);
if($r&&mysql_numrows($r)>0){
 $a = array();
 echo('<table>');
 while($a = mysql_fetch_row($r)){
        echo('<tr>
                 <td>'.$a[0].'</td>
                 <td>'.$a[1].'</td>
                 <td>'.$a[2].'</td>
                 <td>'.$a[3].'</td>
        </tr>') 
 }
 echo('</table>');
 unset($r,$a,$q);
}
это простейший пример - контролем выводимых данных в таблицу и целостностью хтмл думаю сам озаботишься. Но, вот только, и об этом не забудь.
 
простейший способ - это запрос вида "SELECT * FROM table1, table2" и его производные, без всяких JOIN.
 
Из того, что есть - JOIN имхо самый нормальный вариант...
простейший способ - это запрос вида "SELECT * FROM table1, table2"
Насколько мне помнится в случае совпадения имен столбцов - пошлют далеко и надолго. Да и смысл? Проще от этого не станет.
 
Насколько мне помнится в случае совпадения имен столбцов - пошлют далеко и надолго.
не пошлют - в выборке будет присутствовать последний элемент.
к тому же, никто не запрещает нормально проектировать БД и использовать синонимы.

к стати, не совсем понятно чем в таком случае поможет JOIN.

Смысл - не усложнять жизнь там где этого не надо.

Проще от этого не станет.
кому как.
 
Объясните на пальцах, что такое ,и где применять LEFT JOIN и RIGHT JOIN
 
$res1 = mysql_query("SELECT t1.t,t1.a,t1.b,t1.c,t2.title,t2.e,t2.k,t2.s FROM tab1 t1, tab2 t2",$db);
$myrow = mysql_fetch_array($res);
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху