Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pętla
Forum PHP.pl > Forum > PHP
Warmix
Mam takie coś:

  1. $result = mysql_query("SELECT user_id FROM phpbb_test");
  2. $res = mysql_fetch_assoc($result))
  3.  
  4. $test = $res['user_id'];
  5.  
  6. mysql_query("UPDATE ".USERS_TABLE." SET user_test=user_test+1 WHERE user_id='" . $test . "'";


W połowie działa to poprawnie. W tabeli phpbb_test mam kilka rekordów. Drugie zapytanie dodaje mi tylko +1 do usera, który jest pierwszy w tej tabeli phpbb_test. Jak napisać do tego pętle, aby dodawało +1 do wszystkich użytkowników, jacy są w tabeli phpbb_test?
cycofiasz
  1. mysql_query("UPDATE ".USERS_TABLE." SET user_test=user_test+1 ";



i nic więcej
Warmix
Ale ja nie chcę, aby każdemu użytkownikowi dodawało do tego pola +1, tylko tym, którzy są w tabeli phpbb_test, a w tej tabeli jest id użytkowników i chcę, aby jeżeli skrypt w tabeli phpbb_test znajdzie dane id, to dodaje w tabeli phpbb_users do pola user_test +1
cycofiasz
Ale jaki masz problem? Nie czytałeś o pętlach? Chyba zły dział wybrałeś.
Warmix
No właśnie, gdy próbuje zrobić takie coś:
  1. $result = mysql_query("SELECT user_id FROM phpbb_test");
  2. while($res = mysql_fetch_assoc($result)){
  3.  
  4. $test = $res['user_id'];
  5.  
  6. mysql_query("UPDATE ".USERS_TABLE." SET user_test=user_test+1 WHERE user_id='" . $test . "'");
  7. }


Wywala mi taki błąd:
Cytat
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource


A bez pętli tego błędu nie ma...
cycofiasz
Coś kręcisz. Pokaż kod bez pętli który działa poprawnie
ADeM
  1. mysql_query( "UPDATE " . USERS_TABLE . " SET user_test=user_test+1 WHERE user_id IN ( SELECT user_id FROM phpbb_test ) " );

Powinno śmigać.
Warmix
Działa poprawnie, bo do każdego usera w phpbb_users dodaje w polu user_test +1, ale gorzej jest, gdy w tabeli phpbb_test jest więcej razy ta sama wartość w polu user_id. Wtedy, jak np. jest w tabeli phpbb_test 2 razy id 2, to do pola user_test w tabeli phpbb_users dodać powinno +2, a dodaje +1. Co zrobić?
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.