Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL][PHP]Bład w edycji formularza
Deen
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 19.05.2009

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


Witajcie, proszę o pomoc w edycji skryptu. Niby powinno działać a cały czas wykakuje mi komunikat ze nie udało sie zedytować bazy. Pisałem już kilka razy skrypt od poczatku z nadzieja ze tylko nie widze bledu a jest oczywisty ale za każdym razem to samo:( Proszę o pomoc.
  1. <div id="box_menu"><div id="box_center">
  2. <?php
  3. $nazwa=$_GET['what'];
  4. $id=$_GET['edit'];
  5. $zapytanie = "SELECT * FROM $nazwa"; $menu = mysql_query($zapytanie) or die ('Błąd: ' . mysql_error());
  6.  
  7. //EDYTUJ
  8. if ($_GET['edit']) {
  9. $zapytanie1 = "SELECT * FROM $nazwa WHERE id=$id"; $menu1 = mysql_query($zapytanie1) or die ('Błąd: ' . mysql_error());
  10. $edytuj = mysql_fetch_assoc($menu1);
  11. echo '<p>Edytuj produkt</p><br>';?>
  12. <form action="index.php?page=pokaz&what=<?php echo $nazwa; ?>&edit=<?php echo $id;?>" method="POST">
  13. ID: <input readonly name="id" value="<?php echo $edytuj['id'] ?>" size="2"/>
  14. Nazwa: <input name="nazwa" value="<?php echo $edytuj['nazwa'] ?>" size="40" />
  15. Cena: <input name="cena" value="<?php echo $edytuj['cena'] ?>" size="4" />
  16. <input type="submit" name="zmien" value="Zmień" />
  17. <input type="reset" value="Resetuj" />
  18. </form>
  19. <?php
  20. if ($_POST['zmien']) {
  21. $zapytanie2 = "UPDATE produkty SET nazwa='".$_POST['nazwa']."', cena=" . $_POST['cena'] . " WHERE id=$id";
  22. $produkt2 = mysql_query($zapytanie2);
  23. if ($produkt2)
  24. echo "<p>Aktualizacja powiodła się</p>";
  25. else
  26. echo "<p>Aktualizacja nie powiodła się!</p>";
  27. }
  28. }
  29. //WYŚWIETLANIE LISTY
  30. echo "<ul>";
  31. while ($rekord = mysql_fetch_assoc($menu)) { ?>
  32. <li><?php echo $rekord['nazwa']; ?> | <a href="index.php?page=pokaz&what=<?php echo $nazwa; ?>&edit=<?php echo $rekord['id'];?>">Edytuj</a></li>
  33. <?php } ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Berg
post
Post #2





Grupa: Zarejestrowani
Postów: 180
Pomógł: 37
Dołączył: 1.05.2008
Skąd: Białystok

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


Jeśli jakieś zapytanie się nie wykonuje to przydałoby się użyć mysql_error winksmiley.jpg

PS: Słyszałeś kiedyś coś o filtrowaniu danych z formularzy?
A może coś o SQL Injection?

Ten post edytował Berg 27.09.2009, 12:40:16
Go to the top of the page
+Quote Post
Deen
post
Post #3





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 19.05.2009

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


Wyskakuje mi:Bł±d: 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 '00 WHERE id=1' at line 1
Jak to naprawić.
Go to the top of the page
+Quote Post
cojack
post
Post #4





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


więc domyśleć się można z Twojego komunikatu że masz
  1. SELECT * FROM 00 WHERE id=1;


masz taką tabelę 00 ?

Zacznij ziomuś filtrować te gety, pewnie sam nie wiesz co pobierasz i skąd ;p

Ten post edytował cojack 27.09.2009, 14:10:49


--------------------
cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena
Go to the top of the page
+Quote Post
Deen
post
Post #5





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 19.05.2009

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


Cały dzień nad edycją siedzę:(
Teraz mam taki kod:
  1. $wstawid=$_POST['id']; $wstawkategoria=$_POST['kategoria']; $wstawnazwa=$_POST['nazwa']; $wstawcena=$_POST['cena']; $wstawnotatka=$_POST['notatka'];
  2. $zapytanie = "UPDATE $wstawkategoria SET nazwa=$wstawnazwa, cena=$wstawcena WHERE id=$wstawid";
  3. $produkt = mysql_query($zapytanie) or die ('Błąd: ' . mysql_error());


i mysql_error() zwraca mi 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 'SET nazwa='', cena= WHERE id=' at line 1
Proszę, poprawcie ten kod tak żeby edytował te rekordy

Ten post edytował Deen 27.09.2009, 23:22:43
Go to the top of the page
+Quote Post
cojack
post
Post #6





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Nazwa musi być w apostrofach. Nie wiem co masz za typ pola w cena, i widocznie nie przesyłasz wszystkiego przez te posty, bo są puste zmienne, z tego co widać w błędzie, albo masz źle ponazywane posty, sprawdź ponownie.


--------------------
cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena
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: 21.08.2025 - 13:16