Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] układanie wyniku według daty
Forum PHP.pl > Forum > Przedszkole
Monotematyczny
Siemka to znowu Ja ;p

Więc tak piszę sobie skrypt który ma mi układać rekordy według daty ale chciałbym aby w pierwszej kolejności pokazywał mi rekordy gdzie data to maks + 3 dni a dopiero potem następne.

w praktyce jak bym to chciał gdy dam instrukcje w zapytaniu ASC

2014-10-29 - ignorowany
2014-10-28 - ignorowany
2014-10-27 - ignorowany
2014-10-26 - ten trzeci
2014-10-25 - ten drugi
2014-10-24 - załóżmy że ta data jest dzisiejszą. i dlatego chciałbym aby ten rekord był wyświetlany jako pierwszy
2014-10-23 - to jest data przeszła więc chciałbym aby był pomijany przez skrypt
2014-10-22 - to jest data przeszła więc chciałbym aby był pomijany przez skrypt

zapytanie wygląda tak
  1. $results_new_relations = mysql_query("SELECT id, title, text, date, micro_img FROM new_relations ORDER BY date ASC LIMIT 3");


czy może coś w pętli while powinienem dodać np jakiś warunek ? proszę o sugestię....

  1. $results_new_relations = mysql_query("SELECT id, title, text, date, micro_img FROM new_relations ORDER BY date ASC LIMIT 3");
  2.  
  3.  
  4. echo "<div style='float: left; width: 318px;'>
  5. <div ><img style='margin-bottom: 1px; margin-top: 5px; margin-left: 50px;' src='img/09.png'></div> ";
  6.  
  7. while ($new_relations_panel = mysql_fetch_array($results_new_relations)) {
  8. if($new_relations_panel['date'] >= date("Y-m-d")){
  9. echo "<div class='el'>
  10. <div style='padding-top: 5px;'><div style='padding-left: 13px;float: left;'><img src='img/14.png'></div>
  11. <div style='float: left; margin-left: 4px;'>
  12. <div style='font-family: Arial; font-size: 11px; color: #FFFFFF;'><b>World cyber games 2012</b></div>
  13. <div style='width: 210px; line-height: 10px; font-family: Arial; font-size: 10px; color: #FFFFFF;'>12 już z kolei turniej gier multiplayer,który odbedzie sie w warszawie </div>
  14. <div style='width: 210px; font-family: Arial; font-size: 10px; color: #ff9600;'>Data: ".$new_relations_panel['date']." <font style='float: right; margin-right: 13px; color: #ff9600; font-size: 11px;'><b>Więcej...</b></font></div>
  15. </div>
  16. </div>
  17. <div style='clear: both; '><img style='margin-left: 11px; margin-top: 7px;' src='img/13.png'></div>
  18. </div>";
  19. }
  20. }
  21.  
  22.  
  23. echo "</div>


do tej pory zrobiłem takie coś ale jak wyżej widać pokaże mi tylko 2 wyniki ponieważ pobierajć 3 wyniki pobiera 3 pierwsze z bazy gdzie tylko 2 spełniają warunek więc mam dwa rekordy tylko wyświetlone jak sprawić aby już wcześniej mi stawiało taki warunek w zapytaniu bądź po sprawdzeniiu owego warunku mi wykonywało pętle razy 3 dopiero questionmark.gif
Damonsson
  1. SELECT id, title, text, date, micro_img FROM new_relations
  2. WHERE date >= CURDATE()
  3. ORDER BY date ASC
  4. LIMIT 3


Tak?
Monotematyczny
Dokładnie tak to zrobiłem kombinując na lewo i prawo wink.gif ale dzięki i tak za odpowiedź. Tylko zamiast CURDATE() użyłem daty odczytywanej z funkcji date() ale już poprawiłem na CURDATE()
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.