Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 737
от 13.08.2007, 12:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 445, Экспертов: 54
В номере:Вопросов: 2, Ответов: 10


Вопрос № 97613: Здравствуйте, господа эксперты. Вопрос у меня не совсем банальный. Имеется скрипт небольшого магазина. Все написано с ООП. Так вот в классе подключения к базе данных используется функция mysql_pconnect, а скрипт ставится на виндоусовский се...
Вопрос № 97639: Здрасьте! Вопрос больше по MYSQL, а не по пхп. Но на MYSQL я не подписан. Так что спрашиваю здесь, тем более, что вопрос, думаю, не сложный. К делу. Имеется таблица `pictures` с картинками. Поле `id_pic` ключ к записи. Поле `category` определ...

Вопрос № 97.613
Здравствуйте, господа эксперты.

Вопрос у меня не совсем банальный. Имеется скрипт небольшого магазина. Все написано с ООП. Так вот в классе подключения к базе данных используется функция mysql_pconnect, а скрипт ставится на виндоусовский сервер и IIS где ПХП установлен как CGI wrapper. Соответственно ни о каком посоянном подключении к базе данных не может быть и речи. То есть надо осуществить переход с функции mysql_pconnect на mysql_connect без переписывания всех вызовов в других классах. Если тупо взять и исправить mysql_pconnect на mysql_connect то выдается следующая ошибка:

Warning: mysql_query(): 24 is not a valid MySQL-Link resource in e:siteseggaeexchange.com shirtscdatabase.php on line 106

Очень прошу помочь - сам уже замучался.
Спасибо заранее.

Приложение:

Отправлен: 07.08.2007, 12:29
Вопрос задал: Сергей Галкин (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: PVS
Здравствуйте, Сергей Галкин!
Вероятно где-то встречается mysql_close раньше чем оно действительно должно быть. При mysql_pconnect оно просто игнорировалось а теперь вылезает. Вам проще всего оставить mysql_pconnect - ничего плохого оно не делает.
Ответ отправил: PVS (статус: Специалист)
Ответ отправлен: 07.08.2007, 12:35

Отвечает: Flynn
Здравствуйте, Сергей Галкин!
Независимо от того как подключаетесь mysql_query действует одинаково.
Ищите в других файлах, что открываются при вызове этой ошибки, вызовы обращения к $data->m_id или же $data->disconnect(), возможно где-то происходит замена или же подключение закрывается.
Ответ отправил: Flynn (статус: 3-ий класс)
Ответ отправлен: 07.08.2007, 12:48

Отвечает: Powoditch konstantin
Здравствуйте, Сергей Галкин!
А где Вы вызываете соединение с базой?
//Constructor (Get all config records)
function cdatabase()
{
parent::cbase();
$this->m_db=$this->m_config->m_db;
$this->connect(); // исправлено
register_shutdown_function(create_function("", "mysql_close($this->m_id)"));
}

Потом можете спокойно заменить mysql_pconnect на mysql_connect, это на результат влиять не будет.
Ответ отправил: Powoditch konstantin (статус: 4-ый класс)
Ответ отправлен: 07.08.2007, 13:34


Вопрос № 97.639
Здрасьте!
Вопрос больше по MYSQL, а не по пхп. Но на MYSQL я не подписан. Так что спрашиваю здесь, тем более, что вопрос, думаю, не сложный. К делу.
Имеется таблица `pictures` с картинками. Поле `id_pic` ключ к записи. Поле `category` определяет категорию, в которой расположена картинка.
Выбираю картинку:
$query = "SELECT * FROM pictures WHERE `id_pic`='$id'";
вывожу картинку
Вопрос:
как мне вывести следующую и предыдущую картинку в _текущей_категории_, то есть в той же, что и эта картинка? То есть показывается большая картинка и внизу две ссылочки: предыдущая, следующая.
Отправлен: 07.08.2007, 18:45
Вопрос задал: Бобровский Сергей Сергеевич (статус: 1-ый класс)
Всего ответов: 7
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: Yurio
Здравствуйте, Бобровский Сергей Сергеевич!

$category- номер категории картинки
$id - номер текущей картинки.

select * from pictures where category=$category and id>$id order by id limit 1 - следующее фото
select * from pictures where category=$category and id<$id order by id limit 1 - предыдущеефото
Ответ отправил: Yurio (статус: 2-ой класс)
Ответ отправлен: 07.08.2007, 19:03
Оценка за ответ: 5
Комментарий оценки:
Спасибо, как раз это и нужно!

Отвечает: PVS
Здравствуйте, Бобровский Сергей Сергеевич!
Пердыдущий ID
select max(id) as prev_id from pictures where category=$category and id<$id;
Следующий:
select min(id) as next_id from pictures where category=$category and id>$id;
Ответ отправил: PVS (статус: Специалист)
Ответ отправлен: 07.08.2007, 19:07
Оценка за ответ: 4

Отвечает: Flynn
Здравствуйте, Бобровский Сергей Сергеевич!
Попробуйте объединять запросы.
Select P.*, max(Prev.id_pic) as prev, min(Next.id_pic) as next From pictures P
left join pictures Prev on (Prev.category=P.category and Prev.id_pic<P.id_pic)
left join pictures Next on (Next.category=P.category and Next.id_pic>P.id_pic)
Where P.id_pic=38 Group By P.category
Т.е. выбираем нашу картинку, а потом максимальное айди из этой же категории где оно меньше нашего айди, и минимальное где оно больше.
Хотя тоже самое можно сделать несколькими запросами.
Ответ отправил: Flynn (статус: 3-ий класс)
Ответ отправлен: 07.08.2007, 19:08
Оценка за ответ: 4
Комментарий оценки:
МНе это ни к чему, я еще плохо разбираюсь в MYSQL, мне удобней будет несколькими запросами. Но всё равно спасибо!

Отвечает: Azrr
Здравствуйте, Бобровский Сергей Сергеевич!
Допустим, картинка отображается по ссылке http://somesite.ru/script.php?id=3&cat=2, где id=3 - id_pic картинки, а cat = 2 - категория, тогда запросом вида
$query = "SELECT * FROM `pictures` WHERE `id_pic`='$id'+1 AND `category`=$cat"; мы получим следующую картинку, а ссылка будет вида http://somesite.ru/script.php?id=($id+1)&cat=2. Аналогично для предыдущей.
Ответ отправил: Azrr (статус: 2-ой класс)
Ответ отправлен: 07.08.2007, 21:36

Отвечает: Василенко Алексей Васильевич
Здравствуйте, Бобровский Сергей Сергеевич!
как не банально но вопрос в большей степени по пхп.
для того, чтоб организовать просмотр категории исходя из картинки необходимо:
- определить категорию к которой пренадлежит выбранная картинка,
- для обработки "предидущий" и "следующий" необходимо отображать пользователю не картинку, а картинку из категории,
- для корректного движения по галерее очень желательно определить "место" текущей картинки в категории.

---------
Готовых решений небыло, нет и не будет... вся жизнь - это лишь размышления на тему
Ответ отправил: Василенко Алексей Васильевич (статус: 3-ий класс)
Ответ отправлен: 07.08.2007, 22:26

Отвечает: Oleg S. Mezhov
Здравствуйте, Бобровский Сергей Сергеевич!

предыдущая:
SELECT MAX(id_pic) FROM pictures WHERE id_pic<$id AND category=$category

следующая:
SELECT MIN(id_pic) FROM pictures WHERE id_pic>$id AND category=$category

Ответ отправил: Oleg S. Mezhov (статус: 3-ий класс)
Ответ отправлен: 08.08.2007, 09:53

Отвечает: Sema
Здравствуйте, Бобровский Сергей Сергеевич!
Все зависит от чого, что Вы понимаете под пред и след картинкой...

если это пред и след ид то надо переписать селект.

или добавить еще один
SELECT max(id_pic), * FROM pictures WHERE `id_pic`< '$id'
тоже со след картинкой, только с min

хотя возможны и другие варианты.
Ответ отправил: Sema (статус: 3-ий класс)
Ответ отправлен: 08.08.2007, 09:55


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.54 beta от 01.08.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное