Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Nie chce zrobić update'u.
Forum PHP.pl > Forum > Przedszkole
Wojciechowy
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
zordon
kodu kodu kodu ....
Wojciechowy
  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!.
zordon
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
Wojciechowy
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ć.
zordon
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'])
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.