Вопрос № 111315: 1. Есть поле DATATIME, как проверить что есть записи у которых дата более месяца.
2. Как вывести всю таблицу. (Обьясните пожалуйста как обработать результат запроса)
Спасибо за ответы на вопрос №111311...Вопрос № 111373: Здравствуйте! Подскажите новичку :)
У меня есть форма с кучей элементов, ее заполняет пользователь, а затем мне нужно эту информацию послать в базу данных. Есть ли какой-нить быстрый способ это сделать, массивом как-то например, чтобы не переписы...Вопрос № 111414: Здравствуйте ув. эксперты.
Такая вот проблемка опять:
Нужно нарисовать круговую диаграмму. Я рисую (код в приложении). В принципе ничего сложного, но диаграмму нужно разбить на 2 сектора, причём величина сектора заранее не известна. Значение ...Вопрос № 111432: После отправки письма с формы обратной связи с русскими буквами, на почту приходит абракадабра.
Я уже узнал, что проблема в кодировке (с сайтов письма идут в win-1251, а почтовые программы открывают его как KOI8-R).
Но я далёк от программиров...Вопрос № 111433: Здравствуйте ! Можно ли на php или на чем нибудь еще , связанном с интернетом запаковать в архив фотографию , расположенную на удаленном сервере. Использовать при этом подключение по ftp. Если можно , то приведите пример пожалста. а заодно как ее рас...Вопрос № 111464: После отправки письма с формы обратной связи, на почту приходит письмо, в котором в графе "От"
написано Nobody.
Хотелось бы, чтобы там была написана желаемая надпись. Как это сделать?
И ещё:
что необходимо добавить в код, чтобы ...
Вопрос № 111.315
1. Есть поле DATATIME, как проверить что есть записи у которых дата более месяца.
2. Как вывести всю таблицу. (Обьясните пожалуйста как обработать результат запроса)
Спасибо за ответы на вопрос №111311
Отправлен: 28.11.2007, 02:54
Вопрос задал: LEXASOFT (статус: 8-ой класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Alex_Nick
Здравствуйте, LEXASOFT!
1. проверить что есть записи у которых дата более месяца можно так:
$num_days=30; //отступ назад, в данном случае 30 дней
$date=strftime("%y/%m/%d",strtotime("-".$num_days." day", time())); //дата "месяц назад"
$mydate = mysql_connect(db_server,db_login,db_pwd) or die("Сервер недоступен"); //соединение сервером баз данных, установите значения параметров db_server,db_login,db_pwd
mysql_select_db(db_name) or die("БД недоступна"); //выбор нужной базы данных
$intres=mysql_query("select * from my_table where reg_date<'".$date."' ",$mydate);// выбор всех элементов таблицы, где значение поля reg_date "раньше", чем установленная дата
if(mysql_num_rows($intres)>0){ выполняете действия если есть записи у которых дата более месяца}else{выполняете действия если нет записей у которых дата более месяца}
2. Чтобы вывести результаты запроса я использую такую конструкцию:
допустим, есть таблица my_table с полями id, name. для вывода всех строк таблицы:
$mydate = mysql_connect(db_server,db_login,db_pwd) or die("Сервер недоступен"); //соединение сервером баз данных, установите значения параметров db_server,db_login,db_pwd
mysql_select_db(db_name) or die("БД недоступна"); //выбор нужной базы данных
$intres=mysql_query("select * from my_table",$mydate);//выбор всех строк таблицы
echo "<table>"; //начало таблицы
for($i=0;$i<mysql_num_rows($intres);$i++){ //в цикле перебор результатов запроса
$row=mysql_fetch_object($intres); //получение очередной строки значений
echo "<tr><td>".$row->id."</td><td>".$row->name."</td></tr>"; //вывод строки таблицы со значениями
} //конец цикла
echo "</table>"; //конец таблицы
Удачи!
Ответ отправил: Alex_Nick (статус: 2-ой класс)
Ответ отправлен: 28.11.2007, 10:52 Оценка за ответ: 5 Комментарий оценки: Спасибо уже нашел! Вот как я сделал:
$result = mysql_query("SELECT `date_log` FROM `ls_counter` WHERE `date_log` < DATE_SUB(NOW(), INTERVAL 1 MONTH)") or die(mysql_error());
if (mysql_num_rows($result)!=0) {
$result = mysql_query("SELECT * FROM `ls_counter` ORDER BY `date_log`") or die(mysql_error());
$mail_text = "
Отвечает: Flynn
Здравствуйте, LEXASOFT!
Вам для этого достаточно использовать встроенные в MYSQL функции для работы с датой и временем.
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html
В даннгом случае вам надо MONTH - возвращает месяц и DAYOFMONTH() - день в месяце.
Вариант второй - так как формато постоянный - можно сделать тоже саоме только функцией вырезания определенных символов и сравнить их (6 и 7 как месяц с 9 и 10 как день). Но первый вариант все же лучше, так что приведу только пример его
Select DAYOFMONTH(C.date_add), MONTH(C.date_add), C.* From comments C Where DAYOFMONTH(C.date_add)<MONTH(C.date_add)
Ответ отправил: Flynn (статус: 8-ой класс)
Ответ отправлен: 28.11.2007, 16:12 Оценка за ответ: 5 Комментарий оценки: Спасибо!
Вопрос № 111.373
Здравствуйте! Подскажите новичку :)
У меня есть форма с кучей элементов, ее заполняет пользователь, а затем мне нужно эту информацию послать в базу данных. Есть ли какой-нить быстрый способ это сделать, массивом как-то например, чтобы не переписывать каждое значение формы и не приравнивать к значению поля таблицы. Я специально создала таблицу в базе данных в такой же последовательности как и последовательность элементов формы.
И еще вопрос, подскажите компилятом с помощью которого можно было бы облегчить задачу программирования на php связанного с MySQL
Заранее спасибо!
Отправлен: 28.11.2007, 14:28
Вопрос задала: Mart (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 5)
Отвечает: Товарищ Бородин
Здравствуйте, Mart!
Дело не в том, в какой последовательности Вы создавали таблицу и форму, а как были именованы поля. Если поля в таблице и в форме именуются одинаково, то тогда имеет смысл написать "конструктор" запроса к базе данных. Принцип такой: сначала переберем члены массива $_POST (я надеюсь, Вы используете POST-формы????) с помощью цикла FOREACH. Создаем две переменные: имен полей таблицы $fields и значений $values. Начальное значение устанавливаем в пустое.
Код такой примерно(см. приложение).
Может не сработать, потому что я его не тестировал. Но если возникнут ошибки, проверьте две строки сразу после цикла foreach, функцию substr(я могу немного напутать в ее синтаксисе, потому что никогда ей не пользуюсь).
Приложение:
--------- Ничто не сближает людей так, как совместное преступление.
Ответ отправил: Товарищ Бородин (статус: Студент)
Ответ отправлен: 28.11.2007, 15:27
Вопрос № 111.414
Здравствуйте ув. эксперты.
Такая вот проблемка опять:
Нужно нарисовать круговую диаграмму. Я рисую (код в приложении). В принципе ничего сложного, но диаграмму нужно разбить на 2 сектора, причём величина сектора заранее не известна. Значение на которые нужно разбить передаётся в процентах. (т.е. нужно от круга отделать сектор сколько то процентов).
Так вот, контур диаграммы я нарисовал. В переменной $prosent_zashisl как раз передаётся этот процент. (пускай, для примера, он будет равен 80). Вот собственно по контуру отделяется эти 80%. А вот как соединить этот отделённый контур с центром диаграммы (круга то есть) я не знаю((( Т.е. я не знаю как определить координаты самой последнее точки, нарисованной функцией:
imageArc($img,100,100,180,180,0,$prosent_zashisl*360/100,$qcolor);
Т.е. нужно как-то определить координаты последней бирюзовой точки (этим цветом как раз рисуется данный контру).
В книге Дмитрия Котерова «РНР5. Наиболее полное руководство.» Я вообще не нашёл какой либо функции, определяющей положение последней нарисованной точки.
Как это можно сделать?
Отвечает: Мусихин А И
Здравствуйте, Стас Тельнов/[анти]КИЛЛЕР!
Математику надо изучать, а не только программирование :)
Функции такой ней, но можно вычислить ее математически.
x=xcenter+0.5*width*cos(ф), y=ycenter-0.5*height*sin(ф)
Для вашего случая (если я все правильно понял) -
x = floor(100+0.5*180*cos($prosent_zashisl*360/100))
y = floor(100+0.5*180*sin($prosent_zashisl*360/100))
А лучше пользуйтесь imagefilledarc() - дуга с заполнением, тогда рисовать не надо
ЗЫ. Котеров очень хорош для начинающих, для серьезных проектов читайте что-нибудь другое, например http://phpclub.ru/manrus/index.html
Ответ отправил: Мусихин А И (статус: 1-ый класс)
Ответ отправлен: 28.11.2007, 20:44 Оценка за ответ: 3 Комментарий оценки: Спасибо конечно, но поставить вам высокую оценку, к сожалению, не могу((( Координаты считаются совсем не правильно!
А это почитаю, поставраюсь разобраться. К сожалению в математике я действительно ничего не понимаю((
Вопрос № 111.432
После отправки письма с формы обратной связи с русскими буквами, на почту приходит абракадабра.
Я уже узнал, что проблема в кодировке (с сайтов письма идут в win-1251, а почтовые программы открывают его как KOI8-R).
Но я далёк от программирования.
В приложении небольшой код, который, как я понимаю, отвечает за отправку писем.
Как его изменить или дополнить, чтобы избавится от вышеописанной проблемы?
Буду очень благодарен всем ответившим.
Отвечает: Мусихин А И
Здравствуйте, Александр Данилюк!
Используйте в заголовке Content-type. Примерный код в приложении. К сожалению не знаю насчет украинских кодировок. Можете попробовать заменить 'windows-1251' в коде на другие кодировки, если не поможет.
Приложение:
Ответ отправил: Мусихин А И (статус: 1-ый класс)
Ответ отправлен: 28.11.2007, 21:02 Оценка за ответ: 5
Отвечает: Райкин Сергей Александрович
Здравствуйте, Александр Данилюк!
Просто замените строчку отправки e-mail на приведенную.
Приложение:
--------- программист должен работать в свое удовольствие
Ответ отправил: Райкин Сергей Александрович (статус: 4-ый класс)
Ответ отправлен: 28.11.2007, 22:04 Оценка за ответ: 5 Комментарий оценки: Очень благодарен
Вопрос № 111.433
Здравствуйте ! Можно ли на php или на чем нибудь еще , связанном с интернетом запаковать в архив фотографию , расположенную на удаленном сервере. Использовать при этом подключение по ftp. Если можно , то приведите пример пожалста. а заодно как ее распаковать :)
Отправлен: 28.11.2007, 20:44
Вопрос задал: Whiteman (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Nexus
Здравствуйте, Whiteman!
Приведенный в приложении код упаковывает папку со всем ее содержимым в зип-архив и выдает этот архив юзеру под именем $dirname.".zip" (при отладке, если вдруг будут ошибки - они запишутся в этот якобы зип архив, так что смотри чтоб не вылетали варнинги или нотайсы). Используется класс PhpConcept Library - Zip Module 2.5. У метода create три параметра - первый путь к файлу или папке которые нужно упаковать, второй - путь который нужно убрать, т.е. ты упаковываешь www/folder/file.jpg задаешь в качестве
второго параметра www/folder и в архиве у тебя будет только картинка, без папок. Распаковывать еще проще:
$zip = new PclZip("uploads/".$a_name.".zip");
$content = $zip->extract(PCLZIP_OPT_PATH, "uploads/".$a_name);
Работать с фтп тоже можно. Кстати не уверен, но возможно даже с при помощи fopen. Если не получится - классов для работы с фтп хватает.
Кстати, а зачем фотографию упаковывать? Они ж обычно в jpeg, так что упаковывать смысла как бы нет...
Приложение:
Ответ отправил: Nexus (статус: 10-ый класс)
Ответ отправлен: 28.11.2007, 21:13 Оценка за ответ: 5 Комментарий оценки: Да мне это нужно , потому что я не знаю где хранить фотографии для моего сайта . У меня фотографий где то гигабайт, а народ их поганит неизвестным образом, так что там я не храню. Вот я и ищу другой способ. В голову пришло только кидать архивы с фотографиями на рапидшэйр или вроде этого. Но я не знаю как программно запаковывать и распаковывать файлы в архив.
Спасибо !
Вопрос № 111.464
После отправки письма с формы обратной связи, на почту приходит письмо, в котором в графе "От" написано Nobody.
Хотелось бы, чтобы там была написана желаемая надпись. Как это сделать?
И ещё:
что необходимо добавить в код, чтобы почта отправлялась не анонимно, а через логин и пароль определённого почтового ящика на хостинге?
В приложении небольшой код, который, как я понимаю, отвечает за отправку писем.
Как его изменить или дополнить, чтобы избавится от вышеописанной проблемы?
Буду очень благодарен всем ответившим.
Ответ отправил: PVS (статус: Специалист)
Ответ отправлен: 29.11.2007, 09:52 Оценка за ответ: 4 Комментарий оценки: Спасибо, но после изменения кода результат остался тот же. А так же, по торому вопросу???