Получить информацию из MySQL, добавленную в определенное время

Я создал скрипт для получения всех строк, добавленных в sql, в определенное время и установки переменных, получающих значения из определенных столбцов в каждой новой записи (строке). Вот что я сделал:

<?php
header('Content-type: text/html; charset=utf-8');

$host='localhost';
$user='username';
$password='password';
$dbname='racheaqui';

$connection=mysql_connect('localhost:/var/run/mysqld/mysqld.sock',$user,$password) or die ("connection failed");

mysql_select_db($dbname, $connection);

$query = "SELECT * FROM store WHERE date >= NOW() - INTERVAL 20 MINUTE;";

$result=mysql_query($query, $conexao);

if ($result){

while($row = mysql_fetch_assoc($result)){
$email=$row['email_contact'];
$name=$row['name'];
$phone=$row['phone_contact'];
}
}

#if (!empty($name)) {
print_r("The user ".$name." with phone ".$phone." and e-mail: ".$email." has created an account in the system.\n");
mysql_close($connection);
#}
?>

Но с этим кодом я буду устанавливать только переменные со значениями из последней строки. Я планирую установить как: $ variable1, $ variable2, $ variable3, $ variableX. Где $ variableX — это количество добавленных строк (которые я получил в формате массива).

Не могли бы вы помочь мне? Я новичок в php-кодировании, но, поверьте мне, я действительно очень старался, а также искал в Google и в базе данных stackoverflow, прежде чем спросить об этом здесь.

Заранее спасибо.

0

Решение

С этим:

while($row = mysql_fetch_assoc($result)){
$email=$row['email_contact'];
$name=$row['name'];
$phone=$row['phone_contact'];
}

Вы перезапись $email, $name, а также $phone за каждую запись. Вы можете собрать их в отдельные массивы, например так:

$emails = array();
$names = array();
$phones = array();
while($row = mysql_fetch_assoc($result)){
$emails[]=$row['email_contact'];
$names[]=$row['name'];
$phones[]=$row['phone_contact'];
}

Или создайте один большой массив с данными для каждого магазина:

$data = array();
while($row = mysql_fetch_assoc($result)){
$data[] = array(
'email' => $row['email_contact'],
'name' => $row['name'],
'phone' => $row['phone_contact']
);
}

Кроме того, вы можете поставить свой print_r() внутри цикла, как это:

while($row = mysql_fetch_assoc($result)){
$email=$row['email_contact'];
$name=$row['name'];
$phone=$row['phone_contact'];
print_r("The user ".$name." with phone ".$phone." and e-mail: ".$email." has created an account in the system.\n");
}
0

Другие решения

Вы перезаписываете свои переменные каждый раз, когда проходите цикл while. Попробуйте поместить оператор print в цикл while, например
Распечатать $ email. «
«;
напечатайте $ name. «
«;
распечатать телефон. «
«;
вместо использования print_r

Возможно, вы захотите добавить счетчик в ваш цикл и распечатать его тоже.

0

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

if ($result)
{
$nr_rows = mysql_num_rows($result);
while($row = mysql_fetch_assoc($result))
{
$email=$row['email_contact'];
$name=$row['name'];
$phone=$row['phone_contact'];
print "The user ".$name." with phone ".$phone." and e-mail: ".$email." has created an account in the system.\n";
}
print "Accounts created the last 20 minutes: ".$nr_rows;
}
0
По вопросам рекламы [email protected]