Консультация № 55524
15.09.2006, 11:08
0.00 руб.
0 10 3
База данных содержит таблицу новости (news) и в ней следующие поля : news_id,news_date,news_text. Мне нужно выполнить следующую задачу. Из бд вывести список дат на одной странице, но чтоб этот список выглядел в виде ссылок. Кликаешь на одну из них и переходишь на страницу с новостью. То есть если в бд дата "2006-09-15 11:54:13" и новость к ней "Привет Всем", то кликая на эту даты мы будем получать именно эту новость.
Как такое организовать ? помогите пожалуйста... в php не сильна...
в приложении у меня скрипт, который выводит просто все даты на страницу (без ссылок)-это на все что меня хватило....

Приложение:
<?phpinclude ‘config.php‘ ;$db = mysql_pconnect ($dbhost, $dbuser, $dbpass);if (!$db) { echo ‘ошибка‘; exit; }mysql_select_db($dbname); $ath=mysql_query("SELECT * FROM news order by news_date ASC;");if (!$ath) { echo "Bad"; exit (); } else { while ($news=mysql_fetch_array($ath)) { $text=$news[‘news_date‘]; $words=explode(" ", $text); $text = ‘‘; for ($i=0; $i<10000; $i++) $text.=$words[$i].‘ ‘; $news_date=stripslashes($news_date); echo $text."
"; } }?>

Обсуждение

Неизвестный
15.09.2006, 11:25
общий
это ответ
Здравствуйте, MadeInUSSR!

Храни в базе вместе с датой и новостью ссылку на эту новость или ID какой-нибудь, чтобы можно было Select‘ом выбрать сразу и дату и новость и ссылку на новость.
Неизвестный
15.09.2006, 11:29
общий
ну вот ID у них один и тот же, но как это все устроить?
Неизвестный
15.09.2006, 11:35
общий
это ответ
Здравствуйте, MadeInUSSR!
Возникает следующий вопрос. Как формируется страница с новость? Я бы сделал так:

$text = "<a href=new.php?news_id=" . $news[‘news_id‘] . ">" . $text . "</a>";

В этом коде мы передаем формирующей странице номер необходимой новости. Страниуа делает запрос и выводит саму новость. Если необходимо открывать страницу в новом окне поместите target=_blank между а и href.
Неизвестный
15.09.2006, 11:35
общий
это ответ
Здравствуйте, MadeInUSSR!
Попробуйте вот так (если что не понятно или не работает, то говорите на мини-форум):

$query = mysql_query(‘select `new_date` from `news`‘);
$result = mysql_result($query);
$array = mysql_fetch_array($result);
$num = mysql_num_rows($result);
// Теперь строим список

for ($q = 0; $q <= $num; $q++)
{echo ‘<a href="new.php?new=‘ . $q . ‘>"‘ . $array[news_date] . ‘   ‘ . $array[news_text] . ‘</a>‘;}; // Тут не совсем понятно, что храниться в "news_text". Я так понимаю, что заголовок.

// Пусть текст новости храниться в текстовых файлах, пронумерованных от 0 до скольки-то-там
// Вывели все даты и заголовки. Теперь на странице new.php пишем:

require(‘[путь_к_файлу_где_содержиться_новость]‘ . $HTTP_GET_VARS[new] . ‘.txt‘);
Неизвестный
15.09.2006, 11:36
общий
Как это ID общий, я не понимаю.
Неизвестный
15.09.2006, 11:57
общий
<b>to SPEKTR</b> в news_text у меня хранится сама новость, заголовка нету, вместо него использую дату новости news_date<b>to Козлов Алексей Сергеевич</b>может я не правильно понимаю, но я имела ввиду что, к примеру, у даты 25 января и новости "Все будет супер" общий ID 5 ... вроде так... и еще вот скрипт который генерирует все ссылки с датами show_all_news.php , то есть кликая на дату мы переходим на страницу new.php с соответствующим айди... а как там показать новость? что надо прописать в new.php, чтоб новость была показана...
Неизвестный
15.09.2006, 12:07
общий
В new.php пишем следующее:$news_id = $_REQUEST[‘news_id‘];$query = "SELECT news_text FROM news WHERE news_id = $news_id;";$result = mysql_query($result);$text = mysql_fetch_array($result);echo $text;HTML обвязку добавишь сама.
Неизвестный
15.09.2006, 12:19
общий
Выдает такую ошибку Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\appserv\www\sites\test\new.php on line 12в целом скрипт выглядит так <?phpinclude ‘config.php‘ ;$db = mysql_pconnect ($dbhost, $dbuser, $dbpass);if (!$db) { echo ‘Îøèáêà‘; exit; }$news_id = $_REQUEST[‘news_id‘];$query = "SELECT news_text FROM news WHERE news_id = $news_id;";$result = mysql_query($result);$text = mysql_fetch_array($result);echo $text;?>где 12 строка это $text = mysql_fetch_array($result);
Неизвестный
15.09.2006, 12:36
общий
<?phpinclude ‘config.php‘ ;$db = mysql_pconnect ($dbhost, $dbuser, $dbpass);if (!$db) { echo ‘Îøèáêà‘; exit; }$news_id = $_REQUEST[‘news_id‘];mysql_select_db($dbname);$ath=mysql_query("SELECT news_text FROM news WHERE news_id = $news_id;");$news=mysql_fetch_array($ath);$text=$news[‘news_text‘];echo $text;?>разобралась . все работает. спасибо!SELECT news_text FROM news WHERE news_id = $news_id; вот это мне и нужно было :)
Неизвестный
15.09.2006, 12:41
общий
Извини, это я очепятался, вместо$result = mysql_query($result);должно быть$result = mysql_query($query);
Форма ответа