PHP - нужна помощь с логикой - PullRequest
       15

PHP - нужна помощь с логикой

0 голосов
/ 01 сентября 2009

В настоящее время я работаю над сценарием PHP / MySQL, который выполняет следующее в следующем порядке:

1) Проверяет БД на наличие видео, которое нужно конвертировать 2) Как только определено, что видео необходимо конвертировать, оно начинает конвертировать * 3) Уведомляет «создателя» видео о том, что оно было создано. * 4) Уведомляет всех пользователей, которые являются «получателями» видео, о том, что у них есть новое видео.

Обратите внимание, я ищу помощь по помеченным звездочками цифрам выше.

Вот моя основная структура БД / таблицы (некоторые части намеренно пропущены, потому что я не хочу их печатать:

video_data:
  id
  creator_id
  needs_process  

video_info
  id
  video_id (relational to 'id' in table above).
  receiver_id

tblusers
  usrID
  usrFirst
  usrLast
  usrEmail

Вот что у меня есть в моем сценарии:

<?php
   require("connection.php");
   $rs = mysql_db_query($DBname,$sql,$link); 
   $data = mysql_query("SELECT * FROM video_data WHERE needs_process=1 LIMIT 1") or die(mysql_error());

 while($row = mysql_fetch_array( $data ))
   { 
$id = $row['id'];
$sender = $row['sender_id'];


        //Convert The Video Here (I've already written this code).


        //Maybe Create a Thumbnail Too (I've already written this code).

    }

Мой вопрос: в приведенном выше коде, как бы я отправил электронное письмо «создателю» (всегда 1 человек) и отправил электронное письмо получателям (иногда нескольким получателям). Более того, это могут быть «отдельные» или «разные» электронные письма. Например, создатель получит электронное письмо с надписью «Спасибо за загрузку!», А получатели получат одно сообщение «У вас есть новое видео».

Любая помощь в этом была бы великолепна!

1 Ответ

2 голосов
/ 01 сентября 2009

Это примерно так:

<?php
   require("connection.php");
   $rs = mysql_db_query($DBname,$sql,$link); 
   $data = mysql_query("SELECT * FROM video_data WHERE needs_process=1 LIMIT 1") or die(mysql_error());

 while($row = mysql_fetch_array( $data ))
   { 
$id = $row['id'];
$sender = $row['sender_id'];
        //Convert The Video Here (I've already written this code).
        //Maybe Create a Thumbnail Too (I've already written this code).

        //mail the creator

        $data2 = mysql_query("SELECT * FROM tblusers WHERE usrID=$row[creator_id] LIMIT 1") or die(mysql_error());

        $creatordata = mysql_fetch_array( $data2 );

        mailtocreator($creatordata['userEmail'], $creatordata['usrFirst'].' '.$creatordata['usrLast']);
        //mail the receiver
        $data3 = mysql_query("SELECT * FROM tblusers t, video_info vi WHERE vi.video_id = $row[id] AND vi.receiver_id = t.usrID") or die(mysql_error());
        while($row2 = mysql_fetch_array($data3))
        {
                mailtocreator($row2['userEmail'], $row2['usrFirst'].' '.$row2['usrLast'], $creatordata['usrFirst'].' '.$creatordata['usrLast']);
          }

    }


function mailtocreator($toemail, $toname)
{
    //do send mail routine
    $subject = 'video processed';
    $message = 'hello '.$toname.',

Thank you for uploading video.';
    $headers = 'From: webmaster@example.com' . "\r\n" .
         'Reply-To: webmaster@example.com' . "\r\n" .
         'X-Mailer: PHP/' . phpversion();
    mail($toemail, $subject, $message, $headers);
}

function mailtoreceiver($toemail, $toname, $fromname)
{
    //do send mail routine
    $subject = 'new video received';
    $message = 'hello '.$toname.',

You just got new video from '.$fromname.'.';
    $headers = 'From: webmaster@example.com' . "\r\n" .
         'Reply-To: webmaster@example.com' . "\r\n" .
         'X-Mailer: PHP/' . phpversion();
    mail($toemail, $subject, $message, $headers);
}

По сути, это как раз вокруг этого запроса:

$data2 = mysql_query("SELECT * FROM tblusers WHERE usrID=$row[creator_id] LIMIT 1") or die(mysql_error());

, которые получают подробную информацию о текущем загрузчике (взято из $ row [creator_id]) и

$data3 = mysql_query("SELECT * FROM tblusers t, video_info vi WHERE vi.video_id = $row[id] AND vi.receiver_id = t.usrID") or die(mysql_error());

, которые извлекают весь получатель путем запроса из таблицы tblusers и video_info, а затем отправляют эту информацию соответственно mailtocreator и mailtoreceiver.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...