Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem ze zmianą zawartości bazy
Forum PHP.pl > Forum > Przedszkole
Gość_grucha
Mam taki oto kod:
  1. <?php
  2. for($i=0;$i<$_SESSION['ilu'];$i++) {/*zmiana hasla rodzicow na wszystkich kontach*/
  3. echo $arr[$i].&#092;"<br>\";
  4. $query = mysql_query(&#092;"UPDATE `uczniowie` SET 
  5. `haslo_r` = '\".$nowe_haslo_rodzicow.\"' WHERE `id` = '\".$arr[$i].\"';&#092;");
  6. }/*koniec fora*/
  7.  
  8. ?>


w zmiennej $_SESSION['ilu'] jest zapisana ilość wierszy które musze zmienić
$arr to tablica z ID wybranych wierszy

Problem polega na tym że nie zmiany nie zapisują się w ostatnim wierszu, jeśli np. chce zmienic trzy wiersze to dwa bedą ok a w trzecim pusto.

Sprawdziłem w ten sposób:
  1. <?php
  2. for($i=0;$i<$_SESSION['ilu'];$i++) {/*zmiana hasla rodzicow na wszystkich kontach*/
  3.  
  4. $query = mysql_query(&#092;"UPDATE `uczniowie` SET 
  5. `haslo_r` = '\".$nowe_haslo.\"' WHERE `id` = '\".$arr[$i].\"';&#092;");
  6. If(query) echo $arr[$i].&#092;" \".$nowe_haslo.\"<br>\";
  7. }/*koniec fora*/
  8.  
  9. ?>


No i wyszło ze przy każdym wykonaniu petli zarówno tablica $arr jak i $nowe_haslo zwraca to co trzeba a ajednak nie działa

Jak by co to tabela wygląda nastepujaco:
  1. CREATE TABLE `uczniowie` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `login` varchar(50) NOT NULL DEFAULT '',
  4. `haslo` varchar(50) NOT NULL DEFAULT '',
  5. `login_r` varchar(50) NOT NULL DEFAULT '',
  6. `haslo_r` varchar(50) NOT NULL DEFAULT '',
  7. `imie` varchar(50) NOT NULL DEFAULT '',
  8. `nazwisko` varchar(50) NOT NULL DEFAULT '',
  9. `mama` varchar(50) NOT NULL DEFAULT '',
  10. `tata` varchar(50) NOT NULL DEFAULT '',
  11. `tel_dom` varchar(15) NOT NULL DEFAULT '',
  12. `tel_praca_mama` varchar(15) NOT NULL DEFAULT '',
  13. `tel_kom_mama` varchar(15) NOT NULL DEFAULT '',
  14. `tel_praca_tata` varchar(15) NOT NULL DEFAULT '',
  15. `tel_kom_tata` varchar(15) NOT NULL DEFAULT '',
  16. `klasa` varchar(5) NOT NULL DEFAULT '',
  17. `urodziny` date NOT NULL DEFAULT '0000-00-00',
  18. `imieniny` date NOT NULL DEFAULT '0000-00-00',
  19. `dodatkowe` text NOT NULL,
  20. PRIMARY KEY (`id`)
  21. ) TYPE=MyISAM AUTO_INCREMENT=3 ;
Kinool
w warunku petli for zamiast
  1. <?php
  2. for($i=0;$i<$_SESSION['ilu'];$i++)
  3. ?>
daj
  1. <?php
  2. for($i=0;$i<=$_SESSION['ilu'];$i++)
  3. ?>
lub
  1. <?php
  2. $ilu = $_SESSION['ilu']+1;
  3. for($i=0;$i<$ilu;$i++)
  4. ?>


powinno byc ok a dlaczego?? bo petala wykonywala sie do momentu gdy $i jest mniejsze od $_SESSION['ilu'] wiec ostatni raz pomija bo wtedy $i jest rowne $_SESSION['ilu']
Gość_grucha
Własnie problem w tym ze to nie takie proste.
Próbowałem już tego próbowałem tez ostatni wiersz zrobic poza forem i dalej nic.

Na dodatek skrypt nie pomija ostatniego wiersza tylko zmienia wartość na 0 a na innym serwerze na pustą.
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.