Не отображаются результаты при использовании BETWEEN с JOIN php / mysql

По какой-то причине я не могу заставить 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);

Спасибо!

-2

Решение

Вы положили JOIN в неправильном месте, вы хотите объединить таблицы, прежде чем добавлять условия —

SELECT fpo.*, users.name
FROM fpo
LEFT OUTER JOIN users
ON (fpo.empnum = users.empnum)'
WHERE date BETWEEN '" . $start . "' AND  '" . $end . "'

Вы должны действительно прекратить использование mysql_* функции.** Они больше не поддерживаются и официально устарел. Узнать о готовые заявления вместо этого и ** использовать PDO.

1

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

В дополнение к ответу Джея (так как я не могу комментировать) ожидается дата 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");
1