Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]problem z poleceniem UPDATE
-Tobson-
post
Post #1





Goście







rzecz w tym , ze siedze siedze i naprawde juz nie wiem , jest baza sa tabele itd, jest stronka, operuje sobie na tym, robie cos na ksztal sklepu internetowego, wszystko gra poza jednym, mianowicie kompletnie nie moge sobie poradzic z tym updatem :

  1. <?php
  2. $pom=$row['ilosc_rozm_kosz'];
  3. $wynik= $pom - $losc_zam_produktow;
  4. $id_wyniku=$row['id'];
  5. $uaktualnij= " UPDATE dane_koszulek SET ilosc_rozm_kosz='$wynik' WHERE id='$id_wyniku' ";
  6. $upgrade=mysql_query($uaktualnij) or die(" blad piaty");
  7. ?>


ciągle wyświetla ten blad piaty , albo jak kombinuje z innymi zapisami itd to bledy ze skladnia, ten przyklad ktory wkleilem , wydaje mi sie najmniej konfliktowy , ale to nie znaczy ze nie probowalem innych , naprawde mam juz tego dosyc nie mam pojecia co jest nie tak, moze błąd tkwi gdzie indziej, głebiej , bede ogromnie wdzieczny za wszelkie sugestie , z gory dzieki za pomoc ! Co trzeba to dokleje i pokaże, jesli może to pomoc. Pozdro (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif)
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
Cienki1980
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


Zastosuj mysql_error" title="Zobacz w manualu PHP" target="_manual i może coś się wyjaśni.
Go to the top of the page
+Quote Post
blooregard
post
Post #3


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Nie bardzo widzę błąd w zapytaniu, tkwi on zapewne w zmiennych wstawianych do niego. Ja w takich przypadkach robię tak:

-wyświetlam sobie na stronie kwerendę SQL (juz tę gotową), u Ciebie będzie to echo $uaktualnij; wstawione ZA linijką z kwerendą

-jeśli juz na pierwszy rzut oka widać, że coś jest nie tak (np. w miejsce spodziewanej wartości zmiennej w kwerendzie masz puste miejsce) - szukasz dalej:wyświetlasz sobie wartość zmiennej PRZED kwerendą, jeśli i tam coś jest nie tak, idziesz do miejsca, gdzie na zmiennej dokonujesz jakiejś operacji i tam ją wyświetlasz itd. Nie ma siły - w końcu znajdziesz moment powstawania błędu

-jeśli kwerenda jest ok, kopiujesz ją i wklejasz sobie bezpośrednio w okienko wykonywania zapytań SQL w phpmyadminie (zakładam, że z niego korzystasz) - i wykonujesz ją. Tak eliminujesz z kolei błędy składniowe bądź literówki w samej kwerendzie - phpmyadmin wywala błąd wraz z w miarę szczegółowym opisem

Tym sposobem jestem w stanie namierzyć 99% błędów w każdej pisanej aplikacji (reszta to literówki, drobne błędy składni itp.)

Jeśli to nie pomoże, pisz. Będziemy myślec dalej.
Go to the top of the page
+Quote Post
-Tobson-
post
Post #4





Goście







yhm, na początek poszedłem za radą Cienkiego1980 i zrobiłem tak :

  1. <?php
  2. $pom=$row['ilosc_rozm_kosz'];
  3. $wynik= $pom - $losc_zam_produktow;
  4. $id_wyniku=$row['id'];
  5. $uaktualnij= " UPDATE `dane_koszulek` SET `ilosc_rozm_kosz`='$wynik' WHERE `id`='$id_wyniku';";
  6.  
  7. echo "<BR>";
  8. echo mysql_errno($uaktualnij) . ": " . mysql_error($uaktualnij). "\n";
  9. $upgrade=mysql_query($uaktualnij) or die(" blad piaty");
  10. ?>


co zaowocowało takim wynikiem :
Kod
Warning: mysql_errno(): supplied argument is not a valid MySQL-Link resource in C:\WebServ\httpd\lic\zamow.php on line 38

Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource in C:\WebServ\httpd\lic\zamow.php on line 38


nie wyskoczył komunikat o błedzie, ale przy tym zapisie zapomniałem dodać , że on ogólnie nie występuje, po prostu wartość w bazie sie nie zmienia i w tym cały ból. Słuchajcie , a jak upewnić się , że opcje dotyczące relacyjności w bazie sa ustawione dobrze? bo rzuciłem okiem i chyba przyczyna tkwi w tym własnie , że (używam zgadza sie- phpmyadmina ) po kliknieciu w zakladke bazy danych operacje u dołu jest komunikat o błędzie :

Kod
Błąd
Dodatkowe możliwości pracy z połączonymi tabelami zostały wyłączone. Aby dowiedzieć się, dlaczego - kliknij tutaj.


po kliknieciu "tutaj" :

Kod
PMA Database ... błąd[ Dokumentacja ]
Ogólne funkcje relacyjne wyłączone


hm??
Go to the top of the page
+Quote Post
Cienki1980
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


Połowicznie poszedłeś za moją radą .. Jakbyś dokładnie przeczytał zawartość pod linkiem który podałem zobaczyłbyś, że najpierw jest mysql_query() a dopiero potem mysql_error(); Popraw i zobacz czy teraz coś się pojawi.
Go to the top of the page
+Quote Post
-Tobson-
post
Post #6





Goście







nie no ja odrobiłem pracę domową hehe , bo sprawdziłem jakies 10 róznych kombinacji i ustawien, wyczytalem , ze chodzi o ostatnią wykoną nad tym polceniem/poleceniami (biorąc pod uwage zarówno $uaktulnij, jak i $upgrade) własnie , bo nie byłem pewien czy jest jakas różnica odnośnie kolejności i tego którą wziąć pod uwagę, no wiec róznicy nie ma żadnej :/
Go to the top of the page
+Quote Post
Cienki1980
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


Zrób echo $uaktualnij; i pokaż co się pokazało ... ten kod dodaj zaraz po mysql_query($uaktualnij); .. tam będzie najbezpieczniej.
Go to the top of the page
+Quote Post
rodia
post
Post #8





Grupa: Zarejestrowani
Postów: 21
Pomógł: 5
Dołączył: 29.07.2008

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


Nie ma tu kodu odpowiedzialnego załączeni z bazą, zakladam, ze go sprawdizles i dziala. Czy na pewno wybrałeś baze na ktorej pracyjesz mysql_select ... (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
-Tobson-
post
Post #9





Goście







  1. UPDATE `dane_koszulek` SET `ilosc_rozm_kosz`='100' WHERE `id`='1';


wyglada na to ze "nie widzi " zmiennej $losc_zam_produktow ($ilosc_rozm_kosz rowna jest 100 własnie), a $ilosc_zam_produktow=45, $wynik więc powinien być równy 55 , ale jak to wszystko obojętnie w jakiej postaci dam czy te przypisania czy jako pola z tabeli czy jak , to jak echem dam to na ekran to wszystko sie wyswietla bez problemu... .
Go to the top of the page
+Quote Post
-Tobson-
post
Post #10





Goście







Cytat(rodia @ 30.09.2008, 21:22:16 ) *
Nie ma tu kodu odpowiedzialnego załączeni z bazą, zakladam, ze go sprawdizles i dziala. Czy na pewno wybrałeś baze na ktorej pracyjesz mysql_select ... (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

jasne, pominąłem to, ale z tym wszystko gra.
Go to the top of the page
+Quote Post
tomm
post
Post #11





Grupa: Zarejestrowani
Postów: 142
Pomógł: 28
Dołączył: 7.04.2008

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


zrób tak i wrzuć tu wynik:

<?php
$pom=$row['ilosc_rozm_kosz'];
$wynik= $pom - $losc_zam_produktow;
$id_wyniku=$row['id'];
$uaktualnij= " UPDATE dane_koszulek SET ilosc_rozm_kosz='$wynik' WHERE id='$id_wyniku' ";

echo $uaktualnij;
$upgrade=mysql_query($uaktualnij) or die(mysql_error());
?>
Go to the top of the page
+Quote Post
-Tobson-
post
Post #12





Goście







Cytat(tomm @ 30.09.2008, 21:36:54 ) *
zrób tak i wrzuć tu wynik:

<?php
$uaktualnij= " UPDATE dane_koszulek SET ilosc_rozm_kosz='$wynik' WHERE id='$id_wyniku' ";

echo $uaktualnij;
$upgrade=mysql_query($uaktualnij) or die(mysql_error());
?>


robiłem tak, jest dokładne tak ja opisałem wyżej :/
Go to the top of the page
+Quote Post
rodia
post
Post #13





Grupa: Zarejestrowani
Postów: 21
Pomógł: 5
Dołączył: 29.07.2008

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


Aby sie upewnić, że błąd jest w kwerendzie to wyświetl tą kwerendę tak jak już to robiles, skopiuj do schowka i wykonaj ją bezpośrednio w phpMyAdmin - tam jest link SQL - można wkleić kwerende. - jeśli tam sie wykona to znaczy, że kwerenda jest OK.
Go to the top of the page
+Quote Post
-Tobson-
post
Post #14





Goście







sorry , za nie scalanie wiadomosci,a le jestem gościem póki co tym forum i chyba z tego co widzę , nie mam takiej możliwosci, chcialem tylko wspomnieć , że sprawę z relacyjnością naprawiłem , więc to nie to , bo wciąż jest lipa.
Go to the top of the page
+Quote Post
tomm
post
Post #15





Grupa: Zarejestrowani
Postów: 142
Pomógł: 28
Dołączył: 7.04.2008

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


a skąd bierzesz $losc_zam_produktow bo wychodzi że tam jest 0?
Go to the top of the page
+Quote Post
-Tobson-
post
Post #16





Goście







Cytat(tomm @ 30.09.2008, 21:55:26 ) *
a skąd bierzesz $losc_zam_produktow bo wychodzi że tam jest 0?


no własnie tam tylko tak wychodzi , generalnie jak zechce to wyswietlic , to normalnie sie wyswietla wartosc tej zmiennej , a jest to zmienna przekazywana do skryptu z formularza za pomocą metody POST , właśnie chyba nalezałoby iść tym tropem , bo nie wiem dlaczego w zapytaniu sql wychodzi zero a w skrypcie jak obok tego zapytania nawet wyswietle to wyswietla sie aktualna wartosc tej zmiennej . co do tego co napisales RODIA to kwerenda sie wykonuje , nie zwraca blędów, tylko nie modyfikuje też tego pola które chce by modyfikowala :/
Go to the top of the page
+Quote Post
tomm
post
Post #17





Grupa: Zarejestrowani
Postów: 142
Pomógł: 28
Dołączył: 7.04.2008

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


a spróbuj tak:

$uaktualnij= 'UPDATE dane_koszulek SET ilosc_rozm_kosz='.($pom - $_POST['przekazana_zmienna']).' WHERE id='.$id_wyniku;
Go to the top of the page
+Quote Post
-Tobson-
post
Post #18





Goście







Cytat(tomm @ 30.09.2008, 22:15:12 ) *
a spróbuj tak:

$uaktualnij= 'UPDATE dane_koszulek SET ilosc_rozm_kosz='.($pom - $_POST['przekazana_zmienna']).' WHERE id='.$id_wyniku;



działa:D! Wielkie dzięki ! Teraz działa, myślałem ,że próbowałem wszystkiego (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) , ale przyznaję ,że taką notację tych apostrofów pierwsze widzę , możesz mi powiedzieć właściwie dlaczego teraz zadziałało?? Pozdro i dzięki wszystkim za pomoc:) !
Go to the top of the page
+Quote Post
tomm
post
Post #19





Grupa: Zarejestrowani
Postów: 142
Pomógł: 28
Dołączył: 7.04.2008

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


taka notacja jest szybsza (choć w tym przypadku nie ma to zbyt wielkiego znaczenia ale przynajmniej dobre przyzwyczajenie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ), ciągi nie są przeszukiwane pod względem zawierania zmiennych, same zmienne są dołączane za pomocą konkatenacji czyli zwykłej kropki

dlaczego zadziałało? myślę że błąd był gdzieś w kodzie którego nie pokazałeś
Go to the top of the page
+Quote Post
Cienki1980
post
Post #20





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

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


Cytat(Tobson @ 30.09.2008, 23:20:53 ) *
...możesz mi powiedzieć właściwie dlaczego teraz zadziałało?? Pozdro i dzięki wszystkim za pomoc:) !


Pewnie dlatego że zostało wykorzystane poprawnie pobranie zmiennej z formularza za pomocą $_POST. Nikt wcześniej nie zwrócił uwagi i nie zapytał skąd bierzesz zmienne, wszyscy się skupili na "błędnym" zapytaniu które błędne nie było.

Ten post edytował Cienki1980 1.10.2008, 07:48:35
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 22.08.2025 - 17:43