Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Aktualizacja użytkownika
Na 5tyk
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 9.01.2013

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


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.

Ten post edytował Na 5tyk 5.05.2015, 08:22:19
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




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?
Go to the top of the page
+Quote Post
Na 5tyk
post
Post #3





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 9.01.2013

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


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:
(IMG:http://iv.pl/images/82248502904911467802.jpg)

@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

Ten post edytował Na 5tyk 5.05.2015, 08:26:21
Go to the top of the page
+Quote Post
com
post
Post #4





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


wyświetla bo wchodzi do warunku co nie znaczy że jest spełniony (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
Na 5tyk
post
Post #5





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 9.01.2013

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


Już zauważyłem, że w bazie danych miałem wpisany czerwiec, a dopiero jest maj (IMG:style_emoticons/default/smile.gif)
Dlatego nic się nie zmieniało.

MOżna zamknąć temat.
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




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.

(IMG:style_emoticons/default/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. (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
Na 5tyk
post
Post #7





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 9.01.2013

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


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.
Go to the top of the page
+Quote Post
Turson
post
Post #8





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


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
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




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....
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: 7.10.2025 - 07:42