Вопрос № 42037: Здравствуйте.
Проблема в следующем.
Как сделать на странице меню типа "предыдущая статья - следующая статья"? Статьи хранятся в базе MySql в виде "id - название статьи - автор - текст статьи". Как выбрать из базы статьи ну...Вопрос № 42054: Уважаемые эксперты, у меня такой вопрос:
Пользователь загружает картинку/фотку ко мне на сервер ( делает upload ). Работает с ней и уходит с сервера. Я должен позаботиться о том, что бы картинка/фотка была удалена автоматически через 10 мину...Вопрос № 42058: Добрый день! Я не знаю куды лучше вопрос задать поэтому задаю в эту тему! Я пишу чат на delphi устроен он таким образом, что список тех кто в чате отображается в компоненте twebbrowser в него закачивается содержимое определенного файла где идет списо...Вопрос № 42070: Здраствуйте.
Пишу гостевую книгу с использованием MySQL. В таблице есть несколько сообщений (с именами и прочей информацией), записаные по рядам.
---------------------
| name | email | message |
---------------------
Как показать ...
Вопрос № 42.037
Здравствуйте.
Проблема в следующем.
Как сделать на странице меню типа "предыдущая статья - следующая статья"? Статьи хранятся в базе MySql в виде "id - название статьи - автор - текст статьи". Как выбрать из базы статьи нужного автора с сортировкой названий статей по алфавиту - понятно.
А как определить название предыдущей статьи и следующей?
Отправлен: 04.05.2006, 12:52
Вопрос задал: Иван_ (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Rusland
Здравствуйте, Иван_!
Полагаю что нужно сделать sql-выборку. Для предыдущей статьи "SELECT id, nazvstatyi FROM tablica WHERE id<tekuschiyID ORDER BY id LIMIT 1". Для следующей статьи "SELECT id, nazvstatyi FROM tablica WHERE id>tekuschiyID ORDER BY id LIMIT 1". Если я что-то не понял, то поправьте меня.
--------- Если партия скажет есть контакт, будем есть контакт.
Ответ отправил: Rusland (статус: Специалист)
Ответ отправлен: 04.05.2006, 13:14
Отвечает: Madproger
Здравствуйте, Иван_!
В дополнение к предыдущему ответу
Если нужно с сортировкой по алфавиту
то навряд ли с такой структурой БД у Вас что то получится
у Вас к примеру
132 Абрамов текст
12 Володин текст
54 Шагал текст
А Вам надо ВОлодин как основная, здесь Вы думаю навряд ли угадаете какая предыдущая :(
Тут запрос WHERE ну никак не сконфигуришь. И структуры таблицы которая с этим справится я не вижу.
Единственный вариант (ИМХО) это делать в начале выборку только id упорядоченных по алфавиту. например так
SELECT id FROM your_table ORDER BY <article_name>
Загонять в РНР результат в массив и уже по нему ориентироваться какая следующая какая предыдущая. (вбрать три id)
Потом запрос типа
sprintf("SELECT id, <article_name>, if(id=%d, <content>, '') FROM your_table WHERE id IN (%d, %d, %d) ORDER BY <article_name>", $curr_id, $prev_id, $curr_id, $next_id)
Думаю так.
--------- И будет вам счАстиЕ!
Ответ отправил: Madproger (статус: 6-ой класс)
Ответ отправлен: 04.05.2006, 13:36 Оценка за ответ: 5 Комментарий оценки: Я так и делаю - сортирую выборку по алфавиту и заношу в массив. И тогда уже определяю предыдущее и следующее значение. Но подумал, что, может, есть более простые методы. Спасибо за ответ
Вопрос № 42.054
Уважаемые эксперты, у меня такой вопрос:
Пользователь загружает картинку/фотку ко мне на сервер ( делает upload ). Работает с ней и уходит с сервера. Я должен позаботиться о том, что бы картинка/фотка была удалена автоматически через 10 минут, так как место на сервере ограничено и должно быть свободно для других пользоваелей, которые зайдут позже и захотят загрузить свои картинки/фотки.
Как я могу удалить файл/директорию на сервере по истечении N минут?
Заранее благодарен.
Отправлен: 04.05.2006, 14:34
Вопрос задал: Agro (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 4)
Отвечает: Straight
Здравствуйте, Agro!
Обычно для этого используется cron (запуск скриптов по расписанию). Т.е. сервер автоматически запускает заданный скрипт, который и производит чистку. Но это поддерживает не всякий хостинг. Я бы предложил такой вариант: пусть при закачке новой картинки скрипт производит удаление старых картинок.
Ответ отправил: Straight (статус: Студент)
Ответ отправлен: 04.05.2006, 14:51 Оценка за ответ: 5 Комментарий оценки: Спасибо, но вариант, который вы предложили, не подходит. Проблема в том, что это многопользовательская программа, и удалять картинку при загрузке новой, я не могу, так как с ней может работать другой пользователь. А как работает cron?
Отвечает: Асташов Андрей Александрович
Здравствуйте, Agro!
Предположу что система *nix. Тогда достаточно при загрузке картинок выполнить вот этот код:
exec('find "$DIR" -type f -atime +10m -exec rm {} ;'); // Удаление всех файлов к которые не читали последние 10 минут.
Или(если разрешает хостинг оператор) в личном крон файле(как у хостинга редактируется крон файл надо уточнять. Везде по разному), в самый конец дописать эту строчку:
*/10 * * * * user find "$DIR" -type f -atime +14m -exec rm {} ;
Удачи.
--------- Бросил курить сам - Брось курить другому!!!
Ответ отправил: Асташов Андрей Александрович (статус: Студент)
Ответ отправлен: 05.05.2006, 06:23 Оценка за ответ: 5 Комментарий оценки: Спасибо. Попробую переговорить с хостинг оператором.
Вопрос № 42.058
Добрый день! Я не знаю куды лучше вопрос задать поэтому задаю в эту тему! Я пишу чат на delphi устроен он таким образом, что список тех кто в чате отображается в компоненте twebbrowser в него закачивается содержимое определенного файла где идет список логинов. Как можно сделать так, что если человек отключился от сети, то он удаляется из этого файла?
Отвечает: Jeka911
Здравствуйте, Грицай Алексей Юрьевич!
Если пишите на делфи весь чат (т.е. вместе с клиентами), то можно обязать клиентов полысать (например каждую минуту) сообщение с каким-нить служебным текстом, которое в окно чата не выводится, а дает знать что пользователь активен. И если это сообщение долго не приходит юзера из списка активных можно удалить.
Если не все это реализуемо, то просто, если пользователь долго ничего не говорил в чат, его из списка удалить.
Ну, и конечно, если кто-то подключился, его нужно туда добавить.
--------- Шахтер - чемпион!!!
Ответ отправил: Jeka911 (статус: 2-ой класс)
Ответ отправлен: 05.05.2006, 06:42 Оценка за ответ: 4
Вопрос № 42.070
Здраствуйте.
Пишу гостевую книгу с использованием MySQL. В таблице есть несколько сообщений (с именами и прочей информацией), записаные по рядам.
---------------------
| name | email | message |
---------------------
Как показать все сообщения (или лучше промежуток, например 0-10). Вообще у меня проблема с SQL запросами, что то понял, но всё же туманно.
Поскольку я новичок, хотя сделал пару сайтов на PHP, посоветуйте хорошую книгу для изучения PHP+MySQL. А то их так много и не хочеться деньги выбрасывать на ветер.
P.S. Документацию PHP и MySQL читал.
Отправлен: 04.05.2006, 17:51
Вопрос задал: Fem (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Ерёмин Андрей
Здравствуйте, Fem!
Вывести записи можно примерно так:
$res = mysql_query("SELECT * FROM `table`;");
for ($i = 0; $i < mysql_num_rows($res); $i++)
{ print mysql_result($res,$i,2); } mysql_query("запрос") выполняет запрос и возвращает результат выборки; mysql_num_rows(RES) выдаёт количество строк указааной выборки; mysql_result(RES,m,n) выдаёт значение из строки m выборки RES столбца n.
Именно поэтому в приведённом примере я указал столбец 2: 0 - name
1 - email
2 - message --------- Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор) Россия, Тула WWW:Программирование на DELPHI: Всё для программиста. ICQ: 286837644 ---- Ответ отправлен: 04.05.2006, 18:09 Оценка за ответ: 4 Комментарий оценки: Я не понял :( Зато получше прочитал Хелп и воспользовалься следущем скриптом ------------- mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("mydb"); $query = "select * from table"; $result = mysql_query($query); while ($row = mysql_fetch_assoc($result)) { echo $row["user_id"]; echo $row["fullname"]; } mysql_free_result($result); ?> -------------- Красота:) Вопрос про книги остаётся в силе
Отвечает: Устинов Сергей Евгеньевич
Здравствуйте, Fem!
Коль вопрос о книгах остается в силе, то отвечу на него.
тут - http://education.aspu.ru/page.php?id=24 и тут -
http://c-books.info/books/load.php?ty=php
можно скачать книги по PHP.
Мне лично нравятся Мазуркевич и Колисниченко. Еще неплохая (по части примеров) А.А. Орлов PHP полезные советы.
--------- Ответы на все вопросы - на сайте www.ya.ru :)
Ответ отправил: Устинов Сергей Евгеньевич (статус: 7-ой класс)
Ответ отправлен: 04.05.2006, 19:03 Оценка за ответ: 5 Комментарий оценки: ОК! Посмотрим.
Отвечает: Jeka911
Здравствуйте, Fem!
Если нужен промежуток в запросе добавляем "SELECT * FROM table LIMIT 0,10;";
Где 10 не до 10, а количество, ну т.е. следующее будет LIMIT 10,10...
--------- Шахтер - чемпион!!!
Ответ отправил: Jeka911 (статус: 2-ой класс)
Ответ отправлен: 05.05.2006, 06:33 Оценка за ответ: 5 Комментарий оценки: Да я уже сделал LIMIT, но вот что обозначает 0 и 10 я понимал не так. Спасибо что объяснил