Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Aktualizacja użytkownika
Forum PHP.pl > Forum > Przedszkole
Na 5tyk
Witam. Mam taki kod:
  1. $data_dzisiaj = date('d.m.Y');
  2. $dzien_wczesniej = date('d.m.Y', strtotime('-1 day'));
  3.  
  4. $zapytanie2 = mysql_query("SELECT * FROM user");
  5. $row = mysql_fetch_row($zapytanie2);
  6.  
  7.  
  8.  
  9. if($data_dzisiaj > $dzien_wczesniej)
  10. {
  11. mysql_query("UPDATE user SET vip='0' WHERE data = '$dzien_wczesniej'");
  12. echo 'VIPy zaktualizowane!';
  13. }


I chciałbym aby w tabeli user ustawiał się vip na 0 o dacie wczorajszej. Ale niestety nic się nie dzieje.
Pokazuje się tylko VIPy zaktualizowane.

Czy jest jakiś błąd w zapytaniu?

@edit:
Po dodaniu: or die(mysql_error()); do zapytania nie wyskakuje żaden błąd.
nospor
1) if($data_dzisiaj > $dzien)
Nigdzie nie widze deklaracji zmiennej $dzien

2) UPDATE user SET vip='0' WHERE data = '$dzien_wczesniej'
Albo to zapytanie rzuca bledem - sprawdz
Albo warunek nie jest spelniony. Date do warunku dajesz w postaci d.m.Y a w bazie panie kolego w jakiej postaci masz zapisane?
Na 5tyk
Co do 1) to sam zauważyłem po dodaniu posta.

Co do 2) to warunek jest spełniony, ponieważ wyświetla się VIPy zaktualizowano.

Baza danych:


@edit.
Ale fail :/
Zap0mniałem, że VIPa kupuje się na miesiąc i że tak się zapisało w bazie... A próbuje zmienić na podstawie maja :/
Ale dzięki za pomoc
com
wyświetla bo wchodzi do warunku co nie znaczy że jest spełniony wink.gif
Na 5tyk
Już zauważyłem, że w bazie danych miałem wpisany czerwiec, a dopiero jest maj smile.gif
Dlatego nic się nie zmieniało.

MOżna zamknąć temat.
nospor
widze ze date masz w kosmicznym formacie.... data ma byc w bazie zapisana jako pole typu DATE, czyli format Y-m-d. ZMien to pole poki jeszcze mozesz, zaoszczedzisz sobie klopotow na przyszlosc.


Cytat
to warunek jest spełniony, ponieważ wyświetla się VIPy zaktualizowano.

facepalmxd.gif
Czyli jesli zrobie tak:

  1. mysql_query('Kochany mysql przywieź mi pizze na 10:00');
  2. echo 'Ok, ja mysql ci mowie, ze przywioze pizze o 10:00';

To wg ciebie oznaczac to bedzie, ze naprawde ci mysql przywiezie pizze o 10:00 ? Bo teraz Twoj kod wlasnie tak wyglada. wink.gif
Na 5tyk
A co jest złego w tym formacie daty? Dla mnie po prostu jest czytelniejszy.

Nie, MySQL wtedy nie przywiezie mi pizzy. Nie rozumiem dlaczego dałeś taki przykład.
Mój kod działa. Po prostu miałem w bazie danych czerwiec zamiast maja.
Turson
Cytat(Na 5tyk @ 5.05.2015, 11:23:09 ) *
A co jest złego w tym formacie daty? Dla mnie po prostu jest czytelniejszy.

Nie da się wg. niej na przykład operować. Spróbuj wyciągnąć rekordy z datą sprzed 3 miesięcy. Data w bazie nie musi byc czytelna, bo wyświetlając ją, możesz formatować jak chcesz
nospor
Cytat
A co jest złego w tym formacie daty? Dla mnie po prostu jest czytelniejszy.

To, ze jesli w bazie masz teraz to jako VARCHAR a nie DATE, to potem bedziesz mial problemy z operacjami na tych polach, z wyszukiwaniem itp...

Cytat
Nie, MySQL wtedy nie przywiezie mi pizzy. Nie rozumiem dlaczego dałeś taki przykład.
Mój kod działa. Po prostu miałem w bazie danych czerwiec zamiast maja.

To, ze wyswietlasz komunikat o zmianie bez sprawdzania czy sie powiodlo czy nie. A potem walisz na forum tekstem: "Przeciez sie wyswietla, wiec spelnione....".
Nie, nie spelnione, bo ty wyswietlasz bez warunkowo, niezaleznie czy spelnione czy nie.
Dlatego dalem ci przyklad z pizza: to ze widzisz na ekranie tekst, ze mysql ci przywiezie, nie znaczy ze tak bedzie....
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.