Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z update recordów w petli
Forum PHP.pl > Forum > PHP
Skiper
  1. $sql = "SELECT Item FROM Inv WHERE SID=? AND Slot BETWEEN ? AND ?";if(!( $stmt = sqlsrv_query($conn1,$sql, array($petinv_Data, $petinv_slot_a,$petinv_slot_b))))die( print_r( sqlsrv_errors(), true));
  2.  
  3. if(sqlsrv_has_rows($stmt) <> "0")
  4. {
  5.  
  6. while( $row = sqlsrv_fetch_array ( $stmt ) )
  7. {
  8. echo ''.$row['Item'].'<br />';
  9.  
  10. $sql = "UPDATE Inv SET Item=? WHERE SID=? AND Slot BETWEEN 0 AND 27";
  11.  
  12. $params = array($row['ItemID'], $petinv_Data);
  13. $stmtt = sqlsrv_query( $conn1, $sql, $params);
  14. if( $stmtt === false ) {
  15. die( print_r( sqlsrv_errors(), true)); }
  16.  
  17. }


Moj problem polega na tym że za każdym skrypt wszędzie robi update tylko ostatniego rekordu jaki zwraca $row['Item'].

Chciałbym aby zrobiło update dokladnie tak samo jak się wyswietla echo $row['Item'] czyli wszystkie rekordy a nie ostatni.
nospor
update robi sie tyle razy ile wyswietla sie twoje echo. Ino ze tak robisz update, ktory zawsze leci po wszystkich rekordach, a przez co ostatni goruje.

ps: poza tym twoje zapytanie jest bez sensu jeszcze z jednego powodu: pobierasz rekordy z Inv a potem robisz update znowu w Inv na to samo Item. Gdzie sens i logika?
Skiper
Pobieram rekordy z Inwa ale ale gdzie slot= 28 i 55

tle ze tutaj 28 i 55 :

petinv_slot_a = 28;
petinv_slot_b = 55l

wieć w echo mam np.:

row['slot_28'] = 2345;
row['slot_29'] = 3643;
i tak do 55.

chce zkopiować dane z slotów pomiędzy 28 - 55 do slotów między 0 - 27. Taka logika. smile.gif I dodatkowo rekordy są inne przy kazdym slocie.
nospor
Cytat
chce zkopiować dane z slotów pomiędzy 28 - 55 do slotów między 0 - 27. Taka logika
Ok, ale nie skupiles sie na calym moim poscie.... Napisalem, ze robisz warunek dla UPDATE ktory lyka caly zakres rekordow, a nie pojedynczy rekord. O tutaj:
AND Slot BETWEEN 0 AND 27
wiez za kazdym update zmieniasz wszystkie sloty pomiedzy 0 a 27 aktualna wartoscia z petli, wiec na koniec petli wszytstkie rekordy od 0 do 27 beda mialy ostatnia wartosc z petli. Musisz robic UPDATE dla konkretnego slotu a nie dla grupy slotow.....
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.