Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z edycją kolejności
Forum PHP.pl > Forum > PHP
GandiFly
Witam ostatnio dla kolegi robiłem skrypt edycji kolejności w menu lecz ku mojemu zdziwieniu napotkałem błąd:
Kod wygląda tak:
  1. <?php
  2. include 'config.php';
  3. $SQL = mysql_query("SELECT * FROM `menu` ORDER BY kolejnosc ASC ");
  4. ?>
  5. <form action='' method='POST'>
  6. <?php
  7. while ($RES = mysql_fetch_array($SQL)) {
  8. echo "
  9. ".$RES['id'].". ".$RES['tytul']." <input type='text' name='kolejnosc".$RES['id']."' id='kolejnosc".$RES['id']."' value='".$RES['kolejnosc']."'>
  10. ";
  11. }
  12. $RES2 = mysql_num_rows(mysql_query("SELECT * FROM menu"));
  13. if (isset($_POST['zapisz'])) {
  14. $i = 0;
  15. while ($i <= $RES2) {
  16. $i++;
  17. $kolejnosc = $_POST['kolejnosc'.$i];
  18. $RES = mysql_fetch_array(mysql_query("SELECT * FROM menu"));
  19. $id = $RES['id'];
  20. $SQL = mysql_query("UPDATE menu SET kolejnosc = '$kolejnosc' WHERE id = '$id'");
  21. if ($SQL == 1) {
  22. echo 'Wszystko ok';
  23. } else {
  24. echo 'Błąd'.mysql_error();
  25. }
  26. }
  27. }
  28. ?>
  29. <input type="submit" name="zapisz" id="zapisz" value="zapisz">
  30. </form><br>
  31. <h1>Dodaj strone</h1>
  32. <form action="" method="POST">
  33. <input type="text" name="tytul" id="tytul">
  34. <input type="submit" name="dodaj" id="dodaj">
  35. </form>
  36. <?php
  37. $liczba = 1;
  38. $last_res = $RES2['id'] + $liczba;
  39. $tytul = $_POST['tytul'];
  40. if (isset($_POST['dodaj'])) {
  41. $SQL4 = "INSERT INTO menu (tytul, kolejnosc) VALUES ('$tytul', '$last_res')";
  42. if (mysql_query($SQL4)) {
  43. echo 'OK';
  44. } else {
  45. echo 'Nie OK';
  46. }
  47. }
  48. ?>
  49.  

Demo macie tutaj:
http://dynamicwebs.zz.mu/demo/Sprawdzam/divy/

A problem jest taki że po wpisaniu innej kolejności w pola input i zapisaniu nie wykonuje się zapytanie UPDATE (poprostu nowa kolejność się nie zapisuje).

Niestety nie wiem co zrobiłem źle. Bardzo będę wdzięczny za pomoc.
Wazniak96
najpierw zczytujesz dane wszystkich rekordów, wrzucasz je do tablicy, a potem dajesz update nie przepuszczając tego przez pętlę.
GandiFly
Ale jak mam dać update nie przepuszczająć przez pętlę skoro ten update tyczy się kilku rekordów?
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.