выбор строк mysql для особых обстоятельств

#php #mysql

#php #mysql

Вопрос:

Можно ли выбирать новую строку из базы данных mysql всякий раз, когда я вызываю php-скрипт? Например, мне нужно получать новый адрес электронной почты из базы данных mysql каждый раз, когда я вызываю следующий php-скрипт. Я знаю о ORDER BY RAND () функции mysql; здесь мне нужно извлекать каждую строку в соответствии с их датой ввода (т.Е. ORDER BY created_on DESC ).

 // Add recepients from a datasoutce iteratively
$emails = mysql_query('SELECT email from recepients ORDER BY created_on DESC LIMIT 1') or die;
while($row = mysql_fetch_assoc($emails))
{
    message->addTo($row['email']);
}
  

РЕДАКТИРОВАТЬ: я буду использовать задание cron (запланированное задание в Windows) для запуска моего php-скрипта, где мне нужно решение для выбора строк по одному (не случайным образом) при вызове моего php.

Комментарии:

1. вы спрашиваете, как запустить этот php-скрипт при вводе нового сообщения электронной почты? вопрос не очень ясен

2. почему бы вам не добавить еще одно поле, чтобы определить, является ли запись access или нет?

3. Ваш код не имеет особого смысла. Он получает все строки. Не только одна строка, как указано в вашем описании.

4. @nightgaunt у него есть ОГРАНИЧЕНИЕ 1 в запросе mysql

5. Возможно, вы можете сохранить смещение в сеансе и увеличивать его при каждом вызове PHP-скрипта.

Ответ №1:

Добавьте столбец в таблицу, если вам разрешено:

 alter table recepients add column uts_sent BIGINT NOT NULL;
  

Обновите таблицу после отправки электронного письма:

 $limit= 1; //fetch $limit rows per page

$now = mktime(); //current unix time stamp

// Add recepients from a datasource iteratively
$emails = mysql_query("SELECT email from recepients WHERE uts_sent<$now ORDER BY created_on DESC LIMIT $limit") or die;
while($row = mysql_fetch_assoc($emails))
{
    $message->addTo($row['email']);
    $message->send();
    $email_escaped = mysql_real_escape_string($row['email']);
    mysql_query("update recepients set uts_sent = $now where email ='$email_escaped'") or die;
}
  

Комментарии:

1. я думаю, что пользователь не просил добавлять смещение

2. На самом деле он не указал, как именно работает то, что ему нужно. если он хочет сделать то, что в основном выполняется подкачка с размером страницы = $limit = 1, тогда ему нужно передать смещение скрипту, когда он каким-то образом ссылается на следующую страницу на выводимой им HTML-странице, либо в a <a href> , либо в a <meta refresh> .