2014-02-17 1 views
0

Я использую базу данных MySQL, обращаясь к ней через PHP, и я хочу, чтобы она не показывала более старые записи, чем сегодняшняя дата. У меня было чертовски время заставить его заказать их. У меня было это раньше, теперь это не так. Я их заказал ASC, по дате, отлично, но он все еще показывает старые записи. Я знаю, что мой PHP устарел, но любой метод будет работать для меня. Вот мой код.База данных по-прежнему показывает старые записи, когда у меня она установлена ​​не

Извините, если я оторвусь как полный диц. Я прихожу сюда, если не знаю, и я относительно новичок в этом, и всегда зависеть от дат.

До сих пор было предложено: Измените название столбца «дата». «дата» хранятся в виде даты-времени, а не в строке, так изменить, что Int

// this is where its set to show today and future dated entries 
$sql = "SELECT * FROM $db WHERE date >= '$today' ORDER BY date ASC" or die(mysql_error()); 

$getit = mysql_query ($sql, $conn); 

print "<br><b><font size=4>Appointments Coming Up</b></font>"; 
while($row = mysql_fetch_array($getit, MYSQL_ASSOC)) 
{ 
print "<br>"; 


$row[date] = date("D-M-d-Y", strtotime($row[date])); 
print "<br><font size=3><b>{$row['doctor']} at {$row['time']} {$row['ampm']} on  $row[date]</font>"; 

} 

решаемых Все, что я сделал изменить столбец даты в базе данных для «dateappt», и она работала. Спасибо всем за помощь.

+1

Какой тип данных столбца «дата» и какова стоимость '$ today'? Уверен, что ваши даты - это строки, а не фактические даты. –

+1

Будда смеется над теми, кто все еще использует '' тег –

+0

@ Дагон Он, должно быть, весь день смеется! – undone

ответ

1

Во-первых, «Дата» - это зарезервированное слово (чувствительность к регистру зависит), поэтому вы должны изменить имя этого столбца.

MySQL использует формат «YYYY-MM-DD» для дат, поэтому ваши форматы должны соответствовать этому (ваш $ today).

http://dev.mysql.com/doc/refman/5.0/en/using-date.html

Это может быть лучше для вас использовать временные метки.

Есть другие способы управления датами, хотя: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

+0

Спасибо за ссылки.У меня есть закладки, и я проверю их, когда буду бодрствовать. Я никогда не использовал временные метки, и раньше я работал над этим, я просто переделываю его для другого приложения. Еще раз спасибо. Даты всегда меня отбрасывают. Я изменю имя столбца даты на что-то еще, хорошо! (извините, n00b здесь) – sandorfalot

0

Вы должны проверить вас тип поля «дата» в MySQL, если это DateTime, вы меняете один на «ИНТ»

+0

Сохраняется как дата и время. – sandorfalot

0

Этот ответ принимаемой вы сохранили ваши даты как строки, так что, как представляется, вероятно, преступник.

Когда ваши даты хранятся в виде строк (char(), varchar()), а не фактические даты (date, datetime). Это означает, что они будут отсортированы как строки, а не даты. Итак, 12-31-2009 приходит после01-01-2014, потому что MySQL видит первый символ «0» и помещает его перед датой, начинающейся с «1». Когда вы используете правильный тип данных для ваших значений даты, MySQL затем сортирует их как даты, а не строки, а затем 12-31-2009 приходит до01-01-2014.

+0

В db он хранится как datetime, и является правильным, Y-m-d H: i: s, я просто перестроил его в распечатке. Я буду играть с ним завтра, я исчерпал себя сегодня вечером и совершил глупые ошибки. – sandorfalot

Смежные вопросы