Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przesłanie do tablicy POST i zmiana wszystkich id przesłanych do tej tablicy
Forum PHP.pl > Forum > PHP
hiper0007
Mam pytanie wink.gif Zaznaczam chceckboxy w tabeli których id później chcę przesłać do tablicy POST.

  1. <input name="id[]" value="$id" type="checkbox" style="width: 20px; height: 20px;">


a następnie chcę zmienić kolorych tych wierszy, które były zaznaczone wink.gif

  1. print_r($_POST['id']);


I pokazuje prawidłowo tyle ID ile zaznaczyłem, ale jak chcę zmienić poprzez poniższy kod kolory wszystkich wierszy, które były zaznaczone to zmienia mi tylko ostatni zaznaczony np. na 5...

  1.  
  2. require_once "connect.php";
  3.  
  4. if (!$polaczenie = mysql_connect($host,$db_login,$db_pass,$db_name)) {
  5. echo 'Nie można nawiązać połączenia z bazą danych';
  6.  
  7. }else
  8. {
  9.  
  10. if (!mysql_select_db('awizacja', $polaczenie)) {
  11. echo 'Nie można wybrać bazy danych';
  12. }
  13.  
  14.  
  15.  
  16. switch($_POST['color_ex2'])
  17. {
  18.  
  19.  
  20. // Wpuszczony
  21.  
  22. case "c1":
  23.  
  24. {
  25.  
  26.  
  27. $id=$_POST['id'];
  28.  
  29.  
  30. if($result = mysql_query("UPDATE appt SET color='white' WHERE id='$id'", $polaczenie))
  31. {
  32.  
  33. $_SESSION['ex_color']="Kolor został zmieniony na biały dla $id!";
  34. require_once "header.php";
  35. exit();
  36.  
  37.  
  38.  
  39. }else
  40. {
  41.  
  42. echo "Błąd bazy danych, nie można wykonać zapytania do bazy\n";
  43. echo 'Błąd MySQL: ' . mysql_error();
  44.  
  45. }
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52. } break;
  53.  
  54.  
  55. // Bez rampy
  56.  
  57.  
  58.  
  59.  
  60.  
  61. case "c2":
  62.  
  63. {
  64.  
  65.  
  66. $id=$_POST['id'];
  67.  
  68.  
  69. if($result = mysql_query("UPDATE appt SET color='green' WHERE id='$id'", $polaczenie))
  70. {
  71.  
  72. $_SESSION['ex_color']="Kolor został zmieniony na zielony dla $id!";
  73. require_once "header.php";
  74. exit();
  75.  
  76.  
  77.  
  78. }else
  79. {
  80. echo "Błąd bazy danych, nie można wykonać zapytania do bazy\n";
  81. echo 'Błąd MySQL: ' . mysql_error();
  82.  
  83. }
  84.  
  85.  
  86.  
  87. } break;
  88.  
  89.  
  90.  
  91. // Nie wjechał
  92.  
  93.  
  94. case "c3":
  95.  
  96. {
  97.  
  98.  
  99. $id=$_POST['id'];
  100.  
  101.  
  102. if($result = mysql_query("UPDATE appt SET color='black' WHERE id='$id'", $polaczenie))
  103. {
  104.  
  105. $_SESSION['ex_color']="Kolor został zmieniony na czarny dla $id!";
  106. require_once "header.php";
  107. exit();
  108.  
  109.  
  110.  
  111. }else
  112. {
  113.  
  114. echo "Błąd bazy danych, nie można wykonać zapytania do bazy\n";
  115. echo 'Błąd MySQL: ' . mysql_error();
  116.  
  117. }
  118.  
  119.  
  120. } break;
  121.  
  122.  
  123.  
  124. }
  125.  
  126.  
  127.  
  128.  
  129. mysql_close($polaczenie);
  130.  
  131.  
  132. }
  133.  



Czy może mi ktoś z tym pomóc... bo walczę już z tym od poniedziałku ;(
SmokAnalog
Zamiast WHERE id = $id daj:

  1. $idsSql = implode(', ', $id);


I potem w SQL zrób WHERE id IN ($idsSql) (zakładając, że to liczby). Jest to szybkie, ale nie do końca ładne rozwiązanie, bo... (patrz P.S.).

P.S. Nie zaleca się używania funkcji z prefiksem mysql_.
hiper0007
Cytat(SmokAnalog @ 7.02.2018, 13:57:52 ) *
Zamiast WHERE id = $id daj:

  1. $idsSql = implode(', ', $id);


I potem w SQL zrób WHERE id IN ($idsSql) (zakładając, że to liczby). Jest to szybkie, ale nie do końca ładne rozwiązanie, bo... (patrz P.S.).

P.S. Nie zaleca się używania funkcji z prefiksem mysql_.



Super dzięki wielkie wink.gif
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.