Вопрос № 115448: День добрый.
Подскажите хорошие книги/сайты/статьи/исходники по javascript и ajax.
Желательно НЕ для начинающих, но с большим числом примеров.
заранее спасибо...Вопрос № 115496: Здравствуйте эксперты.
Не могу найти на свой простой (как мне кажется) вопрос – простой ответ.
Пишется скрипт простой ленты новостей, в качестве базы данных используется MySQL.
Есть две таблицы, одна содержит непосредственно сами нов...Вопрос № 115499: Здравствуйте. У меня вопрос по разбиению картинок на страницы. Я уже день мучаюсь с циклом for, но все равно не получается... Помогите, пожалуйста! Мне нужно, чтобы на одной странице было не более $onpage картинок... Никак не получается!
Бол...
Вопрос № 115.448
День добрый.
Подскажите хорошие книги/сайты/статьи/исходники по javascript и ajax.
Желательно НЕ для начинающих, но с большим числом примеров.
заранее спасибо
Отправлен: 22.12.2007, 20:52
Вопрос задал: Apecs (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Емельянов Данил Юрьевич
Здравствуйте, Apecs!
http://www.internet-technologies.ru/books/book_194.html - книга "Ajax в действии".
Если вы свободно владеете Английским языком, то http://www.internet-technologies.ru/books/book_193.html - "Ajax and PHP"
--------- Жить хорошо, а хорошо жить еще лучше!
Ответ отправил: Емельянов Данил Юрьевич (статус: 4-ый класс)
Ответ отправлен: 22.12.2007, 21:49 Оценка за ответ: 5
Отвечает: M@gi$†e®
Здравствуйте, Apecs!
Книга: Бретт Маклаффин. Изучаем Ajax - СПб.: Питер, 2008. - 44. с.: ил.
ISBN 978-5-91180-322-3
Ответ отправил: M@gi$†e® (статус: 7-ой класс)
Ответ отправлен: 23.12.2007, 19:22 Оценка за ответ: 5
Вопрос № 115.496
Здравствуйте эксперты.
Не могу найти на свой простой (как мне кажется) вопрос – простой ответ.
Пишется скрипт простой ленты новостей, в качестве базы данных используется MySQL.
Есть две таблицы, одна содержит непосредственно сами новости, вторая комментарии к ней.
Проблема такая.
На главной странице index.php выводятся список всех новостей, точней заголовок, дата, короткая новость, автор новости и количество комментариев к ней.
Так вот как подсчитать количество комментариев?! По незнанию раньше делал при выводе ленты новостей в цикле while{} запрос на количество комментариев к новости, но перестал, так как вычитал что сильно нагружает сервер. В данный момент храню количество камментов в отдельной ячейки.
Какие способы есть еще?!
И еще если позволите два вопросика которые мучают!
1. Как вывести последнюю добавленную новость? Пока использую в запросе LIMIT 0,1 отсортированные по дате. Правильно или есть варианты?!
2. Какой linux можно оптимально использовать для веб сервера в локальной сети?! suSE, ASPlinux, Slackwere, Red hat. Под веб сервер видил и слышал о них но какой лучше не пойму пока (В мире linux новичок, как и в web разработке)
Спасибо за терпение…!
Отправлен: 23.12.2007, 07:01
Вопрос задал: Clever0k (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Товарищ Бородин
Здравствуйте, Clever0k!
Проблема решается просто, если оптимально организована структура таблиц для хранения новостей и комментов. А оптимально, на мой взгляд, - это в таблице новостей следующие столбцы: номер новости(первичный ключ таблицы), заголовок, дата выхода, текст и любые другие параметры на Ваше усмотрение. Во второй таблице - таблице комментариев - необходим номер комментария(первичный ключ таблицы), номер новости для привязки комментария, имя автора, текст и дата. А также любые другие необходимые в Вашем случае параметры.
Такая структура дает возможность поиска последнего комментария, сортировки по дате, подсчета комментариев - как общего числа, так и для каждой конкретной публикации, а также все комментарии для конкретного пользователя, - словом, комментарии можно будет искать по любому из полей таблицы комментариев. Чем их больше, тем больше возможностей для поиска.
Количество комментариев подсчитывается с помощью такого запроса:
SELECT COUNT(`comment_id`) FROM `comments` WHERE `news_id` = '$news_id' ORDER BY `comment_date` DESC;
Количество комментов хранить нигде не надо. Его надо подсчитывать в базе, и все. Что если Вы вызовете в своей программе какой-нибудь сбой, и данные о количестве комментов не успеют обновиться или обновятся как-нибудь неправильно(ведь Вы запросто можете сделать в программе ошибку какую-нибудь, от них никто не застрахован)? Поэтому-то лучше подсчитывать комменты "на месте", на лету...
Ответы на вопросы.
1. Последнюю новость можно вывести, например, выбрав одну-единственную новость по дате в порядке убывания. Вид запроса:
SELECT * FROM news ORDER BY `date` DESC LIMIT 1;
2. На второй ответ я Вам ответить не смогу, думаю, что это небольшая проблема. Линуксоид всяких-разных много... Извините, что не смогу помочь в этом.
С уважением, Бородин Александр
--------- Ничто не сближает людей так, как совместное преступление.
Ответ отправил: Товарищ Бородин (статус: Практикант)
Ответ отправлен: 23.12.2007, 12:09 Оценка за ответ: 5 Комментарий оценки: Спасибо, немножко не то что хотел услышать по первой половине вопроса, но благодаря вашему ответу знаю где рыть дальше...
Отвечает: Устинов С.Е.
Здравствуйте, Clever0k!
Для выбора новостей сразу вместе с комментариями можно воспользоваться запросом "SELECT `news`.`id`, `news`.`text`, (SELECT COUNT(`comments`.`id`) FROM `comments` WHERE `comments`.`news_id`=`news`.`id`) as `comment_count` FROM `news` ORDER BY `news`.`postdate` ASC"
Тогда количество комментариев будет в столбце `comment_count` и хранить количество комментариев в отдельной ячейке тогда не нужно.
По поводу последней записи: действительно можно сортировать по дате (в обратном порядке - DESC) и выбирать лишь один (LIMIT 1).
Ответ отправил: Устинов С.Е. (статус: Профессионал) Украина, Славянск Организация: SlavComp WWW:Физико-математический факультет СГПУ ICQ: 4343069 ---- Ответ отправлен: 23.12.2007, 13:31 Оценка за ответ: 5 Комментарий оценки: За первую половину огромное спасибо, очень признателен, буду колдовать!
Отвечает: Мусихин А И
Здравствуйте, Clever0k!
По выводу последней новости. Запрос зависит от того, в каком формате вы храните дату. Можно либо записывать дату как mktime() в формате int, либо отсортировывать по id новости (последняя добавленная новость по идее должна иметь самый большой id при условии , что стобцу id поставлен параметр auto_increment)
SELECT * FROM news ORDER BY `id` DESC LIMIT 1
Если хранить дату как date, то выбирать будет любую новость за последний день добавления, а не последнюю добавленную новость.
Ответ отправил: Мусихин А И (статус: 2-ой класс)
Ответ отправлен: 23.12.2007, 13:58 Оценка за ответ: 5 Комментарий оценки: Спасибо за ответ, я так и делаю, просто думал что есть еще вариант который я не нашел при чтении книг....
Вопрос № 115.499
Здравствуйте. У меня вопрос по разбиению картинок на страницы. Я уже день мучаюсь с циклом for, но все равно не получается... Помогите, пожалуйста! Мне нужно, чтобы на одной странице было не более $onpage картинок... Никак не получается!
Большое спасибо, если поможете или натолкнете на решение.
Приложение:
Отправлен: 23.12.2007, 08:46
Вопрос задала: Angel7 (статус: Практикант)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Мусихин А И
Здравствуйте, Angel7!
Несколько встречных вопросов. Откуда фигурная скобка перед ___ print "<table ___? что за переменные $page, $cur, которые нигде не определяются? Зачем нужна переменная $pagescount, которая нигде не используется? Почему $rows определяется через общее количество картинок, а не через количество картинок на странице?
Насколько Я ПОНЯЛ ваш код, он должен быть примерно таким, как в приложении (код "до" и "после" тот же самый, только не забывайте получать $page из $_GET).
Приложение:
Ответ отправил: Мусихин А И (статус: 2-ой класс)
Ответ отправлен: 23.12.2007, 13:40 Оценка за ответ: 5 Комментарий оценки: Большое спасибо! Все работает, это я там с переменными и правда начудила :)