Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL] Nie chce zrobić update'u.
Wojciechowy
post 2.06.2010, 15:00:44
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 20.09.2009

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


Mam dziwny problem i nie wiem jak go rozwiązać.

Chcę aktualizować rekordy w plik.php mam formularz, który po wypełnieniu przechodzi do index.php, a tam jest cały kod ws. UPDATE'u rekordu.
tylko jest mały problem, jeśli w pole tekstowe wpisze cyfry to wszystko jest OK (UPDATE wychodzi pomyślnie), ale jak juz wpisze się literki to nie robi update'u.
Sprawdzałem, w obu przypadkach typ zmiennej pozostaje 'STRING', w bazie danych ta kolumna ma typ TEXT.

Syntax'ow nie ma. Nie wiem jak temu zaradzić, proszę o pomoc! smile.gif
Go to the top of the page
+Quote Post
zordon
post 2.06.2010, 15:15:06
Post #2





Grupa: Zarejestrowani
Postów: 358
Pomógł: 78
Dołączył: 4.11.2008
Skąd: Kraków

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


kodu kodu kodu ....
Go to the top of the page
+Quote Post
Wojciechowy
post 2.06.2010, 15:20:15
Post #3





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 20.09.2009

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


  1. $ntext = $_POST["text"];
  2. $tekst_query = mysql_query("UPDATE `text` SET `TEXT`=$ntext WHERE `ID`=$id and `PD`=$pd");


a tak to w sumie nie wiem co dać - formularz jest dobrze zrobiony, wszystkie zmienne są dobrze przesyłane do index.php (wiem, bo dodawanie, usuwanie rekordów działa, aktualizacja zresztą też tylko mam problem z tymi tekstami)

jak wyswietlam $ntext przed mysql_query to wyświetla dobrze, tylko nie wiem dlaczego nie wykonuje update'u!.

Ten post edytował Wojciechowy 2.06.2010, 15:23:18
Go to the top of the page
+Quote Post
zordon
post 2.06.2010, 15:33:13
Post #4





Grupa: Zarejestrowani
Postów: 358
Pomógł: 78
Dołączył: 4.11.2008
Skąd: Kraków

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


http://pl.php.net/manual/en/function.mysql-error.php
zobacz co wyświetla

ponadto upewnij się, że masz na pewno dobre warunki where zapytania -> czy wartosci kolumn ID i PD na pewno zgadzają się z tymi ze zmiennych(oba warunki muszą być spełnione jednocześnie! )

a najlepiej podaj kod zarówno formularza jak i skryptu przypisującego te zmienne - jesli wszystko byłoby 'dobrze' zrobione to nie byłoby problemu smile.gif

Ten post edytował zordon 2.06.2010, 15:36:18
Go to the top of the page
+Quote Post
Wojciechowy
post 2.06.2010, 15:39:05
Post #5





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 20.09.2009

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


Cytat
1064: 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 '`ID`=1 and `PD`=1' at line 1


tylko gdzie ten syntax? ;o

wartości kolumn się zgadzają, bo wszystkie inne wykonywanie działania na tych warunkach pracują bezproblemowo.
a kod, już wklejam.


index.php
  1.  
  2. case 'edit':
  3.  
  4. $id = $_GET["id"];
  5. $pd = $_GET["pd"];
  6.  
  7. $nnazwa = $_POST["nazwa"];
  8. $ntext = $_POST["text"];
  9.  
  10. if ($_POST["chnazwa"]==1) {
  11.  
  12. $q1 = "UPDATE `menu` SET `NAZWA`=$nnazwa `ID`=$id and `PD`=$pd";
  13. $ins1 = mysql_query($q1);
  14. echo mysql_errno().": ".mysql_error()."<BR>";
  15. }
  16.  
  17. if ($_POST["chtekst"]==1) {
  18.  
  19. echo 'chtekst';
  20. $tekst_update = '';
  21. $tekst_query = mysql_query("UPDATE `text` SET `TEXT`=$ntext WHERE `ID`=$id and `PD`=$pd");
  22.  
  23. break;
  24.  
  25.  


plik.php
  1. <form action="index.php?action=edit&id= <?php echo $id."&pd=".$pd; ?> " method="post">
  2.  
  3. <input type="checkbox" name="chnazwa" value="1" onclick="this.form.elements['nazwa'].disabled = !this.checked" id="c1"/>
  4. <label for="c1">Nazwa:</label>
  5. <input name="nazwa" type="text" value="
  6.  
  7. <?php echo $nm; ?>
  8.  
  9. " disabled="disabled"/>
  10.  
  11. </td></tr><tr><td></td><td>
  12.  
  13. <input type="checkbox" name="chtekst" value="1" onclick="this.form.elements['text'].disabled = !this.checked" id="c2"/>
  14. <label for="c2">Tekst:</label>
  15.  
  16. <textarea name="text" disabled="disabled">
  17. <?php echo $txt; ?>
  18. </textarea>
  19.  
  20. </td></tr><tr>
  21. <td></td><td>
  22. <input type="submit" />
  23. </form>


z grubsza wyczyściłem ten kod teraz, żeby nie zaśmiecać.

Ten post edytował Wojciechowy 2.06.2010, 15:46:56
Go to the top of the page
+Quote Post
zordon
post 2.06.2010, 17:18:43
Post #6





Grupa: Zarejestrowani
Postów: 358
Pomógł: 78
Dołączył: 4.11.2008
Skąd: Kraków

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


wiesz co, najłatwiej dojść będzie do błędu w ten sposób:
zmień sobie fragment z pierwszego posta na:
  1. $ntext = $_POST["text"];
  2.  
  3. $query = "UPDATE `text` SET `TEXT`=$ntext WHERE `ID`=$id and `PD`=$pd";
  4.  
  5. // var dump($query); die();
  6.  
  7. $tekst_query = mysql_query($query);


chwilowo odkomentuj tą linijkę i wywołaj skrypt dwukrotnie: z liczbą jako parametr z formularza i tekstem.
wklej tu zawartość zmiennej $query

PS . pokasuj sobie spacje w formularzu przy wstawianiu value do pola textowego 'nazwa' bo dane z tego pola dostajesz w formmie <spacja>twoja_zmienna<spacja>, ew odbieraj ja przez trim($_POST['nazwa'])

Ten post edytował zordon 2.06.2010, 17:29:55
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: 3.07.2025 - 23:16