Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Pobranie daty z bazy danych
Forum PHP.pl > Forum > Przedszkole
marcinp1984
Witam serdecznie,

Mam mały problem, gdyż mnie mogę sobie poradzić z pobraniem daty z bazy :/ Mam takie coś jak poniżej

  1. $query = mysql_query('select `expiration_date` from `License` where `login`="marcin" and `template`="001" and `language`="pl"');
  2. $date = date('d-m-Y', strtotime($query."+ 6 month"));


Wynik jaki otrzymuję to 01-01-1970. Czemu?
StrefaPi
var_export($query)

mysql jest już przestarzały sprawdź PDO lub mysqli
SmokAnalog
Podstawy obsługi baz danych w PHP się kłaniają. Przerób jakiś tutorial po prostu.
marcinp1984
Jak dodałem var_export to wywalało błąd składniowy. Ale zamiast mysql_query dodałem mysqli_query i już jest trochę lepiej ale nie do końca. Aktualnie wyświetla mi bieżącą datę + 6 miesięcy a nie datę z bazy + 6 miesięcy :/
SmokAnalog
Bo tak się tego nie robi. mysqli_query nie zwraca wyniku w taki sposób. Umiesz debugować kod? Bo to, że teraz masz aktualną datę plus 6 miesięcy to totalny przypadek.
marcinp1984
Nie bardzo umiem smile.gif Firebag ma jakiś debuger chyba ale nie wiem czy to się do tego nadaje. Właśnie sęk w tym, że od początku miałem kłopot aby pobrać datę z bazy danych ale nie mogłem tego znaleźć. Jest pełno tematów odnośnie formatowania daty ale w przykładach nikt jej nie wyciąga z bazy tylko na sztywno wpisuje stringa jakiegoś.
Neutral
Używaj narzędzi developerskich wbudowanych w przeglądarkę. Firebug nie jest już chyba wspierany i/lub rozwijany.

https://hacks.mozilla.org/2017/10/saying-goodbye-to-firebug/
https://addons.mozilla.org/en-US/firefox/addon/firebug/

Tytuł mówi chyba sam za siebie.
SmokAnalog
Cytat(Neutral @ 11.12.2017, 01:25:00 ) *
Używaj narzędzi developerskich wbudowanych w przeglądarkę. Firebug nie jest już chyba wspierany i/lub rozwijany.

Ciekawe jak ma używać narzędzi wbudowanych w przeglądarkę do debugowania PHP. Nie wprowadzaj kolegi w błąd.

Przeglądarka nie wie nic o Twoim PHP, bo PHP się wykonuje po stronie serwera i tylko wypluwa wynik. Przeglądarka bawi się tylko z tym wynikiem. Dobrze byłoby ogarnąć takie podstawy.
viking
Firebug miał dodatek firephp. Kolejny powód dlaczego fb był lepszy pod każdym względem niż to co jest teraz.
marcinp1984
W sumie fakt, kiedyś instalowałem firebuga teraz w każdej przeglądarce jest jakieś narzędzie które wygląda podobnie smile.gif Bardziej nazwałem to z przyzwyczajenia. Ale nie zmienia to faktu, że tej daty pobrać mi to nie pomoże wink.gif
viking
Ale powinna dokumentacja http://php.net/mysqli_query
Cytat
Returns FALSE on failure. For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries mysqli_query() will return a mysqli_result object. For other successful queries mysqli_query() will return TRUE.


Mysqli result object http://php.net/manual/en/class.mysqli-result.php i np http://php.net/manual/en/mysqli-result.fetch-row.php
marcinp1984
Niestety nie pomaga... Gdybym znalazł coś co pomogłoby mi rozwiązać problem to nie zakładałbym tego tematu bo w pierwszej kolejności przez 2 godziny szukałem jakiegoś rozwiązania.
viking
Ale co nie pomaga? Pokaż kod po zmianach. Masz w dokumentacji pełny przykład jak potraktować query.
marcinp1984
W podanych przykład nawet łącznie z bazą danych wygląda inaczej niż jest to u mnie wykonane - zapewne u mnie jest to już przestarzałe bo wykonane było z 5 lat temu ale działa poprawnie i nigdy nie było problemów. Ja chcę tylko wyciągnąć datę bo do tej pory tego nie było a nie zmieniać cały kod. Jednak zupełnie nie wiem jak przełożyć to co jest w przykładach na to co ja potrzebuje - być może jest to proste ale dla osób, które działają w phpie i się dobrze w temacie orientują.
viking
Dodaj sobie zatem w samym zapytaniu https://dev.mysql.com/doc/refman/5.5/en/dat...unction_adddate
marcinp1984
Wróciło wszystko do punktu wyjścia tzn. wyświetla się 01-01-1970. Natomiast gdy zapytania użyje w phpMyAdmin to datę pokazuje sobie poprawną tak więc to chyba nie problem samego zapytania do bazy.
viking
W jakim formacie jest pole expiration_date i jakie daty do niego zapisujesz?
marcinp1984
Pole expiration_date jest polem typu data. Dodaję ja w sposób:
  1. $query = "INSERT INTO License VALUES ('".$pass."', '".$szablon."', '".$name."', NOW(), adddate(NOW(), interval 6 month))";


Przy dodawaniu wyświetlam ją

  1. $date = date('d-m-Y', strtotime($date."+ 6 month"));


Tu nie muszę wczytywać nic z bazy więc problemu nie mam.
nospor
pokaz dokladnie jak teraz pobierasz te $date z bazy bo ewidentnie ciagle zle...
viking
Już ci mówiłem wcześniej pogrubionym tekstem czym jest zmienna $query.
marcinp1984
  1. $query = mysqli_query('select DATE_ADD(`expiration_date`, INTERVAL 6 MONTH) from `License` where `login`="marcin" and `template`="dom_i_ogrod001" and `language`="pl" ');
  2.  
  3. $date = date('d-m-Y', strtotime($query));


Teraz gdy sobie sprawdziłem pod zmienna $query chyba jest pusta bo nic nie wyświetla tak więc nic dziwnego że zmienna $date przechowuje jakąś dziwną datę.
nospor
od poczatku w tym temacie ci pisano, ze nie tak sie pobiera wartosc z bazy... jak grochem o sciane
marcinp1984
No i od początku twierdzę, że nie wiem jak to zrobić. W googlach nic nie odnalazłem, linki do dokumentacji w niczym mi nie pomogą bo tak jak pisałem tam nawet inaczej wygląda połączenie z bazą i zupełnie nie wiem jak to ogarnąć na swoim przykładzie.
viking
Masz pełno przykładów jak to "ogarnąć": http://php.net/manual/pl/function.mysql-fetch-array.php
marcinp1984
No dobra to tera pytanie czemu mysql_fetch_array? To wynik pobrany z pola typu data musi być zapisany w tablicy?
viking
Może być w obiekcie. Wiedziałbyś to po przeczytaniu dokumentacji i tego co do ciebie mówię n-ty raz.
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.