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

  Все выпуски  

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


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

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

Выпуск № 288
от 20.03.2006, 12:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 236, Экспертов: 36
В номере:Вопросов: 5, Ответов: 12


Вопрос № 37489: Здравствуйте, уважаемые эксперты! В своем вопросе об огранизации архива статей я не вполне точно описал проблему. Попробую еще раз. Есть архив статей, которые хранятся в бд(mysql). Nаблица сост. из полей id, title, content и date. Подскажите, как сде...
Вопрос № 37514: Добрый вечер! У меня вопрос про сессии. На одной странице есть определенный код HTML перед ним есть 1 строка PHP кода, в которой написано session_start(); Так вот вопрос, при открытии этой страницы, ничего нет, но если нажать обновить, то все станет ...
Вопрос № 37519: Здраствуйте! Скрипт: $img_name="c:/tmp/3.gif"; $im=imagecreatefromgif($img_name); header ("Content-type: image/gif"); imagegif ($im); imagedestroy ($im); вместо картинки выдает текстовые символы. У ...
Вопрос № 37539: Какие функции PHP можно использовать для работы с "женьгами" в интернет-магазине?...
Вопрос № 37558: как запустить из php (IIS) ActiveX компонент?...

Вопрос № 37.489
Здравствуйте, уважаемые эксперты! В своем вопросе об огранизации архива статей я не вполне точно описал проблему. Попробую еще раз. Есть архив статей, которые хранятся в бд(mysql). Nаблица сост. из полей id, title, content и date. Подскажите, как сделать просмотр статей по месяцам, годам.
Т.е. нужно меню, вроде:
2006г.
январь
февраль
март...
При клике на месяц показываются статьи этого месяца. И как сделать, чтобы скрипт сам искал, какие года и месяцы есть и автоматически строил их список? Очень нужна ваша помощь! Заранее очень благодарен!
Отправлен: 14.03.2006, 12:45
Вопрос задал: Андрющенко Вячеслав Васильевич (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Zysoftik
Здравствуйте, Андрющенко Вячеслав Васильевич!

При такой организации можно поступить 2-мя способами:

1. Писать дату в формате YYYYMMDD без разделителей. Тогда появляется возможность оперировать датами с помощью простых арифметических операций. Вборка будет выглядеть таким образом:
select ....... where (dat>20051012)and(dat<20060101).

2. Если невозможно внедрить первый вариант, попробовать использовать функции MySQL. Вот ряд функций:

YEAR(date) - возвращает год
MONTH(date) - возвращает месяц
DAYOFMONTH(date) - возвращает день

Всем им передается дата. Т.е. выборка будет происходить так:

select ....... where (month(dat)>10)and(month(dat)<12).

Только нужно учесть, что эти ф-ции работают только с датами вида YYYY.MM.DD.

Если же нет возможности пользоваться и этим методом, тогда MySQL предоставляет механизм регулярных выражений.

Выражение

str REGEXP expr

Проверяет строку str на соответствие регулярному выражению expr.
Тут поле для творчества, в зависимости от используемого формата даты.

Единственное замечание - работоспособность всех методов, кроме первого может зависить от конкретной версии и реализации MySQL и не всегда работает (по крайней мере у меня).
P.S.:
Поиск дат тоже можно организовать по вышеперечисленным методам. Например:
select year(dat) from articles
вернет все года таблицы.
Ответ отправил: Zysoftik (статус: 2-ой класс)
Ответ отправлен: 14.03.2006, 14:53
Оценка за ответ: 5

Отвечает: КиберТварь
Здравствуйте, Андрющенко Вячеслав Васильевич!
смотря какой тип поля date если там тип стандартный тип даты в БД
то запрос можно сделать так
прил 1)
а если у вас тип обычный INT то нужно сделать переобразование
с помошью mktime()
http://php.net/manual/ru/function.mktime.php

Приложение:

Ответ отправил: КиберТварь (статус: Практикант)
Ответ отправлен: 14.03.2006, 15:08
Оценка за ответ: 5


Вопрос № 37.514
Добрый вечер! У меня вопрос про сессии. На одной странице есть определенный код HTML перед ним есть 1 строка PHP кода, в которой написано session_start(); Так вот вопрос, при открытии этой страницы, ничего нет, но если нажать обновить, то все станет видно.
Если убрать session_start(); то все сразу работает.
Вопрос: как сделать чтобы все было видно с первого раза? без session_start(); все работает нормально. вот. извините если непонятно.
Отправлен: 14.03.2006, 18:27
Вопрос задал: Dimka_R (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: КиберТварь
Здравствуйте, Dimka_R!
вроде бы должно работать.
по крайней мере у меня такие вещи работают. может быть проблема в настройках РНР или в самом скрипте хотя в голову ничего не лезит.
есть альтернатива
пишем 2 файла
1.index.php 2.main.php
во втором файле пишите ваш код без session_start();
а первый вот так

Приложение:

Ответ отправил: КиберТварь (статус: Практикант)
Ответ отправлен: 15.03.2006, 19:27


Вопрос № 37.519
Здраствуйте!
Скрипт:
$img_name="c:/tmp/3.gif";
$im=imagecreatefromgif($img_name);
header ("Content-type: image/gif");
imagegif ($im);
imagedestroy ($im);
вместо картинки выдает текстовые символы.
У меня PHP+Apachе, может дело в сервере? Как проверить?
Отправлен: 14.03.2006, 20:41
Вопрос задал: Даниленко Андрей Анатольевич (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Алексей Смуриков
Здравствуйте, Даниленко Андрей Анатольевич!
А проверьте включена ли у вас поддержка gd2!
p.s. php.ini ищите extensions!
---------
Speccy Rulezz!!!
Ответ отправил: Алексей Смуриков (статус: Практикант)
Ответ отправлен: 15.03.2006, 09:12
Оценка за ответ: 5

Отвечает: Straight
Здравствуйте, Даниленко Андрей Анатольевич!

Вполне возможно, что у Вас что-то выводится перед этим кодом, в результате чего header не передается. Если warningи оключены, то Вы вполне могли этого и не заметить.
Ответ отправил: Straight (статус: 10-ый класс)
Ответ отправлен: 15.03.2006, 10:52
Оценка за ответ: 4

Отвечает: Zysoftik
Здравствуйте, Даниленко Андрей Анатольевич!

А как Вы используете этот код?
Если просто include - работать не будет.

Для такого кода нужно писать так:
<img src="mypic.php">

Тогда при обращении к скрипту будет работать выдаваемый header
Ответ отправил: Zysoftik (статус: 2-ой класс)
Ответ отправлен: 15.03.2006, 11:58
Оценка за ответ: 4

Отвечает: КиберТварь
Здравствуйте, Даниленко Андрей Анатольевич!
может быть у вас не установлена библиотека GD
php.ini
extension=php_gd2.dll
лучьше конечно если вы вышлите какая версия у вас какие модули установлены
Ответ отправил: КиберТварь (статус: Практикант)
Ответ отправлен: 15.03.2006, 19:29


Вопрос № 37.539
Какие функции PHP можно использовать для работы с "женьгами" в интернет-магазине?
Отправлен: 15.03.2006, 06:48
Вопрос задал: PollyRC (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: КиберТварь
Здравствуйте, PollyRC!
а что такое "женьгами" ?
может вы имели ввиду "деньгами"
но встречный вопрос
в смысле?
обясните что именно вам нужно
Ответ отправил: КиберТварь (статус: Практикант)
Ответ отправлен: 15.03.2006, 19:37

Отвечает: Lector
Здравствуйте, PollyRC!
Поясните вопрос, пожалуйста.
Вообще с деньгами можно использовать все функции от строчных и числовых до классовых.
---------
Хочешь помочь старику - сделай вместо него.
Хочешь помочь новичку - сделай вместе с ним.
Хочешь помочь мастеру - отойди и не мешай,
а хочешь помочь дураку - сам дурак.
Ответ отправил: Lector (статус: Студент)
Ответ отправлен: 15.03.2006, 19:56


Вопрос № 37.558
как запустить из php (IIS) ActiveX компонент?
Отправлен: 15.03.2006, 11:33
Вопрос задал: Al_kul (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Straight
Здравствуйте, Al_kul!
В windows-версии php есть функции для работы с COM-объектами.
http://ru.php.net/manual/ru/ref.com.php
Ответ отправил: Straight (статус: 10-ый класс)
Ответ отправлен: 15.03.2006, 12:10

Отвечает: КиберТварь
Здравствуйте, Al_kul!
это делается простым тэгом

в приложении стандартный медиа плеер

Приложение:

Ответ отправил: КиберТварь (статус: Практикант)
Ответ отправлен: 15.03.2006, 19:41
Оценка за ответ: 5

Отвечает: Lector
Здравствуйте, Al_kul!
никак.
Для этого надо использовать движок броузера. И использовать html таг
---------
Хочешь помочь старику - сделай вместо него.
Хочешь помочь новичку - сделай вместе с ним.
Хочешь помочь мастеру - отойди и не мешай,
а хочешь помочь дураку - сам дурак.
Ответ отправил: Lector (статус: Студент)
Ответ отправлен: 15.03.2006, 19:57


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

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

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

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

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


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


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.20 (beta) от 17.03.2006
Яндекс Rambler's Top100

В избранное