Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][MySQL] Funkcje - gdzie zrobilem blad ? bo niewiem =/
Forum PHP.pl > Forum > Przedszkole
dawhol
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.
Cysiaczek
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
Wieviór
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?>
dawhol
mialem z dwoma == i mi tez nie działało ;/

tzn jak mam dwa to nic sie nie dzieje ani nie wyswietla.
Cysiaczek
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 ?
dawhol
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
Wieviór
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. ?>
dawhol
~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,
Wieviór
To może daj jescze or mysql error, żeby pokazał jaki jest błąd
dawhol
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 ;/
Cysiaczek
Wyprintuj sobie to zapytanie,to zabaczysz dlaczego jest blad biggrin.gif

Pozdrawiam
Wieviór
  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
dawhol
działa kurde zapomnialem o glupich cudzysłowiach ;/

ale tylko teoretycznie ;/ bo do bazy danych zapisuje puste pole ;/
Kicok
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?
dawhol
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 ;/
Kicok
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. ?>
dawhol
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
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-2025 Invision Power Services, Inc.