webew
Войти » Регистрация
 
PHP

Помогите со скриптом на mysql+php

26 сентября 2010, 21:28
Автор: flame
Доброго времени суток!
Суть такова, есть форум IPB 2.3.6, и есть специальный кабинет, так вот когда пользователь заходит в кабинет он вводит эмаил и специальный пароль, скрипт проверяет данные, если эмаил и пароль верные то входит в кабинет, а дальше начинается проблема по задумке через крон каждый час скрипт должен проверить ввел ли пользователь коментарий на форуме, если комент существует то дальше проверяеться дата когда оставлен, если недавно, то на мыло письмо не отправляется, если же нет то отправляется с просьбой оставить коментарий........ в общем такая задача.....

ниже пояснение что и как...

есть две таблицы:
1) название: base0,
структура:
id
user
mail
date_visit
date_rss_run
id_author
time
(допустим тут 3 занесенных значения)

2) название: base1,
структура:
id
name
email
news_time
author_id
(допустим тут 7 занесенных значения)

нужно сравнить значения id_author из первой таблицы со значением author_id из второй таблицы следующим образом,
base0 => значение[0] сравнить со всеми значениями base1,
и так же все остальные значения
base0 => значение[1] сравнить со всеми значениями base1,
base0 => значение[2] сравнить со всеми значениями base1,
PHP кодом сравнить если значение совпало то выполнить сравнение даты если дата из base0 <= дате base1, то отправить на мыло сообщение, если нет то ничего не выполнять......(проверку по дате и прочее сам сделаю просто подскажите, а лучше покажите как лучше сделать, желательно код...)

вот то что пытался сделать может из этого будет более понятно....

$query_flame=mysql_query('SELECT * FROM '.$dbtable_flame);
$query_posts=mysql_query('SELECT * FROM '.$dbtable_ibf_posts.' WHERE topic_id="326"');

for($s=0; $s<=mysql_num_rows($query_flame); $s++){
    $array_flame=mysql_fetch_array($query_flame);
    for($d=0; $d<=mysql_num_rows($query_posts); $d++){
        $array_posts=mysql_fetch_array($query_posts);
        if($array_flame['id_author'] == $array_posts['author_id']){
            if($array_flame['date_rss_run'] <= $date_r){
                $to=$array_flame['mail'];
                $from='http://test/';
                $subject='XXXXXXXXXXX';
                $subject = "=?windows-1251?b?". base64_encode($subject) ."?=";
                $headers = "Content-type: text/plain; charset=\"windows-1251\"\r\n";
                $headers .= "From: <". $from .">\r\n";
                $headers .= "MIME-Version: 1.0\r\n";
                $headers .= "Date: ". date('D, d M Y h:i:s O') ."\r\n";
                $message='asdkjasdkjsfkhafkjadsfkgdasfgdasf';
                if(mail($to,$subject,$message,$headers)){
                  //тут другой код.....
                }
            }
        }
    }
}

Извините не знал в какую категорию адресовать вопрос.......
Добавить комментарий

1234ru

Как я понимаю, нужно найти такие записи из flame, у которых 'date_rss_run' <= $date_r, при этом автор присутствует в posts.

Если так, то нужно следующее:

$sql = "
    SELECT
        f.mail,
        ...
    FROM $dbtable_flame f
    JOIN $dbtable_ibf_posts p ON p.author_id = f.id_author
    WHERE f.date_rss_run <= '$date_r' ND p.topic_id = 326
    "
;
    // все условия уже учтены в запросе
    // осталось только добавить колонки
    // нужные для отправки e-mail
   
    $result = mysql_query($sql) or die(mysql_error());
    while ($row = mysql_fetch_assoc($result)) {
        $to = $row['mail'];
        ...
    }
   


P.S. Не пренебрегайте кнопкой Syntax (справа над формой добавления текста).
То, что не убивает нас, делает нас инвалидами.
27.09.2010, 22:09
Ответить
NO USERPIC

flame

Спасибо :) И про синтаксис на будущее учту :) я всё таки сам додумался и сделал по другому :)
'SELECT * FROM '.$dbtable_flame.','.$dbtable_ibf_posts.' WHERE topic_id="326" AND id_author=author_id'

но и этот вариант попробую для тренировки и освоения :), ну и чтобы ваши усилия зря не пропали :)
Flame ARTS
27.09.2010, 23:13
Ответить
© 2008—2017 webew.ru, связаться: x собака webew.ru
Сайт использует Flede и соответствует стандартам WAI-WCAG 1.0 на уровне A.
Rambler's Top100

Реклама: