По какой-то причине я не могу заставить php / mysql сделать JOIN с опцией Между. Я снова что-то смотрю?
Когда я запускаю этот скрипт, все, что я получаю — это белая страница без ошибок ….?
Любые идеи помогут!
$start = date("m/1/Y");
$end = date("m/31/Y");
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=data.csv');
$output = fopen('php://output', 'w');
fputcsv($output, array('ID', 'P.O #', 'Date', 'To', 'Time', 'Vin', 'Reason', 'Amount', 'Employee #', 'Mananger', 'Account #', 'Store Location', 'Borrowed', 'verified','Adjustment','Adjustment by','','VOID','Emp Name'));
mysql_connect('*********', '**********', '***********');
mysql_select_db('donavons_car_scanner');
$rows = mysql_query('SELECT fpo.*, users.name FROM fpo WHERE date BETWEEN '" . $start . "' AND '" . $end . "' LEFT OUTER JOIN users ON (fpo.empnum = users.empnum)');
while ($row = mysql_fetch_assoc($rows)) fputcsv($output, $row);
Спасибо!
Вы положили JOIN
в неправильном месте, вы хотите объединить таблицы, прежде чем добавлять условия —
SELECT fpo.*, users.name
FROM fpo
LEFT OUTER JOIN users
ON (fpo.empnum = users.empnum)'
WHERE date BETWEEN '" . $start . "' AND '" . $end . "'
Вы должны действительно прекратить использование mysql_*
функции.** Они больше не поддерживаются и официально устарел. Узнать о готовые заявления вместо этого и ** использовать PDO.
В дополнение к ответу Джея (так как я не могу комментировать) ожидается дата mysql в гггг-мм-дд.
The DATETIME type is used for values that contain both date and time parts. MySQL retrieves and displays DATETIME values in 'YYYY-MM-DD HH:MM:SS' format. The supported range is '1000-01-01 00:00:00' to '9999-12-31 23:59:59'.
—http://dev.mysql.com/doc/refman/5.1/en/datetime.html
$start = date("m/1/Y");
$end = date("m/31/Y");
должно быть
$start = date("Y/m/1");
$end = date("Y/m/31");