Sutar
BANNED | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Здравствуйте Тема пойдет про комментарии к новостям сайта сегодня решил перенаписать 1 скрипт, и я увидел как можно сделать "красиво" и "просто" Раньше у меня на странице новостей было так: 1. Подсчитываем кол. ком. к новосте. (в шапке) 2. После новостей мы выводим комментарии (новое соединение). 3. К каждому комментарию выводим иму и аватарку автора (ещё одно соединение). и так через while Но я решил сделать так: 1. Получаем ВСЕ комментарии и вносим их в массив, так-же суммируем 1 из массив. (в шапке) 2. После новости делаем for() и выводим всю информацию с массивов. 3. Получаем аватарку и имя пользователя (если ещё не получили) и записываем данные в массив. Скажите, мой 2 (упрощенный вариант с массивами) будет более выгодней использоваться (в смысле меньше соединений и т.д.) Когда я сделал такой код, у меня получилась ошибка Код: Notice: Trying to get property of non-object in D:\***\news.php on line 128 Notice: Trying to get property of non-object in D:\***\news.php on line 129 | сам код: Шапка Код: $comments = 0; array($array_comments); $con = mysql_query("SELECT `i`, `d`, `a`, `t` FROM `comm` WHERE `s` = '$_GET[id]' ORDER BY `id`"); while($comm = mysql_fetch_object($con)) { $array_comments[$comments][0] = $comm->i; $array_comments[$comments][1] = $comm->d; $array_comments[$comments][2] = $comm->a; $array_comments[$comments][3] = $comm->t; $array_comments[$comments][4] = 0; $array_comments[$comments][5] = ""; $array_comments[$comments][6] = ""; $comments++; } | При выводе Код: <?php if($comments) { for($i = 0; $i < $comments; $i++) { if($array_comments[$i][4] == 0) { $con = mysql_query("SELECT `l`, `a` FROM `user` WHERE `i` = '". $array_comments[$i][0] ."' LIMIT 1"); $u = mysql_fetch_object($con); $array_comments[$i][4] = 1; $array_comments[$i][5] = $u->l; $array_comments[$i][6] = $u->a; } (тут мы выводим комментарий с HTML) } }?> | f($array_comments[$i][4] == 0) - чтоб не дублировать запросы к mysql т.е. мы проверяем по id если не было запроса делаем и записываем в массив строки с ошибками я выделил | Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 19:22 24-08-2013 | Исправлено: Sutar, 19:35 24-08-2013 |
|