Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод из базы данных 
:(
    Опции темы
Biff
Дата 28.7.2010, 10:55 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 12.6.2006

Репутация: нет
Всего: нет



Добрый день,
У меня есть вот такая таблица user posted image

Нужно сделать вывод всех данных и в частности дату и время для сравнения с настоящей датой и временем и если они оба совпадают, то запустить скрипт отправки (mail.php) text на соответствующий email. Планирую обновлять script.php через cron, каждую минуту.

Вот есть примерный код (script.php), но я в этом не оч. хорошо разбираюсь.
Код

 <?php 
 include "config.php"; 
 $SelectQuery="select * from `anketa`" 
  $SelectReslut = mysql_query($SelectQuery); 
  //сколько записей получили
  $Count = mysql_num_rows($SelectReslut); 
  for ($i=1; $i<=$Count; $i++) { 
    //получаем очередную строку
    $Fetch = mysql_fetch_array($SelectReslut); 
    //выводим результат
    echo $Fetch['text']." : ".$Fetch['email']." : ".$Fetch['time']." : ".$Fetch['date']; 
  } 
  // $date - заведомо известная переменная
  // $time - заведомо известная переменная
//(взято из базы в формате ГГГГ-ММ-ДД)
//(взято из базы в формате ч-м-с)
$current_date = date("Y-m-d");   
$current_time = date("H:i:s");
if ($current_date > $data)  {
    echo endif;
}  else 
if ($current_date < $data) {
    echo endif;
}  
if ($current_time > $time)  {
    echo endif;
}  else  
if ($current_time < $time){
    echo endif;
}  else
if ($current_date = $data) and ($current_time = $time)
else  {
    echo include "mail.php";;
}



?>


Вот код mail.php
Код

<?php
    $email = $_POST['mail'];
    $date = $_POST['date'];
    $time = $_POST['time'];
    $text = $_POST['text'];
    
 $to = "[email protected]";
 $message =" You received  a mail from ".$mail;
 $message .=" Text of the message : ".$text;

 if(mail($to, $subject,$message)){
    echo "mail successful send";
} 
else{ 
    echo "there's some errors to send the mail, verify your server options";
}
?>


И нужно ли создавать дополнительный столбец user_id?
PM MAIL   Вверх
Zloxa
Дата 28.7.2010, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: нет
Всего: 161



скажите пожалуйста, с каких пор 
Цитата(Biff @  28.7.2010,  10:56 Найти цитируемый пост)
код PHP

уместен в теме SQL?


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Biff
Дата 28.7.2010, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 12.6.2006

Репутация: нет
Всего: нет



Zloxa

Я написал php код для того чтобы мне помогли сделать правильный запрос к бд.
то есть чтобы было понятно, что мне нужно вывести.

Это сообщение отредактировал(а) Biff - 28.7.2010, 11:32
PM MAIL   Вверх
skyboy
Дата 28.7.2010, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(Biff @  28.7.2010,  09:56 Найти цитируемый пост)
Нужно сделать вывод всех данных и в частности дату и время для сравнения с настоящей датой и временем

мне думается, что тебе не нужны все. что тебе и надо выбрать только те, у которых поля date+time совпадают с текущим
Код

SELECT * FROM `anketa` WHERE `date` = date(NOW()) AND `time` = time(NOW())


Добавлено через 36 секунд
второе условие надо порихтовать, чтоб значение секунд не учитывалось
PM MAIL   Вверх
Biff
Дата 28.7.2010, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 12.6.2006

Репутация: нет
Всего: нет



Цитата

второе условие надо
 порихтовать, чтоб значение секунд не учитывалось 

А что нужно исправить?
Код

$SelectQuery="SELECT * FROM `anketa` WHERE `date` = date(NOW()) AND `time` = time(NOW())" 
  $SelectReslut = mysql_query($SelectQuery); 
  //сколько записей получили
  $Count = mysql_num_rows($SelectReslut); 
  for ($i=1; $i<=$Count; $i++) { 
    //получаем очередную строку
    $Fetch = mysql_fetch_array($SelectReslut); 
    //выводим результат
    echo $Fetch['text']." : ".$Fetch['email']." : ".$Fetch['time']." : ".$Fetch['date']; 


Тоесть из бд. вытаскивается всё и text и email, но время и дата соответсвует настоящей.
А как сделать чтобы выборка email и text соответствовали настоящей дате и времени.
И как я понял всем значением присваивается переменная $Fetch?

Это сообщение отредактировал(а) Biff - 28.7.2010, 12:17
PM MAIL   Вверх
skyboy
Дата 28.7.2010, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(Biff @  28.7.2010,  11:09 Найти цитируемый пост)
Тоесть из бд. вытаскивается всё и text и email, но время и дата соответсвует настоящей.

нет. "из БД вытаскиваются поля text и email всех записей, у которых поля date и time соответствуют текущему времени"
Цитата(Biff @  28.7.2010,  11:09 Найти цитируемый пост)
всем значением присваивается переменная $Fetch?

нет. Это переменной $Fetch присваивается массив из значений полей в очередной записи результатов запроса.
ещё раз. результат запроса представляет собой "таблицу". Цикл for() получает очередную строку "таблицы" и столбцы текущей строки "таблицы" в виде массива из нескольких "колонок" записываются в переменную $Fetch.
Цитата(Biff @  28.7.2010,  11:09 Найти цитируемый пост)
А что нужно исправить?

добавить сброс значения секунд. Или сравнивать не через "равно"
PM MAIL   Вверх
Biff
Дата 28.7.2010, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 12.6.2006

Репутация: нет
Всего: нет



Цитата

добавить сброс значения секунд. Или сравнивать не через "равно" 

Вот эта строчка $SelectReslut = mysql_query($SelectQuery); ?
а как сделать сброс?
PM MAIL   Вверх
Biff
Дата 28.7.2010, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 12.6.2006

Репутация: нет
Всего: нет



Вот так подойдёт?

Код

SELECT * FROM `anketa` WHERE `date` = date(NOW()) AND DATE_FORMAT(time,'%H%i') = DATE_FORMAT(NOW(),'%H%i')

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0678 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.