Я создал скрипт для получения всех строк, добавленных в 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, прежде чем спросить об этом здесь.
Заранее спасибо.
С этим:
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");
}
Вы перезаписываете свои переменные каждый раз, когда проходите цикл while. Попробуйте поместить оператор print в цикл while, например
Распечатать $ email. «
«;
напечатайте $ name. «
«;
распечатать телефон. «
«;
вместо использования print_r
Возможно, вы захотите добавить счетчик в ваш цикл и распечатать его тоже.
использование 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;
}