Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Uaktualnianie bazy
Forum PHP.pl > Forum > PHP
rafal_
Witam

  1. for ($k=$aa; $k<=$bb; $k++) {
  2. $j=$k+1;
  3. $e="UPDATE wybor SET numer=$j WHERE numer=$k AND jezyk='$jezyk';";
  4. @mysqli_query ($dbc,$e);
  5. }



Co tu jest nie tak?
Uaktualnia mi rekordy, ale ostatnią pozycją, tj. jeżeli $aa=2, $bb=5 to uaktualni mi rekordy, gdzie numery są od 2 do 5, ale uaktualni mi wszystkie na 6.

Chciałem zrobić to trochę inaczej żeby zobaczyć co się po kolei dzieje, ale nie rozumiem w czym jest problem. worriedsmiley.gif
  1. for ($k=$aa; $k<=$bb; $k++) {
  2. $j=$k+1;
  3. $e[] = "UPDATE wybor SET numer=$j WHERE numer=$k AND jezyk='$jezyk';";
  4. }
  5. echo '<pre>';
  6. print_r($e);
  7. echo '</pre><br />';

W tym miejscu wyswietla mi:
  1. UPDATE wybor SET numer=3 WHERE numer=2 AND jezyk='PL';
  2. UPDATE wybor SET numer=4 WHERE numer=3 AND jezyk='PL';
  3. UPDATE wybor SET numer=5 WHERE numer=4 AND jezyk='PL';
  4. UPDATE wybor SET numer=6 WHERE numer=5 AND jezyk='PL';

  1. foreach ($e as $klucz => $wartosc){
  2. @mysqli_query ($dbc,$wartosc);
  3. }

Uaktualniona tabela wygląda tak:
Numer
1
6
6
6
6
nospor
$e[] = ...
nie wiem wiec czemu ty potem twardo korzystasz z $t smile.gif

ps:
Zastosuj się proszę do podanych tu porad:
Temat: Jak poprawnie zada pytanie
VGT
Moj typ:

w pierwszej iteracji 2 zmieniasz na 3, w drugiej interacji, gdy 3 chcesz zmienic na 4, to juz masz dwie trojki do zwiekszenia.
Problem sie naklada i w efekcie w kolejnych iteracjach wszystkie liczby zwiekszyles do najwiekszej planowanej

Rozwiazanie:

- przy UPDATE rekordy powinienes identyfikowac po czyms co jest unikalne i niezmienne (jakis id)

- opcjonalnie da sie zostac przy aktualnym sposobie: jesli wiesz ze zawsze bedziesz je powiekszal, powinienes zaczac od najwiekszej.
w sensie 5 na 6, potem 4 na 5 itd.
rafal_
Cytat(nospor @ 7.04.2010, 14:34:08 ) *
$e[] = ...
nie wiem wiec czemu ty potem twardo korzystasz z $t smile.gif

ps:
Zastosuj się proszę do podanych tu porad:
Temat: Jak poprawnie zada pytanie


Już zmieniłem wszędzie na $e.

Zastosowałem się do porad, nic nie zwraca błędów.

  1. foreach ($e as $klucz => $wartosc){
  2. $wartosc //dodałem jeszcze to i do tego momentu wszystko jest OK
  3. @mysqli_query ($dbc,$wartosc);
  4. }
nospor
Kod
Zastosowałem się do porad, nic nie zwraca błędów.
a strasznie zes sie zastosowal. Bylo tam napisane bys malp @ nie uzywal a ty nadal uzywasz. Pewnie innych rzeczy też nie wcieliłes w zycie.

VGT napisał bardzo ciekawe wyjasnienie. Sprawdziłeś je?
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.