Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Wyświetlanie danych z bazy MySQL zgodnie z datą
brzanek
post
Post #1





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

Ostrzeżenie: (0%)
-----


Witam robię stronę bazującą na najnowszym silniku CMS PHP-Fusion v9 stworzyłem dla własnych potrzeb wtyczkę do wydawania prognozy pogody dla danego dnia. Po stronie administratora wszystko działa to jak powinno. Wydawanie pogody dla danego dnia działa wszystko zapisuje się w bazie danych. Problem jest tylko z wyświetlaniem tego na stronie głównej. Jeśli dam prognozę pogody na dzisiaj, na jutro i na pojutrze to na stronie głównej pojawi mi się ta najnowsza, czyli już na pojutrze, bo wszystko wyświetla mi się po najnowszym id. Jak zrobić, aby pogoda na stronie głównej pojawiała się dla odpowiadającej w tej chwili daty. Czyli nie po id a po odpowiedniej dacie.
Wiem, że trzeba coś pokombinować w zapytaniu, ale nie bardzo wiem jak to ugryźć.
Tak wygląda zapytanie do wyświetlania.
  1. $result = dbquery(
  2. "SELECT d.*, u.user_id, u.user_name, u.user_status
  3. FROM ".DB_PROGNOZADZIEN." d
  4. LEFT JOIN ".DB_USERS." u ON u.user_id=d.user
  5. ORDER BY obszar_id DESC LIMIT 1"
  6. );

To powoduje wyświetlanie pogody z najnowszym id
Dodawałem też coś takiego

[/php]WHERE obszar_id > DATE(DATE_SUB(NOW(), INTERVAL 1 DAY)) AND obszar_dzien <[php]
Ale nic to nie dawało.

A takie mam pola w bazie danych.
  1. $inf_newtable[1] = DB_PROGNOZADZIEN." (
  2. obszar_id smallint(5) unsigned NOT NULL auto_increment,
  3. user MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',
  4. obszar_dzien VARCHAR(40) DEFAULT '0' NOT NULL,
  5. obszar_atemp VARCHAR(20) DEFAULT '0' NOT NULL,
  6. obszar_awiatr VARCHAR(20) DEFAULT '0' NOT NULL,
  7. obszar_akierunek VARCHAR(20) DEFAULT '0' NOT NULL,
  8. obszar_astopien VARCHAR(20) DEFAULT '0' NOT NULL,
  9. obszar_aikona VARCHAR(20) DEFAULT '0' NOT NULL,
  10. obszar_tekst VARCHAR(550) NOT NULL default '',
  11. obszar_autor VARCHAR(20) DEFAULT '0' NOT NULL,
  12. PRIMARY KEY (obszar_id)
  13. ) ENGINE=MyISAM";


Proszę o pomoc.
Go to the top of the page
+Quote Post
arzach
post
Post #2





Grupa: Zarejestrowani
Postów: 332
Pomógł: 6
Dołączył: 27.11.2008

Ostrzeżenie: (0%)
-----


W kolumnie obszar_dzień masz datę (IMG:style_emoticons/default/questionmark.gif) ?
Jak tak to typ powinien być
obszar_dzien DATE NOT NULL DEFAULT '0000-00-00, a nie VARCHAR

  1. WHERE obszar_dzien = CURDATE()


Takie coś wyświetli z dziś
Go to the top of the page
+Quote Post
brzanek
post
Post #3





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

Ostrzeżenie: (0%)
-----


Tylko jest mały problem bo data zapisuje mi się w bazie w takiej postaci np. 01 Marca 2015 a nie w formie 2015-03-01
Go to the top of the page
+Quote Post
ilidir
post
Post #4





Grupa: Zarejestrowani
Postów: 183
Pomógł: 14
Dołączył: 27.09.2014

Ostrzeżenie: (0%)
-----


no to zastosuj konwesje daty (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
brzanek
post
Post #5





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

Ostrzeżenie: (0%)
-----


Cytat(ilidir @ 1.03.2015, 14:09:39 ) *
no to zastosuj konwesje daty (IMG:style_emoticons/default/smile.gif)

No to pomogłeś mi słyszałem o tym ale jak to wszystko połączyć w bazach danych jestem laikiem i nie wiem jak to ugryźć dlatego potrzeba mi wasza pomoc.
Go to the top of the page
+Quote Post
ilidir
post
Post #6





Grupa: Zarejestrowani
Postów: 183
Pomógł: 14
Dołączył: 27.09.2014

Ostrzeżenie: (0%)
-----


poczytaj to http://www.w3schools.com/sql/sql_dates.asp
Go to the top of the page
+Quote Post
brzanek
post
Post #7





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

Ostrzeżenie: (0%)
-----


Dobra to już udało mi się zrobić ale teraz jak zamienić ten uzyskany format 2015-03-01 na 01-03-2015 albo na 01 Marzec 2015
Taki mam kod
  1. $result = dbquery(
  2. "SELECT d.*, obszar_dzien
  3. FROM ".DB_PROGNOZADZIEN." d
  4. WHERE obszar_dzien = CURDATE()
  5. ORDER BY obszar_id DESC LIMIT 1"
  6. );
  7. $rows = dbcount("(obszar_id)", DB_PROGNOZADZIEN);
  8. if ($rows) {
  9. while($data = dbarray($result)) {
  10.  
  11. echo "<h4>Dzień ".$data['obszar_dzien']."</h4>";
  12. }
  13. }
Go to the top of the page
+Quote Post
ilidir
post
Post #8





Grupa: Zarejestrowani
Postów: 183
Pomógł: 14
Dołączył: 27.09.2014

Ostrzeżenie: (0%)
-----


widać że nie czytałeś tego co napisałem więc przeczytaj to http://www.w3schools.com/sql/func_date_format.asp
Go to the top of the page
+Quote Post
brzanek
post
Post #9





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

Ostrzeżenie: (0%)
-----


To ja rozumiem tylko nie wiem jak to umieścić w kodzie php.
Go to the top of the page
+Quote Post
ilidir
post
Post #10





Grupa: Zarejestrowani
Postów: 183
Pomógł: 14
Dołączył: 27.09.2014

Ostrzeżenie: (0%)
-----


jak rozumiem chcesz to umiescic w zapytaniu SQL tak ?
Go to the top of the page
+Quote Post
brzanek
post
Post #11





Grupa: Zarejestrowani
Postów: 429
Pomógł: 0
Dołączył: 8.11.2012

Ostrzeżenie: (0%)
-----


Już po problemie metodą prób i błędów doszedłem dzięki za pomoc.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 23:25