Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][MySQL] Funkcje - gdzie zrobilem blad ? bo niewiem =/
dawhol
post
Post #1





Grupa: Zarejestrowani
Postów: 256
Pomógł: 0
Dołączył: 19.07.2006
Skąd: Ostrów Wielkopolski

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


A wiec tak jest juz to moja trzecia funkcja jaka napisałem smile.gif hehe moze bylo ich nei wiele ale z pierwszymi dwoma nie mialem problemu natomiast z ta mam niewielkie.

Jest to plik akcja.php z mojej ksiegi gosci (panelu admina)
1) jezeli w adresie dam akcja.php?gbook=edit&id=1 to bede mógł edytowac 1 wpis
2) jezeli w adresie dam akcja.php?gbook=del&id=1 to będę mógł usunac wpis o numerze 1
3 jezeli w adresie dam akcja.php?gbook=save&id=1 to bede mógł zapisac wpis 1 po edycji.

No i problem jest taki ze jezeli robie edytujk to on mi najpierw usuwa ;/ wpis a pozniej chce go edytowac mimo ze ma funkcje warunkowo w której usunac moze tylko wtedy gdy $gbook jest równa del ;/

Prosze o pomoc w znalezieniu błedu bo szukam juz od prawie godziny =/

  1. <?php
  2. $gbook = $_GET['gbook'];
  3.  
  4.  
  5. function gbook () 
  6. { $id = $_GET['id'];
  7.  
  8. if ($gbook = 'del' OR $gbook = 'edit' OR $gbook = 'save')
  9. {
  10. if ($gbook = 'del') 
  11. {
  12. $zapytanie = "DELETE FROM cms_gbook WHERE id=".$id."";
  13. $wykonaj = mysql_query($zapytanie);
  14.  
  15. if ($wykonaj) 
  16. {
  17. echo ('Dane zostały skasowane');
  18. };
  19. };
  20.  
  21. if ($gbook = 'edit')
  22. {
  23. $zapytanie2 = "SELECT * FROM cms_gbook WHERE id=".$id."";
  24. $wykonaj2 = mysql_query($zapytanie2);
  25. $dane = mysql_fetch_array($wykonaj2);
  26.  
  27. echo ('<form action="akcja.php?gbook=save&id='.$id.'" method="post"><br/><br/>');
  28. echo ('<textarea rows="30" cols="40" name="wpis">'.$dane['wpis'].'</textarea>');
  29. echo ('<input type="submit" name="send" value="Zapisz"></form>'); 
  30.  
  31. };
  32.  
  33. if ($gbook = 'save')
  34. {
  35. $zapytanie3 = "UPDATE cms_gbook SET wpis=".$wpis." WHERE id=".$id."";
  36. $wykonaj3 = mysql_query($zapytanie3);
  37.  
  38. if ($wykonaj3) 
  39. {
  40. echo ('Dane zostały zapisane');
  41. };
  42. };
  43. }
  44. else echo mysql_error();
  45. }
  46.  
  47.  
  48. if (isset($gbook)) gbook();
  49. ?>


PS. Skrypt jest prototypem winksmiley.jpg dlatego nie zabezpieczyłem go jescze przed atakami SQL winksmiley.jpg ale zrobie to jak rozwiarze wpierw ten problem sad.gif co mam sad.gif.


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 16)
Cysiaczek
post
Post #2





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Znasz może różnice pomiędzy operatorem przypisania, a operatorem porównania?
Może jak poznasz, to poprawisz skrypt i będzie działał laugh.gif

Pozdrawiam


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
-Wieviór-
post
Post #3





Goście







Cytat(dawhol @ 8.08.2006, 17:26 ) *
  1. <?php
  2. if ($gbook = 'del') 
  3. { };
  4. php?>


Tutaj robisz if'a z warunkiem przypisania $gbook wartości del. laugh.gif

Poprawny kod:

  1. <?php
  2. if ($gbook == 'del') 
  3. { };
  4. php?>


Ten post edytował Wieviór 8.08.2006, 16:43:22
Go to the top of the page
+Quote Post
dawhol
post
Post #4





Grupa: Zarejestrowani
Postów: 256
Pomógł: 0
Dołączył: 19.07.2006
Skąd: Ostrów Wielkopolski

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


mialem z dwoma == i mi tez nie działało ;/

tzn jak mam dwa to nic sie nie dzieje ani nie wyswietla.

Ten post edytował dawhol 8.08.2006, 16:52:09


--------------------
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #5





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




A wszędzie dajesz == ? Bo poza tym, to kod wygląda normalnie (powinien działać). Może czegoś brakuje? Jakiejś zmiennej? Sprawdzas, czy istnieje $id ?


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
dawhol
post
Post #6





Grupa: Zarejestrowani
Postów: 256
Pomógł: 0
Dołączył: 19.07.2006
Skąd: Ostrów Wielkopolski

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


wszedzie a id istnieje wpis w bazie jest ;/ naprawde sam sie zastanawiam przez godzine prawie szukalem bledu i zadnego nie znalazłem i jak mowie próbowałem z == i z = smile.gif bo i nic ;/ jak nie znajde bl;edu to szkoda napisze jescze raz ale juz troche inaczej bo mam nawet pomysł smile.gif jak, choc wolał bym jak by mi ktos wskazał ten bład smile.gif by bylo mniej pracy smile.gif

EDIT:

dobra jeden problem naprawilem ale pojawi lsie drugi sad.gif

problem mialem poniewaz zmienna $gbook = $_GET['gbook']; byla poza fukncja musiałem ja tez tam wlozyc i prawie wszystko zadziałało oprócz zapisu sad.gif ale jescze sie z nim pobawie moze znajde swój bład smile.gif

Ten post edytował dawhol 8.08.2006, 17:10:36


--------------------
Go to the top of the page
+Quote Post
-Wieviór-
post
Post #7





Goście







Cytat(dawhol @ 8.08.2006, 17:26 ) *
  1. <?php
  2. $zapytanie3 = "UPDATE cms_gbook SET wpis=".$wpis." WHERE id=".$id."";
  3. $wykonaj3 = mysql_query($zapytanie3);
  4. ?>


Zmień ten kod na:

  1. <?php
  2. $zapytanie3 = "UPDATE cms_gbook SET wpis=".$wpis." WHERE id=".$id."";
  3. mysql_query($zapytanie3);
  4. ?>
Go to the top of the page
+Quote Post
dawhol
post
Post #8





Grupa: Zarejestrowani
Postów: 256
Pomógł: 0
Dołączył: 19.07.2006
Skąd: Ostrów Wielkopolski

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


~Wieviór
Co do tego co kazałes zmienic nic to nie da i nie dalo bo sprawdzałem jedyne co siezmieni to w razie wykonania nie zostane poinformowany o tym ze wpis został zmieniony,


--------------------
Go to the top of the page
+Quote Post
-Wieviór-
post
Post #9





Goście







To może daj jescze or mysql error, żeby pokazał jaki jest błąd
Go to the top of the page
+Quote Post
dawhol
post
Post #10





Grupa: Zarejestrowani
Postów: 256
Pomógł: 0
Dołączył: 19.07.2006
Skąd: Ostrów Wielkopolski

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


dalem ale zapomnialem o tym napisac bo z lekka sie dzisiaj zle czuje o to odpowiedz::

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id=1' at line 1

niby cos z zapytaniem sql ale zastanawia mnie co ;/


--------------------
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #11





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Wyprintuj sobie to zapytanie,to zabaczysz dlaczego jest blad biggrin.gif

Pozdrawiam


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
-Wieviór-
post
Post #12





Goście







  1. <?php
  2. $zapytanie3 = "UPDATE cms_gbook SET wpis='".$wpis."' WHERE id=$id";
  3. mysql_query($zapytanie3);
  4. ?>


Po prostu kwestia cudzysłów itp. itd. Zobacz tak smile.gif
Go to the top of the page
+Quote Post
dawhol
post
Post #13





Grupa: Zarejestrowani
Postów: 256
Pomógł: 0
Dołączył: 19.07.2006
Skąd: Ostrów Wielkopolski

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


działa kurde zapomnialem o glupich cudzysłowiach ;/

ale tylko teoretycznie ;/ bo do bazy danych zapisuje puste pole ;/


--------------------
Go to the top of the page
+Quote Post
Kicok
post
Post #14





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


No a co ma zapisywać jak nie puste pole? biggrin.gif Przypisałeś gdziekolwiek w tym kodzie, który podałeś u góry jakąkolwiek wartość do zmiennej $wpis?


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post
dawhol
post
Post #15





Grupa: Zarejestrowani
Postów: 256
Pomógł: 0
Dołączył: 19.07.2006
Skąd: Ostrów Wielkopolski

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


tak jezeli wcisnie sie zapisz to jescze raz zostanie przeladowana strona i z pola textarea name=wpis zostanie wyciagnieta zmienna poniewaz mam register globals on ale pozniej to poprawie ale to nie o to chodzi bo ani tak ani tak nie aktualizuje pola tylko je czysci ;/


--------------------
Go to the top of the page
+Quote Post
Kicok
post
Post #16





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


Nawet jeśli masz register_globals = On, to ta zmienna $wpis ci sam do wnętrza funkcji nie wlezie. Jak już tak chcesz to zapisać, to dodaj na początku swojej funkcji:
  1. <?php
  2. global $wpis;
  3. ?>


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post
dawhol
post
Post #17





Grupa: Zarejestrowani
Postów: 256
Pomógł: 0
Dołączył: 19.07.2006
Skąd: Ostrów Wielkopolski

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


Dzięki teraz wszystko pięknie działa smile.gif mój bład ale wkoncu kazdy sie nia nich uczy smile.gif myslałem ze on mi ja tam wciagnie smile.gif. Wielkie dzieki smile.gif


--------------------
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 Aktualny czas: 20.08.2025 - 09:01