Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem Z Zapytaniem Update
Forum PHP.pl > Forum > Bazy danych > MySQL
Fibolg
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.
toszcze
Z pewnoscia pomocne bedzie wywolanie po wykonaniu zapytania funkcji mysql_error().
nocnyMark()
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
Fibolg
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
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-2024 Invision Power Services, Inc.