Jump to content
  • 0

вывод из mysql


Джин
 Share

Question

хочу сделать примерно как тут http://www.nochka.ru/afisha/concerts/

т.е. кратко выводятся события, при нажатии на каждое можно узнать подробней, при нажатии на Место (к примеру Филармония) можно узнать подробней о месте проведения мероприятия.

предполагаю что надо сделать 2 базы.

CREATE TABLE `afisha` (
`id` INT( 4 ) NOT NULL AUTO_INCREMENT ,
`event` VARCHAR( 255 ) NOT NULL ,
`place` INT( 2 ) NOT NULL ,
PRIMARY KEY ( `id` )
);

CREATE TABLE `dir` (
`id` INT( 2 ) NOT NULL AUTO_INCREMENT ,
`name` VARCHAR( 255 ) NOT NULL ,
PRIMARY KEY ( `id` )
);

в таблице afisha в поле place записывается число, это идентификатор из таблицы dir.

я вот так это реализовал

<?
$zap1 = mysql_query("select * from afisha ORDER BY id DESC LIMIT 0,9;");
if ($zap1)
{
while($status = mysql_fetch_array($zap1))
{
$zap2 = mysql_query("select * from dir where id=".$status['place'].";");
if ($zap2) {
$directory = mysql_fetch_array($cat);
echo $status['event'];
echo $directory['name'];
}

}
}
else
{
echo "<p><b>Error: ".mysql_error()."</b><p>";
exit();
}
?>

P.S. код урезаный ;) но смысл тот же

все работает. но что то мне подсказывает что есть более простой способ реализации моей задачи

Link to comment
Share on other sites

22 answers to this question

Recommended Posts

  • 0

как заменить завтрашнюю дату на "Завтра"?

$today = date("Y-m-d");

$query = mysql_query("SELECT *, date_format(date,'%d.%c.%Y') as date FROM `afisha` LEFT JOIN `place_tab` ON afisha.place = place_tab.id WHERE afisha.date > '".$today."' ORDER BY afisha.date");
if ($query)
{
while($result = mysql_fetch_array($query))
{
echo [b]$result['date'];[/b]
}
}

для удобства код сократил.

выводит что то вроде

07.10.2008
09.10.2008
16.10.2008

а надо:

Завтра
09.10.2008
16.10.2008

и вообще, стоит ли такой фигней страдать?))

Edited by Джин
Link to comment
Share on other sites

  • 0

вот как я сделал

$zav_chislo = date("j")+1;
if (date("d") == date("j")) $zav_chislo = "0".$zav_chislo;
$zav_data = $zav_chislo.date(".m.Y");

SELECT *, date_format(date,'%d.%c.%Y') as date FROM afisha

<? if ($result['date'] == $zav_data) { echo "Завтра"; } else { echo $result['date']; } ?>

вообще мне моя реализация этого не очень нравится, может еще есть предложения?

Edited by Джин
Link to comment
Share on other sites

  • 0

неа не работает.... исправить код не могу, так как почти ничего не понял из этой строчки :D

SELECT afisha.*, place_tab.id as place_tab_id, place_tab.name, IF(DATE_ADD(DATE_FORMAT(NOW(),'%d.%c.%Y'), INTERVAL 1 DAY)=date_format(date,'%d.%c.%Y'),'Завтра',date_format(date,'%d.%c.%Y')) as date FROM `afisha` LEFT JOIN `place_tab` ON afisha.place = place_tab.id WHERE afisha.date > '".$today."' ORDER BY afisha.date

немаленький такой запрос получается :)

Link to comment
Share on other sites

  • 0
А вообще запрос маленький, ты видел мой mysql_evil_query?

О_О щас увидел)) жесть)))

это, я поправил кстати - посмотри чуть по-другому сделал - правильнее.

кажется оно работает О.о)) благодарю :) щас буду разбираться как работает.

а как вообще лучше? на пхп примерно как я сделал или правильней все в один запрос пихать?)

Edited by Джин
Link to comment
Share on other sites

  • 0

на самом деле на вкус и цвет как говорится. я лично делаю через mysql потому что равномерно стараюсь нагрузку своей cms распределить. На php там хватает всего...

Link to comment
Share on other sites

  • 0

Естественно, нужно максимально использовать возможности SQL для формирования "удобных" данных.

Иван, хотелось бы и мне взглянуть на твой запрос, если не против. Интересно стало :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy