Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem Z Zapytaniem Update
Fibolg
post 28.08.2004, 11:49:38
Post #1





Grupa: Zarejestrowani
Postów: 123
Pomógł: 0
Dołączył: 1.12.2003
Skąd: Chełmno

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


Mam sobie skrypcik, który dostaje dane z formularza metodą post i ma poleceniem UPDATE zmienić pola LOGIN i KONTROLNE, jeżeli pole HASLO nie zostało zmienione:
  1. <?php
  2. $gologin = $_POST['gologin'];
  3. $gohaslo = $_POST['gohaslo'];
  4. $coded = md5($gohaslo);
  5. $wybor = $_POST['wybor'];
  6. $id = $_POST['goid'];
  7. echo(&#092;"$id<BR>\");
  8. echo(&#092;"$gologin<BR>\");
  9. echo(&#092;"$gohaslo<BR>\");
  10. echo(&#092;"$wybor<BR>\");
  11.  
  12.  
  13. include(&#092;"dbconf.php\");
  14. mysql_connect($hostname,$dbuser,$dbpassword);
  15. mysql_select_db($dbname);
  16.  
  17. $sprawdzhaslo = &#092;"SELECT haslo FROM logowanie WHERE ID='$id'\";
  18. $wykonaj = mysql_query ($sprawdzhaslo);
  19. $hasloztabeli = mysql_fetch_array($wykonaj);
  20. $spradwdzidkontrolne=&#092;"SELECT id FROM kontrolne WHERE status='$wybor'\";
  21. $wykonaj = mysql_query ($spradwdzidkontrolne);
  22. $idkontrolnetab = mysql_fetch_array($wykonaj);
  23. $idkontrolne=$idkontrolnetab[0];
  24. echo(&#092;"$idkontrolne<BR>\");
  25. IF ($hasloztabeli[0]=$gohaslo){
  26. $modyf1 = &#092;"UPDATE logowanie SET login='$gologin', kontrolne='$idkontrolne' WHERE id=$id\";
  27. $wykonaj = mysql_query ($modyf1);
  28. $modyfikacja1 = mysql_fetch_array($wykonaj);}
  29.  
  30. ?>

Naturalnie to dopiero pierwsza opcja, jednak wypisuje mi na stronie coś takiego:

Cytat
1
admin0
1a1dc91c907325c69271ddf0c944bc72
Administrator
1

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\usr\apache\httpd\html\project\chuser.php on line 28

Jak widać dane przesyłane są prawidłowo, więc problem prawdopodobnie z zapytaniem :/
  1. UPDATE logowanie SET login='$gologin', kontrolne='$idkontrolne' WHERE id=$id
Ten warning z tego co wiem oznaczać może wszystko a mi brak już pomysłów :/
Oto wygląd tych dwóch tabeli:
  1. CREATE TABLE IF NOT EXISTS LOGOWANIE (
  2. ID SMALLINT(6) NOT NULL AUTO_INCREMENT,
  3. LOGIN VARCHAR(20) NOT NULL,
  4. HASLO VARCHAR(32) NOT NULL,
  5. KONTROLNE SMALLINT(2) NOT NULL,
  6. PRIMARY KEY (ID),
  7. UNIQUE KEY ID (ID)
  8. );
  9.  
  10. CREATE TABLE IF NOT EXISTS KONTROLNE (
  11. ID SMALLINT(6) NOT NULL AUTO_INCREMENT,
  12. STATUS VARCHAR(25) NOT NULL,
  13. KOLOR SMALLINT(2) NOT NULL,
  14. PRIMARY KEY (ID),
  15. UNIQUE KEY ID (ID)
  16. );


Dziękuję z góry za pomoc.


--------------------
Go to the top of the page
+Quote Post
toszcze
post 28.08.2004, 13:25:42
Post #2





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 18.12.2003

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


Z pewnoscia pomocne bedzie wywolanie po wykonaniu zapytania funkcji mysql_error().


--------------------
WebHelp.pl
Go to the top of the page
+Quote Post
nocnyMark()
post 28.08.2004, 15:17:17
Post #3





Grupa: Zarejestrowani
Postów: 50
Pomógł: 0
Dołączył: 26.04.2004

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


Solve:

  1. <?php
  2.  
  3. IF ($hasloztabeli[0]==$gohaslo)
  4. {
  5. $modyf1 = &#092;"UPDATE logowanie SET login='$gologin', kontrolne='$idkontrolne' WHERE id=$id\";
  6. echo &#092;"<br>$modyf1\";
  7. $wykonaj = mysql_query ($modyf1);
  8.  
  9. $wykonaj = &#092;"SELECT login, kontrolne FROM logowanie WHERE id=$id\";
  10. $wykonaj = mysql_query ($wykonaj);
  11. while ($A = mysql_fetch_array($wykonaj))
  12. echo &#092;"<br>$A[0], $A[1]<br>\";
  13. }
  14.  
  15. ?>


tutaj byly bledy:

  1. <?php
  2.  
  3. IF ($hasloztabeli[0]==$gohaslo) 
  4. // brak jednego znaku rownosci - poniewaz chcesz sprawdzic czy jedna i druga zmienna sa takie same (wtedy dwa ==) a nie jak miales ze przypisywal pierwszej zmiennej wartosc drugiej (jeden znak =)
  5.  
  6. ?>


i tutaj

  1. <?php
  2.  
  3. IF ($hasloztabeli[0]==$gohaslo)
  4. {
  5. $wykonaj = mysql_query ($modyf1);
  6.  
  7. $wykonaj = &#092;"SELECT login, kontrolne FROM logowanie WHERE id=$id\";
  8. $wykonaj = mysql_query ($wykonaj);
  9. while ($A = mysql_fetch_array($wykonaj))
  10. echo &#092;"<br>$A[0], $A[1]<br>\";
  11. }
  12. // samo mysql_query ($modyf1); wystarczy do zmiany danych w tabeli, natomiast mysql_fetch_array($wykonaj) nie dziala samo z siebie poniewaz wypelnia tablice danymi i nie dziala prz
    y
  13. zapytaniu UPDATE
  14.  
  15. ?>


mam nadzieje ze pomoglo, jezeli nie to pisz to dalej cos wymyslimy

pozdro
Go to the top of the page
+Quote Post
Fibolg
post 29.08.2004, 13:15:38
Post #4





Grupa: Zarejestrowani
Postów: 123
Pomógł: 0
Dołączył: 1.12.2003
Skąd: Chełmno

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


Dzięki za rady - jak się okazało mysql_query wystarczyło - przecież on nic nie wyświetlał blink.gif Teraz już gra guitar.gif Dzięki raz jeszcze


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 30.06.2025 - 07:42