Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Помогите с выводом полного текста новости
Форумы портала PHP.SU » » Работа с СУБД » Помогите с выводом полного текста новости

Страниц (1): [1]
 

1. saimand - 23 Августа, 2011 - 01:07:08 - перейти к сообщению
Всем доброго времени суток!

Есть таблица с полями id, title, kr_opis (краткое описание новости), pol_opis (полное описание новости). Добавление в базу новостей и вывод получилось сделать, а вот как сделать вывод полного описания новости ума не приложу Огорчение Помогите пожалуйста с решением данного вопроса, заранее спасибо!

Вот часть кода отвечающая за вывод новостей (вывод заголовка новости и краткого описания)

CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. function DisplayNews(){
  3. //проверка на наличие новостей в базе
  4. $q=mysql_query("SELECT * FROM news");
  5. $numpages=mysql_num_rows($q);
  6. //если нет новостей
  7. if ($numpages==0) {echo"В данный момент нет новостей";}
  8. //если есть новости, выводим их
  9. else{
  10. $query=mysql_query("SELECT * FROM news ORDER BY id DESC");
  11. while($news=mysql_fetch_array($query)) {
  12. echo "Новость: <strong>".$news['title']."<br>--------<br></strong><p>".$news['kr_opis']."</p><br>******<br><br><br>";
  13. }
  14. ?>
2. LIME - 23 Августа, 2011 - 04:03:01 - перейти к сообщению
передавайте идентификатор полной новости в ссылке "подробнее" или как она у вас там называется
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. function DisplayNews(){
  3. //проверка на наличие новостей в базе
  4. $q=mysql_query("SELECT * FROM news");
  5. $numpages=mysql_num_rows($q);
  6. //если нет новостей
  7. if ($numpages==0) {echo"В данный момент нет новостей";}
  8. //если есть новости, выводим их
  9. else{
  10. $query=mysql_query("SELECT * FROM news ORDER BY id DESC");
  11. while($news=mysql_fetch_array($query)) {
  12. echo "Новость: <strong>".$news['title']."<br>--------<br></strong><p>"
  13. .($_GET['id']!==$news['id'])?$news['kr_opis']."<br/><a href='скрипт вывода.php?id=".$news['id']."'>подробнее</a>":$news['pol_opis'].
  14. "</p><br/>******<br/><br/><br/>";
  15. }
  16. ?>
3. saimand - 23 Августа, 2011 - 13:47:00 - перейти к сообщению
LIME спасибо за помощь, но у меня ругается на строчку (в Вашем коде под номером 13), пишет: Undefined index: id

З.Ы. сильно не пинайте, я только учу php =)
4. Viper - 23 Августа, 2011 - 13:53:02 - перейти к сообщению
saimand cделайте так
PHP:
скопировать код в буфер обмена
  1. $id = isset($_GET['id']) ? $_GET['id'] : null;

и в скрипте сделайте проверку на null. Т.е. в данном случае у вас будет заданно значение по умолчанию, а проверкой вы сможете сообщить юзеру что произошла ошибка и новость с данным id не найдена.
5. saimand - 23 Августа, 2011 - 14:01:57 - перейти к сообщению
Viper спасибо, но не совсем пойму где в скрипте эту проверку сделать...
6. LIME - 23 Августа, 2011 - 15:11:04 - перейти к сообщению
сюда
PHP:
скопировать код в буфер обмена
  1. echo "Новость: <strong>".$news['title']."<br>--------<br></strong><p>"
  2. .($id!==$news['id'])?$news['kr_opis']."<br/><a href='скрипт вывода.php?id=".$news['id']."'>подробнее</a>":$news['pol_opis'].
  3. "</p><br/>******<br/><br/><br/>";
7. saimand - 23 Августа, 2011 - 15:59:09 - перейти к сообщению
LIME,Viper спасибо вам, все работает! тему можно закрывать

Вывожу так:

PHP:
скопировать код в буфер обмена
  1. function GetFullNews(){
  2. $test=$_GET['id'];
  3. $sql="SELECT `poln_opis` FROM `news` WHERE `id`=$test";
  4. $obj = mysql_query($sql);
  5. echo "<b>Титл:</b> ".$test."<br><br>";
  6. while($n=mysql_fetch_array($obj)) {
  7. echo "<b>Полный текст:</b> ".$n['poln_opis'];}
  8. }

 

Powered by ExBB FM 1.0 RC1