Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Masowa aktualizacja danych
alkesz1718
post
Post #1





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 8.12.2014
Skąd: Czernina

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


Witam,
Mam pewien problem z masową aktualizacją danych w bazie danych z poziomu skryptu php.
Mam przykładowo tabelę XXXX_users z struktórami jak:
- user_id
- name
- user_group
- time_limit
itd ale nie są one ważne tylko te co podałem.
Na stronie użytkownicy mają różne grupy (user_limit), niektórzy z nich daną grupę mają na określony czas (time_limit) i np.w bazie mam tak:
user_id | name | user_group | time_limit
1 | Admin |1 |
2 | Kowalski |3| 1651789500
3 | Nowak | 4 |
4 | Somsiad | 3 | 1851789500

teraz potrzebuję że jeśli wartość time_limit jest więsze niż 0/NULL ale mniejsze niż aktualna data to wartość user_group zmieni się tylko dla tej 1 osoby.

Napisałem taki kod:
  1. if ($row['time_limit'] > 0 ){
  2. $date_now = date("Y-m-d H:i");
  3. $limit = $row['time_limit'];
  4. if ($date_now > $limit) {
  5. $db->query( "UPDATE " . PREFIX . "_users SET user_group = '4', time_limit = '' ");
  6. }
  7. }


Kod ogólnie działa ale zmienia mi wartość user_group dla wszystkich użytkowników i pytanie jak zrobić by nie zmieniało mi wartość wszystkim użytkownikom a tylko tym co posiadają wartość time_limit który się "skończył"
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
phpuser88
post
Post #2





Grupa: Zarejestrowani
Postów: 66
Pomógł: 1
Dołączył: 4.05.2019
Skąd: PHP5.6

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


W bazie masz unix date więc w PHP nie spełnisz ostatniego warunku. Pamiętaj też, że warunki PHP nie określają warunków zapytania SQL więc warunek WHERE jest konieczny jak już zostało wspomniane wyżej. (IMG:style_emoticons/default/wink.gif)
  1. if ($row['time_limit'] > 0 ){
  2. $date_now = date("Y-m-d H:i");
  3. $date_now = strtotime($date_now);//konwert na unix
  4. $limit = $row['time_limit'];
  5. if ($date_now > $limit) {//lub strtotime() > $limit
  6. $db->query( "UPDATE " . PREFIX . "_users SET user_group = '4', time_limit = '' WHERE ... ");
  7. }
  8. }


Ten post edytował phpuser88 7.05.2022, 13:34:54
Go to the top of the page
+Quote Post

Posty w temacie


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: 26.12.2025 - 15:10