Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] update
Forum PHP.pl > Forum > Przedszkole
-poczatkujacy-
  1. <?php
  2. ?>
  3.  
  4. <center>Panel Administratora</center>
  5.  
  6. <br>
  7. <br>
  8. <?php
  9. if($_POST)
  10. {
  11. $kat = $_POST['kat'];
  12. $zapytanie = "INSERT INTO kategoria VALUES(NULL,'$kat')";
  13. $result = mysql_query($zapytanie);
  14.  
  15. }
  16. [b]if($_POST['zmiana'])
  17. {
  18. $zapytanie = mysql_query(" UPDATE kategoria SET nazwa=$nowa WHERE nazwa=$stara;");
  19. }[/b]
  20.  
  21.  
  22.  
  23.  
  24. ?>
  25. <form action="<?php echo $SCRIPT_NAME; ?>" method="POST">
  26. <table>
  27. <tr> 
  28. <td> Nazwa nowej kategorii </td>
  29. <td><input type="textbox" name="kat"></td>
  30.  
  31.  
  32. <td><input type="submit" name="submit" value="DODAJ"></td>
  33. </tr>
  34.  
  35. </table>
  36. </form>
  37. <br>
  38. <form action="<?php echo $SCRIPT_NAME; ?>" method="POST">
  39. <table>
  40. <tr> 
  41. Zmień nazwę kategorii
  42. <td> Wybierz zmienianą nazwę </td>
  43. <td>
  44.  
  45. <select name="stara">
  46. <?php
  47. $zapytanie = mysql_query("SELECT nazwa FROM kategoria");
  48. while($wynik = mysql_fetch_assoc($zapytanie)) {
  49.  echo '<option value="'.$wynik['nazwa'].'">'.$wynik['nazwa'].'</option>';
  50. }
  51. ?>
  52.  </select>
  53.  
  54. <td> Nowa nazwa </td>
  55. <td><input type="textbox" name="nowa"></td>
  56. <td><input type="hidden" name="zmiana"></td>
  57. <td><input type="submit" name="zmiana" value="ZMIEŃ"></td>
  58. </tr>
  59.  
  60. </table>
  61. </form>

Witam,

Ten skrypt ma dwie funkcje dodania nowej kategorii oraz zmiany starej na nowa. 1 funkcja działa ale druga zamiast zamiany tworzy koeljny rekord ( cały pusty)

Czy kots moze mi pofpowiedziec w czym tkwi problem?
Pitter
NIe potrzebnie dałeś średnik w zapytaniu na zmianę. A reszta wydaje mi się w porządku. Chociaż to wszystko takie nie poukładane.
Problem polega na tym że dodawanie rekordu wykonuje się gdy istnieje tablica $_POST, a zmiana wykonuje się gdy istnieje tablica $_POST a w niej zmienna "zmiana". Czyli teoretycznie powinny się wykonać dwa zapytania. WYkonuje się tylko jedno ponieważ w zapytaniu o zmianę jest średnik w nie właściwym miejscu. Dlaczego jest pusty dodany rekord? Ponieważ nie została przesłana żadna potrzebna zmienna.
-poczatkujacy-
po usunieciu srednika dalej to samo czyli dopisuje puste ... co masz na mysli mowiac nie poukladane?smile.gif
Pitter
Chodzi mi że html jest zmieszany z php i tak na pierwszy rzut oka nie widać za co się wziąć.
Spróbuj zrobić to na funkcjach.

  1. <?php
  2. if($_GET['cmd']=='add')
  3. {
  4. AddCategory();
  5. }
  6. if($_GET['cmd']=='edit')
  7. {
  8. EditCategory();
  9. }
  10.  
  11. // opis funkcji
  12. function AddCategory()
  13. {
  14. // cały kod
  15. }
  16.  
  17. // opis funkcji
  18. function EditCategory()
  19. {
  20. //cały kod
  21. }
  22. ?>


Działa to jak napisałem?
kavka
między znacznik 'php' ;]
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.