Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Przesłanie do tablicy POST i zmiana wszystkich id przesłanych do tej tablicy
hiper0007
post 7.02.2018, 13:52:17
Post #1





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 6.06.2016

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


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 ;(
Go to the top of the page
+Quote Post
SmokAnalog
post 7.02.2018, 13:57:52
Post #2





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


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_.

Ten post edytował SmokAnalog 7.02.2018, 13:59:01
Go to the top of the page
+Quote Post
hiper0007
post 7.02.2018, 14:11:18
Post #3





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 6.06.2016

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


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
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: 18.04.2024 - 23:52