Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z update recordów w petli
Skiper
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 10.01.2013

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


  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.

Ten post edytował Skiper 22.10.2013, 22:21:41
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




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?
Go to the top of the page
+Quote Post
Skiper
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 10.01.2013

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


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. (IMG:style_emoticons/default/smile.gif) I dodatkowo rekordy są inne przy kazdym slocie.

Ten post edytował Skiper 23.10.2013, 16:11:24
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




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.....
Go to the top of the page
+Quote Post

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: 4.10.2025 - 03:38