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. Nooo - 07 Июня, 2011 - 11:12:59 - перейти к сообщению
Кто может подсказать как сделать следующие...
Делаю сайт с выводом новостей на главную страницу, мне нужно чтобы в одном файле news.php были 2 функции это вывод всех новостей на главную и просмотр полной новости...
Оба скрипта я написал но соединить их в один файл news.php не могу..... может кто помочь?

Скрипт на вывод всех новостей на главную:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. function news() {
  4.  $news = '';
  5.  
  6. if (isset($_GET['cat'])) {$cat = $_GET['cat']; }
  7. if (!isset($cat)) {$cat = 1;}
  8.  
  9. if (!preg_match("|^[\d]+$|", $cat)) {
  10. exit ("<p>Неверный формат запроса! Проверьте URL!");
  11. }
  12.  
  13. $result = mysql_query("SELECT * FROM categories WHERE id='$cat'");
  14.  
  15. if (!$result)
  16. {
  17. echo "<p>Ошибка базы данных. Напишите об этом администратору ".$config['admin_email']."<br> <strong>Код ошибки:</strong></p>";
  18. }
  19.  
  20. if (mysql_num_rows($result) > 0)
  21.  
  22. {
  23. $myrow = mysql_fetch_array($result);
  24.  
  25. }
  26.  
  27. else
  28. {
  29. echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
  30. exit();
  31. }      
  32.                
  33. $result77 = mysql_query("SELECT str FROM options");
  34. $myrow77 = mysql_fetch_array($result77);
  35. $num = $myrow77["str"];
  36. @$page = $_GET['page'];
  37. $result00 = mysql_query("SELECT COUNT(*) FROM data WHERE secret=0 AND cat='$cat'");
  38. $temp = mysql_fetch_array($result00);
  39. $posts = $temp[0];
  40. $total = (($posts - 1) / $num) + 1;
  41. $total =  intval($total);
  42. $page = intval($page);
  43. if(empty($page) or $page < 0) $page = 1;
  44.   if($page > $total) $page = $total;
  45. $start = $page * $num - $num;  
  46.                
  47.                
  48. $result = mysql_query("SELECT id,title,description,date,author,mini_img,view,rating,q_vote FROM data WHERE secret=0 AND cat='$cat' ORDER BY id LIMIT $start, $num");
  49.  
  50. if (!$result)
  51. {
  52. echo "<p>Ошибка базы данных. Напишите об этом администратору ".$config['admin_email']." <br> <strong>Код ошибки:</strong></p>";
  53. }
  54.  
  55. if (mysql_num_rows($result) > 0)
  56.  
  57. {
  58. $myrow = mysql_fetch_array($result);
  59.  
  60. do
  61. {
  62.  
  63. $r = $myrow["rating"]/$myrow["q_vote"];
  64. $r = intval($r);
  65.  
  66.  
  67. $news .= "<table align='center' class='post'>";
  68.          
  69.                 $news .= "<tr>";
  70.         $news .= "<td class='post_title'>";
  71.                 $news .= "<p class='post_name'><img class='mini' align='left' src='".$myrow["mini_img"]."'><a href='index.php?id=".$myrow["id"]."'>".$myrow["title"]."</a></p>";
  72.                 $news .= "<p class='post_adds'>Дата : ".$myrow["date"]."</p>";
  73.                 $news .= "<p class='post_adds'>Автор: ".$myrow['author']."</p></td>";
  74.         $news .= "</tr>";
  75.                 $news .= "<tr>";
  76.         $news .= "<td>".$myrow["description"]." <p class='post_view'>Просмотров: ". $myrow["view"]." &nbsp;&nbsp; Рейтинг: <img src='img/".$r.".gif'></p></td>";
  77.         $news .= "</tr>";
  78.          
  79.                 $news .= "</table><br><br>";
  80.  
  81.  
  82. }
  83. while ($myrow = mysql_fetch_array($result));
  84.  
  85.  
  86. if ($page != 1) $pervpage = '<a href=index.php?cat='.$cat.'&page=1>Первая</a> | <a href=index.php?cat='.$cat.'&page='. ($page - 1) .'>Предыдущая</a> | ';
  87. if ($page != $total) $nextpage = ' | <a href=index.php?cat='.$cat.'&page='. ($page + 1) .'>Следующая</a> | <a href=index.php?cat='.$cat.'&page=' .$total. '>Последняя</a>';
  88.  
  89. if($page - 5 > 0) $page5left = ' <a href=index.php?cat='.$cat.'&page='. ($page - 5) .'>'. ($page - 5) .'</a> | ';
  90. if($page - 4 > 0) $page4left = ' <a href=index.php?cat='.$cat.'&page='. ($page - 4) .'>'. ($page - 4) .'</a> | ';
  91. if($page - 3 > 0) $page3left = ' <a href=index.php?cat='.$cat.'&page='. ($page - 3) .'>'. ($page - 3) .'</a> | ';
  92. if($page - 2 > 0) $page2left = ' <a href=index.php?cat='.$cat.'&page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
  93. if($page - 1 > 0) $page1left = '<a href=index.php?cat='.$cat.'&page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
  94.  
  95. if($page + 5 <= $total) $page5right = ' | <a href=index.php?cat='.$cat.'&page='. ($page + 5) .'>'. ($page + 5) .'</a>';
  96. if($page + 4 <= $total) $page4right = ' | <a href=index.php?cat='.$cat.'&page='. ($page + 4) .'>'. ($page + 4) .'</a>';
  97. if($page + 3 <= $total) $page3right = ' | <a href=index.php?cat='.$cat.'&page='. ($page + 3) .'>'. ($page + 3) .'</a>';
  98. if($page + 2 <= $total) $page2right = ' | <a href=index.php?cat='.$cat.'&page='. ($page + 2) .'>'. ($page + 2) .'</a>';
  99. if($page + 1 <= $total) $page1right = ' | <a href=index.php?cat='.$cat.'&page='. ($page + 1) .'>'. ($page + 1) .'</a>';
  100.  
  101.  
  102. if ($total > 1)
  103. {
  104. Error_Reporting(E_ALL & ~E_NOTICE);
  105. echo "<div class=\"pstrnav\">";
  106. $news .= $pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage;
  107. echo "</div>";
  108. }
  109.  
  110.  
  111.  
  112.  
  113. }
  114.  
  115. return $news;
  116. }
  117. ?>
  118.  
  119.  


Скрипт просмотра отдельной новости:
PHP:
скопировать код в буфер обмена
  1. <?
  2. function view_news(); {
  3. $news = '';
  4. if (isset($_GET['id'])) {$id = $_GET['id']; }
  5. if (!isset($id)) {$id = 1;}
  6.  
  7. if (!preg_match("|^[\d]+$|", $id)) {
  8. exit ("<p>Неверный формат запроса! Проверьте URL!");
  9. }
  10.  
  11. $result = mysql_query("SELECT * FROM data WHERE id='$id'");
  12.  
  13. if (!$result)
  14. {
  15. echo "<p>Ошибка базы данных. Напишите об этом администратору ".$config['admin_email']."<br> <strong>Код ошибки:</strong></p>";
  16. }
  17.  
  18. if (mysql_num_rows($result) > 0)
  19.  
  20. {
  21. $myrow = mysql_fetch_array($result);
  22. $new_view = $myrow["view"] + 1;
  23. $update = mysql_query ("UPDATE data SET view='$new_view' WHERE id='$id'");
  24.  
  25.  
  26. }
  27.  
  28. else
  29. {
  30. echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
  31. exit();
  32. }
  33.  
  34.  
  35. $news .= "<p class='post_title2'>".$myrow["title"]."</p><p class='post_add'>Автор: ".$myrow["author"]."</p><p class='post_add'>Дата: ".$myrow["date"]."</p>".$myrow["text"]."<p class='post_view'>Просмотров: ".$myrow["view"]."</p>";
  36.  
  37. echo "<p class='post_comment'>Комментарии к этой заметке:</p>";
  38.  
  39. $result3 = mysql_query ("SELECT * FROM comments WHERE post='$id'");
  40. if (mysql_num_rows($result3) > 0)
  41. {
  42. $myrow3 = mysql_fetch_array($result3);
  43.  
  44. do
  45. {
  46. $news .= "<div class='post_div'><p class='post_comment_add'>Комментарий добавил(а): <strong>".$myrow3["author"]."</strong> <br> Дата: <strong>".$myrow3["date"]."</strong></p>
  47. <p>".$myrow3["text"]."</p></div>";
  48.  
  49. }
  50. while ($myrow3 = mysql_fetch_array($result3));
  51.  
  52.  
  53. }
  54.  
  55. $result4 = mysql_query ("SELECT img FROM comments_setting");
  56. $myrow4 = mysql_fetch_array($result4);
  57.  
  58. return $news;
  59. }
  60.  
  61. ?>
  62.  
  63. <p class='post_comment'>Добавить Ваш комментарий:</p>
  64. <form action="comment.php" method="post" name="form_com">
  65. <p><label>Ваше имя: </label><input name="author" type="text" size="30" maxlength="30"></p>
  66. <p><label>Текст комментария: <br> <textarea name="text" cols="32" rows="4"></textarea></label></p><p>Введите сумму чисел с картинки<br><img style='margin-top:17px;' src="<? echo $myrow4["img"]; ?>" width="80" height="40">
  67.   <input style='margin-bottom:16px;' name="pr" type="text" size="5" maxlength="5"></p>
  68.   <input name="id" type="hidden" value="<? echo $id; ?>">
  69. <p><input name="sub_com" type="submit" value="Комментировать"></p>
  70.  
  71.  
  72. </form>
  73.  
2. Давит - 07 Июня, 2011 - 13:17:27 - перейти к сообщению
http://www.php.su/functions/?include Закатив глазки
3. Nooo - 07 Июня, 2011 - 13:45:00 - перейти к сообщению
прежде чем писать бред нужно прочитать и вдуматься в суть вопроса! Хм
4. morosit - 07 Июня, 2011 - 14:16:04 - перейти к сообщению
чем же бред то?
5. Nooo - 07 Июня, 2011 - 15:43:50 - перейти к сообщению
тем что есть 2 файла это news.php и view_news.php то есть мне нужно что бы эти 2 функции вывод всех новостей на главную и вывод отдельной новости был в одном файле... если их соединить include то там получится каша! а мне нужно примерно следующее....
Если мы нажмем подробнее то у нас перейдет на полную новость с параметром news.php?id=1 а если не будем нажимать подробнее то он останется на news.php?cat=1(вывод всех новостей из категории 1)
возможно так понятнее????
6. morosit - 07 Июня, 2011 - 15:54:46 - перейти к сообщению
не понятно
эти 2 файла просто функций, на мой взгляд целесообразнее использовать их в третьем файле, куда они подключаются include, и вызываются по мере необходимости?
7. Nooo - 07 Июня, 2011 - 16:11:13 - перейти к сообщению
как бы вот есть индоксовый файл который выводит это так (шаблонизатор)
PHP:
скопировать код в буфер обмена
  1. $tpl->set('{content}', news() );


Если мы перейдем просто на файл http://test1[dot]ru/news.php то страница будет пустая... то есть он открывается только http://test1[dot]ru/index.php дальше если мы просто объединим эти 2 файла в один и он будет иметь вид:

PHP:
скопировать код в буфер обмена
  1. <?
  2. include_once '/etc/data/config.php';
  3.  
  4. echo '<html><head><title>'.$config[site_name].'</title></head></html>';
  5.  
  6.  
  7. function news() {
  8.  $news = '';
  9.  
  10. if (isset($_GET['cat'])) {$cat = $_GET['cat']; }
  11. if (!isset($cat)) {$cat = 1;}
  12.  
  13. if (!preg_match("|^[\d]+$|", $cat)) {
  14. exit ("<p>Неверный формат запроса! Проверьте URL!");
  15. }
  16.  
  17. $result = mysql_query("SELECT * FROM categories WHERE id='$cat'");
  18.  
  19. if (!$result)
  20. {
  21. echo "<p>Ошибка базы данных. Напишите об этом администратору ".$config['admin_email']."<br> <strong>Код ошибки:</strong></p>";
  22. }
  23.  
  24. if (mysql_num_rows($result) > 0)
  25.  
  26. {
  27. $myrow = mysql_fetch_array($result);
  28.  
  29. }
  30.  
  31. else
  32. {
  33. echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
  34. exit();
  35. }      
  36.                
  37. $result77 = mysql_query("SELECT str FROM options");
  38. $myrow77 = mysql_fetch_array($result77);
  39. $num = $myrow77["str"];
  40. @$page = $_GET['page'];
  41. $result00 = mysql_query("SELECT COUNT(*) FROM data WHERE secret=0 AND cat='$cat'");
  42. $temp = mysql_fetch_array($result00);
  43. $posts = $temp[0];
  44. $total = (($posts - 1) / $num) + 1;
  45. $total =  intval($total);
  46. $page = intval($page);
  47. if(empty($page) or $page < 0) $page = 1;
  48.   if($page > $total) $page = $total;
  49. $start = $page * $num - $num;  
  50.                
  51.                
  52. $result = mysql_query("SELECT id,title,description,date,author,mini_img,view,rating,q_vote FROM data WHERE secret=0 AND cat='$cat' ORDER BY id LIMIT $start, $num");
  53.  
  54. if (!$result)
  55. {
  56. echo "<p>Ошибка базы данных. Напишите об этом администратору ".$config['admin_email']." <br> <strong>Код ошибки:</strong></p>";
  57. }
  58.  
  59. if (mysql_num_rows($result) > 0)
  60.  
  61. {
  62. $myrow = mysql_fetch_array($result);
  63.  
  64. do
  65. {
  66.  
  67. $r = $myrow["rating"]/$myrow["q_vote"];
  68. $r = intval($r);
  69.  
  70.  
  71. $news .= "<table align='center' class='post'>";
  72.          
  73.                 $news .= "<tr>";
  74.         $news .= "<td class='post_title'>";
  75.                 $news .= "<p class='post_name'> - <a href='index.php?id=".$myrow["id"]."'>".$myrow["title"]."</a></p>";
  76.                 $news .= "<p class='post_adds'>Автор: ".$myrow['author']." | Дата: ".$myrow["date"]." | Комментарии: </p>";
  77.         $news .= "</tr>";
  78.                 $news .= "<tr>";
  79.         $news .= "<td>".$myrow["description"]." <p class='post_view'>Просмотров: ". $myrow["view"]." &nbsp;&nbsp; Рейтинг: <img src='/templates/default/img/".$r.".gif'></p></td>";
  80.         $news .= "</tr>";
  81.          
  82.                 $news .= "</table><br>";
  83.  
  84.  
  85. }
  86. while ($myrow = mysql_fetch_array($result));
  87.  
  88.  
  89. if ($page != 1) $pervpage = '<a href=index.php?cat='.$cat.'&page=1>Первая</a>  <a href=index.php?cat='.$cat.'&page='. ($page - 1) .'>Предыдущая</a>  ';
  90. if ($page != $total) $nextpage = '  <a href=index.php?cat='.$cat.'&page='. ($page + 1) .'>Следующая</a>  <a href=index.php?cat='.$cat.'&page=' .$total. '>Последняя</a>';
  91.  
  92. if($page - 5 > 0) $page5left = ' <a href=index.php?cat='.$cat.'&page='. ($page - 5) .'>'. ($page - 5) .'</a>  ';
  93. if($page - 4 > 0) $page4left = ' <a href=index.php?cat='.$cat.'&page='. ($page - 4) .'>'. ($page - 4) .'</a>  ';
  94. if($page - 3 > 0) $page3left = ' <a href=index.php?cat='.$cat.'&page='. ($page - 3) .'>'. ($page - 3) .'</a>  ';
  95. if($page - 2 > 0) $page2left = ' <a href=index.php?cat='.$cat.'&page='. ($page - 2) .'>'. ($page - 2) .'</a>  ';
  96. if($page - 1 > 0) $page1left = '<a href=index.php?cat='.$cat.'&page='. ($page - 1) .'>'. ($page - 1) .'</a>  ';
  97.  
  98. if($page + 5 <= $total) $page5right = '  <a href=index.php?cat='.$cat.'&page='. ($page + 5) .'>'. ($page + 5) .'</a>';
  99. if($page + 4 <= $total) $page4right = '  <a href=index.php?cat='.$cat.'&page='. ($page + 4) .'>'. ($page + 4) .'</a>';
  100. if($page + 3 <= $total) $page3right = '  <a href=index.php?cat='.$cat.'&page='. ($page + 3) .'>'. ($page + 3) .'</a>';
  101. if($page + 2 <= $total) $page2right = '  <a href=index.php?cat='.$cat.'&page='. ($page + 2) .'>'. ($page + 2) .'</a>';
  102. if($page + 1 <= $total) $page1right = '  <a href=index.php?cat='.$cat.'&page='. ($page + 1) .'>'. ($page + 1) .'</a>';
  103.  
  104.  
  105. if ($total > 1)
  106. {
  107. Error_Reporting(E_ALL & ~E_NOTICE);
  108.  
  109. $news .= "<div class='pstrnav'>".$pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage."</div>";
  110. }
  111.  
  112.  
  113. }
  114.  
  115. return $news;
  116. }
  117.  
  118. function view_news() {
  119.    
  120.    $news = '';
  121.    
  122.         if (isset($_GET['id'])) {$id = $_GET['id']; }
  123.     if (!isset($id)) {$id = 1;}
  124.      
  125.     if (!preg_match("|^[\d]+$|", $id)) {
  126.     exit ("<p>Неверный формат запроса! Проверьте URL!");
  127.     }
  128.      
  129.     $result = mysql_query("SELECT * FROM data WHERE id='$id'");
  130.      
  131.     if (!$result)
  132.     {
  133.     echo "<p>Ошибка базы данных. Напишите об этом администратору ".$config['admin_email']."<br> <strong>Код ошибки:</strong></p>";
  134.     exit(mysql_error());
  135.     }
  136.      
  137.     if (mysql_num_rows($result) > 0)
  138.      
  139.     {
  140.     $myrow = mysql_fetch_array($result);
  141.     $new_view = $myrow["view"] + 1;
  142.     $update = mysql_query ("UPDATE data SET view='$new_view' WHERE id='$id'");
  143.      
  144.      
  145.     }
  146.      
  147.     else
  148.     {
  149.     echo "<p>Информация по запросу не может быть извлечена в таблице нет записей.</p>";
  150.     exit();
  151.     }
  152.      
  153.      
  154.     $news .= "<p class='post_title2'>".$myrow["title"]."</p><p class='post_add'>Автор: ".$myrow["author"]."</p><p class='post_add'>Дата: ".$myrow["date"]."</p>".$myrow["text"]."<p class='post_view'>Просмотров: ".$myrow["view"]."</p>";
  155.      
  156.     echo "<p class='post_comment'>Комментарии к этой заметке:</p>";
  157.      
  158.     $result3 = mysql_query ("SELECT * FROM comments WHERE post='$id'");
  159.     if (mysql_num_rows($result3) > 0)
  160.     {
  161.     $myrow3 = mysql_fetch_array($result3);
  162.      
  163.     do
  164.     {
  165.     $news .= "<div class='post_div'><p class='post_comment_add'>Комментарий добавил(а): <strong>".$myrow3["author"]."</strong> <br> Дата: <strong>".$myrow3["date"]."</strong></p>
  166.    <p>".$myrow3["text"]."</p></div>";
  167.      
  168.     }
  169.     while ($myrow3 = mysql_fetch_array($result3));
  170.      
  171.      
  172.     }
  173.      
  174.     $result4 = mysql_query ("SELECT img FROM comments_setting");
  175.     $myrow4 = mysql_fetch_array($result4);
  176.      
  177.     return $news;
  178.     }
  179.      ?>
  180.      
  181.  
  182.  
  183.  


Все функции 1го файла сохранятся он будет полноценно работать открывать категории и т.д... но если мы захотим перейти на полную новость к примеру первую её урл равен http://test1[dot]ru/index.php?id=1 то нечего не изменится как выводил все новости так и остался...
8. morosit - 08 Июня, 2011 - 06:46:24 - перейти к сообщению
ни как не пойму в чём сложность.
нужно вам получить дополнительный контент (полную новость) оставаясь на той же странице.
проверяйте передан ли параметр id=1, делаете запрос, выводите новость; не передан выводите 10 заголовков последних новостей, (около 10 строк кода).
9. leon1993 - 09 Июля, 2011 - 21:39:38 - перейти к сообщению
сразу видно что это делалось по видеоурокам ПОПОВА, у многих возникают ошибки после просмотра его уроков

 

Powered by ExBB FM 1.0 RC1