<!--Выводим статьи по дате из таблицы № 1-->
<?php
$result1 = mysql_query("SELECT * FROM tabl1 ORDER by date" , $bd);
printf ("<a href='view_post.php?id=%s'><p>%s</p><br><p>%s< ;/p></a>
", $myrow1["id"], $myrow1["title"], $myrow1["desc"]);
?>
<!--Выводим статьи по дате из таблицы № 2-->
<?php
$result2 = mysql_query("SELECT * FROM tabl2 ORDER by date" , $bd);
printf ("<a href='view_post_ege.php?id=%s'><p>%s</p><br><p>% s</p></a>
", $myrow2["id"], $myrow2["title"], $myrow2["desc"]);
?>
Вопрос: Как объединить вывод из двух таблиц по дате? Как вы видите в вышеприведенном коде сначала выводятся статья из таблицы и только потом по дате...
Структура таблицы одинакова, кроме полей (INT) - t1 и t2, которые сортируют ЕГЭ и Рубрики.
Спустя 13 минут, 9 секунд (1.11.2010 - 14:26) SlavaFr написал(а):
смотри в SQL "UNION"
Спустя 18 минут, 53 секунды (1.11.2010 - 14:44) linker написал(а):
(SELECT * FROM `tabl1`)
UNION
(SELECT * FROM `tabl2`)
ORDER BY `date` DESC
Спустя 20 минут, 53 секунды (1.11.2010 - 15:05) franko написал(а):
а как реализовать вывод?
для 1-й табл. <a href='view_post.php?id=%s'></a>
для 2-й табл. <a href='view_post_ ege.php?id=%s'></a>
были бы они одинаковые, но отличие view_post.php и view_post_ege.php
для 1-й табл. <a href='view_post.php?id=%s'></a>
для 2-й табл. <a href='view_post_ ege.php?id=%s'></a>
были бы они одинаковые, но отличие view_post.php и view_post_ege.php
Спустя 6 минут, 11 секунд (1.11.2010 - 15:11) linker написал(а):
Сливай все в одну таблицу и добавляй новое поле, аля тип записи (1 - ЕГЭ, 2 - Рубрики). Тогда выбираешь все из одной таблицы и просто чекаешь данное поле, если значение 1, то выводить одну ссылку, если значение 2, то другую. Да, есть еще один вариант
(SELECT *, 'view_post.php' AS `script` FROM `tabl1`)
UNION
(SELECT *, 'view_post_ege.php' AS `script` FROM `tabl2`)
ORDER BY `date` DESC
$Res = mysql_query(...);
while($Row = mysql_fetch_assoc($Res))
{
printf ("<a href='%s?id=%s'><p>%s</p><br><p>% s</p></a>", $Row['script'], $Row["id"], $Row["title"], $Row["desc"]);
}
Спустя 1 час, 9 минут, 3 секунды (1.11.2010 - 16:21) franko написал(а):
Цитата |
Сливай все в одну таблицу и добавляй новое поле, аля тип записи (1 - ЕГЭ, 2 - Рубрики). Тогда выбираешь все из одной таблицы и просто чекаешь данное поле, если значение 1, то выводить одну ссылку, если значение 2, то другую. |
Этот вариант более подходит. как это сделать практически?
Спустя 3 часа, 44 минуты, 55 секунд (1.11.2010 - 20:05) SlavaFr написал(а):
(SELECT ........, 'tabl1' as ot FROM `tabl1`)
UNION
(SELECT ......, 'tabl2' as ot FROM `tabl2`)
ORDER BY `date` DESC
при выводе проверяеш значение ot и взависемости от результата вызываеш
view_post.php или view_post_ege.php
Спустя 11 минут, 53 секунды (1.11.2010 - 20:17) SerginhoLD написал(а):
мне не нравится дизайн *я люблю твороженные булочки*, и я вижу сходство с сайтами Попова.
UPDATE by inpost: привёл в культурный вид
UPDATE by inpost: привёл в культурный вид
Спустя 2 часа, 12 минут, 46 секунд (1.11.2010 - 22:30) sergeiss написал(а):
Цитата (SerginhoLD @ 1.11.2010 - 21:17) |
мне от такого дизайна сайта уже блевать хочется, |
Ну сходи на недельку в бан, может быть пройдёт за это время...
![wink.gif](http://phpforum.ru/html/emoticons/wink.gif)
Спустя 11 часов, 23 секунды (2.11.2010 - 09:30) linker написал(а):
franko
Ну если тебе понравился вариант с дополнительным полем, то в каждую табличку добавь по новому полю, например, `mode`. В первой таблице поставь по-умолчанию значение 0, а во второй значение 1.
Ну если тебе понравился вариант с дополнительным полем, то в каждую табличку добавь по новому полю, например, `mode`. В первой таблице поставь по-умолчанию значение 0, а во второй значение 1.
(SELECT * FROM `tabl1`)
UNION
(SELECT * AS `script` FROM `tabl2`)
ORDER BY `date` DESC
$Res = mysql_query(...);Но лично мне второй вариант более нравится.
while($Row = mysql_fetch_assoc($Res))
{
(!$Row['mode'])
? printf ("<a href='view_post.php?id=%s'><p>%s</p><br><p>% s</p></a>", $Row["id"], $Row["title"], $Row["desc"]);
: printf ("<a href='view_post_ege.php?id=%s'><p>%s</p><br><p>% s</p></a>", $Row["id"], $Row["title"], $Row["desc"]);
}
Спустя 8 часов, 36 минут, 52 секунды (2.11.2010 - 18:07) franko написал(а):
При применении
<?php
$Res = mysql_query("SELECT * FROM tabl1 UNION SELECT * AS script FROM tabl2 ORDER BY date DESC", $db);
while($Row = mysql_fetch_assoc($Res))
{
(!$Row['mode']);
printf ("<a href='view_post.php?id=%s'><p>%s</p><br><p>% s</p></a>", $Row["id"], $Row["title"], $Row["desc"]);
printf ("<a href='view_post_ege.php?id=%s'><p>%s</p><br><p>% s</p></a>", $Row["id"], $Row["title"], $Row["desc"]);
}
?>
выдается ошибка:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in Y:\home\localhost\www\franko\index.php on line 130
<?php
$Res = mysql_query("SELECT * FROM tabl1 UNION SELECT * AS script FROM tabl2 ORDER BY date DESC", $db);
while($Row = mysql_fetch_assoc($Res))
{
(!$Row['mode']);
printf ("<a href='view_post.php?id=%s'><p>%s</p><br><p>% s</p></a>", $Row["id"], $Row["title"], $Row["desc"]);
printf ("<a href='view_post_ege.php?id=%s'><p>%s</p><br><p>% s</p></a>", $Row["id"], $Row["title"], $Row["desc"]);
}
?>
выдается ошибка:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in Y:\home\localhost\www\franko\index.php on line 130
Спустя 8 минут, 15 секунд (2.11.2010 - 18:16) SlavaFr написал(а):
$Res = mysql_query("SELECT *, 0 as mode FROM tabl1 UNION SELECT * , 1 as mode FROM tabl2 ORDER BY date DESC") or die(mysql_error());
while($Row = mysql_fetch_assoc($Res))
{
if(!$Row['mode']){
printf ("<a href='view_post.php?id=%s'><p>%s</p><br><p>% s</p></a>", $Row["id"], $Row["title"], $Row["desc"]);
}
else{ printf ("<a href='view_post_ege.php?id=%s'><p>%s</p><br><p>% s</p></a>", $Row["id"], $Row["title"], $Row["desc"]);
}
}
Спустя 1 час, 12 минут, 15 секунд (2.11.2010 - 19:28) franko написал(а):
Ошибка:
The used SELECT statements have a different number of columns
The used SELECT statements have a different number of columns
Спустя 44 минуты, 58 секунд (2.11.2010 - 20:13) linker написал(а):
Во-первых, в данном случае каждый SELECT нужно в скобки заключать. Во-вторых, ошибка из разного количества выбираемых полей.
Спустя 23 минуты, 43 секунды (2.11.2010 - 20:37) SlavaFr написал(а):
по этому я в моем примере ........ написал, имея в виду, что надо поля перечислять и причем так, чтоб их количиство и имена по крайней мере посредством алиаса были одинаковы.
Спустя 2 дня, 20 часов, 55 минут, 35 секунд (5.11.2010 - 17:32) franko написал(а):
Спасибо.
Спустя 1 год, 2 месяца, 12 дней, 21 час, 1 минута, 28 секунд (18.01.2012 - 13:34) phoebe написал(а):
<?php
$result2 = mysql_query ("SELECT id,text,categor,date,cover,view,downloads, 0 as mode FROM `dvdcd`) UNION
(SELECT id,text,categor,date,cover,view,downloads, 1 as mode FROM `my_cover` ORDER BY date DESC LIMIT 10",$db);
while($myrow2 = mysql_fetch_assoc($result2))
{
if(!$myrow2['mode']){
printf ("<div id='container2'>
<div id='foto' class='cover'>%s</div>
<div id='info' class='info'>
<p class='index_name'><a href='view_cover.php?id=%s'>%s</a></p>
<p class='index_adds'>Категория: %s</p>
<p class='index_adds'>Дата добавления: %s</p>
<p class='index_adds'>Просмотров: %s</p>
<p class='index_adds2'> %s</p></div>
</div><br><br>",$myrow2["cover"],$myrow2["id"],$myrow2["text"],$myrow2["categor"],$myrow2["date"],$myrow2["view"],$myrow2["downloads"]);
}
else{ printf ("<div id='container2'>
<div id='foto' class='cover'>%s</div>
<div id='info' class='info'>
<p class='index_name'><a href='view_downloads.php?id=%s'>%s</a></p>
<p class='index_adds'>Категория: %s</p>
<p class='index_adds'>Дата добавления: %s</p>
<p class='index_adds'>Просмотров: %s</p>
<p class='index_adds2'>%s</p></div>
</div><br><br>", $myrow2["cover"],$myrow2["id"],$myrow2["text"],$myrow2["categor"],$myrow2["date"],$myrow2["view"],$myrow2["downloads"]);
}
}
?>
Подскажите пожалуйста где у меня ошибка, а то у меня на страницу ничего не выводиться, но и ошибку не показывает. в 2 таблицах создала дополнительные поля с значением 0 и 1.
Спустя 1 час, 24 минуты, 56 секунд (18.01.2012 - 14:58) inpost написал(а):
Трупокопатель! Открывая тему ТС все будут отвечать именно ТС, а не левым вопросам, которые к тебе не относятся.