Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wstawianie do wielu rekordow tabeli
Forum PHP.pl > Forum > PHP
kusiu
Witam! mam mały problem... pewnie jest to dziecinnie łatwe ale kombinuje i kombinuje:) Otóż:

mam tabele A2:

id_przedmiotu|nazwa_przedmiotu|ilosc_glosow

No i chce na stronce zrobic taka sonde jakie kto chce przedmioty(z checkboxami! czyli wybornie tylko jeden) no i zalozmy ze do A2 sa takie:

  1. <form method="post" action="sonda.php"><input type="hidden" name="PHPSESSID" value="6911e5ffa2b19bcd41927b5c720f8f8c" />
  2. <font size=4 > 1. Przedmioty humanistyczne (limit 45 h):</font><br />
  3.  
  4. <input type="checkbox" name="sonda" value="A2_1">
  5. Podstawy zarz&plusmn;dzania- w.
  6.  
  7. (30h)<br />
  8. <input type="checkbox" name="sonda" value="A2_2">
  9. Etyka zarz&plusmn;dzania - w.
  10. (15h)<br />
  11. <input type="checkbox" name="sonda" value="A2_3">
  12. Metody negocjacji - w.(15h)<br />
  13. <input type="checkbox" name="sonda" value="A2_4">
  14. Komunikacja interpersonalna - w.
  15. (15h)<br />
  16. <input type="checkbox" name="sonda" value="A2_5">
  17. Język gestów - w.
  18. (15h)<br />
  19. <input type="checkbox" name="sonda" value="A2_6">
  20. Podstawy prawa - w.(15h)<br />
  21. <input type="checkbox" name="sonda" value="A2_7">
  22. Prawo gospodarcze - w.
  23.  
  24. (15h)<br />
  25. <input type="checkbox" name="sonda" value="A2_8">
  26. Prawo Unii Europejskiej - w.
  27. (15h)<br />


submit wysyla to sonda.php a w niej mam taki skrypcik:

  1. <?php
  2.  
  3. if ($sonda == A2_1) {
  4. $zapytanie="UPDATE A2 SET ilosc_glosow=ilosc_glosow+1 WHERE id_przedmiotu=5";
  5. $wykonaj=mysql_query($zapytanie) or die("Błąd");
  6. }
  7.  
  8. else if ($sonda == A2_2) {
  9. $zapytanie="UPDATE A2 SET ilosc_glosow=ilosc_glosow+1 WHERE id_przedmiotu=6";
  10. $wykonaj=mysql_query($zapytanie) or die("Błąd");
  11. }
  12.  
  13. else if ($sonda == A2_3) {
  14. $zapytanie="UPDATE A2 SET ilosc_glosow=ilosc_glosow+1 WHERE id_przedmiotu=7";
  15. $wykonaj=mysql_query($zapytanie) or die("Błąd");
  16. }
  17.  
  18. else if ($sonda == A2_4) {
  19. $zapytanie="UPDATE A2 SET ilosc_glosow=ilosc_glosow+1 WHERE id_przedmiotu=8";
  20. $wykonaj=mysql_query($zapytanie) or die("Błąd");
  21. }
  22.  
  23. else if ($sonda == A2_5) {
  24. $zapytanie="UPDATE A2 SET ilosc_glosow=ilosc_glosow+1 WHERE id_przedmiotu=9";
  25. $wykonaj=mysql_query($zapytanie) or die("Błąd");
  26. }
  27.  
  28. else if ($sonda == A2_6) {
  29. $zapytanie="UPDATE A2 SET ilosc_glosow=ilosc_glosow+1 WHERE id_przedmiotu=10";
  30. $wykonaj=mysql_query($zapytanie) or die("Błąd");
  31. }
  32.  
  33. else if ($sonda == A2_7) {
  34. $zapytanie="UPDATE A2 SET ilosc_glosow=ilosc_glosow+1 WHERE id_przedmiotu=11";
  35. $wykonaj=mysql_query($zapytanie) or die("Błąd");
  36. }
  37.  
  38. else if ($sonda == A2_8) {
  39. $zapytanie="UPDATE A2 SET ilosc_glosow=ilosc_glosow+1 WHERE id_przedmiotu=12";
  40. $wykonaj=mysql_query($zapytanie) or die("Błąd");
  41. }
  42. ?>


I problem polega na tym, iż jak zaznacze np ostatnie 3 to do tabeli dodany zostaje głos tylko do ostatniego rekordu, jak zaznacze dwa pierwsze to do drugiego....itd.(czyli do ostatniego zaznaczonego)

Proszę o pomoc:)

pozdrawiam!
maverickkk
Zmienna 'sonda' musi być tablica bo w twojim przykładzie zapisuje się do niej tylko ostatnia zaznaczona wartość..

Zapis powinien tak chyba wyglądać.

(..)name="sonda[0]" (..)
(..)name="sonda[1]"(..)
itd.

A potem w kodzie php sprawdzasz czy dany element tablicy jest równy czmuś tam. czyli

if ($sonda[0] == A2_1) {
if ($sonda[1] == A2_1) {

itd.
nospor
Cytat
z checkboxami! czyli wybornie tylko jeden
w radio mozesz zaznaczyc tylko jeden. checkboxy zaznaczasz do bolu nie wplywajac na inne

@maverickkk prawie dobrze, ale nie do konca. checkbox, gdy nie jest zaznaczony to sie nie wysle.

@kusiu
jak mowil maverickkk musisz nadac nazwe tablicową , ale tak:
...name="sonda[]"....
dla kazdego checkboxa.
jako value dla tych checkboxów nadaj id_przediotu:
..value="5"...
//....
...value="12"...

a w php:
  1. <?php
  2.  
  3. if (isset($_POST['sonda'])){
  4. $zapytanie='UPDATE A2 SET ilosc_glosow=ilosc_glosow+1 WHERE id_przedmiotu in ('.implode(',',$_POST['sonda']).')';
  5. $wykonaj=mysql_query($zapytanie) or die("Błąd");
  6. } else echo 'nic nie zaznaczono';
  7. ?>
w ten oto sposob zamiast x zapytan, zostanie wykonane tylko jedno
kusiu
Cytat(nospor @ 2006-04-19 09:23:25)
Cytat
z checkboxami! czyli wybornie tylko jeden
w radio mozesz zaznaczyc tylko jeden. checkboxy zaznaczasz do bolu nie wplywajac na inne

@maverickkk prawie dobrze, ale nie do konca. checkbox, gdy nie jest zaznaczony to sie nie wysle.

@kusiu
jak mowil maverickkk musisz nadac nazwe tablicową , ale tak:
...name="sonda[]"....
dla kazdego checkboxa.
jako value dla tych checkboxów nadaj id_przediotu:
..value="5"...
//....
...value="12"...

a w php:
  1. <?php
  2.  
  3. if (isset($_POST['sonda'])){
  4. $zapytanie='UPDATE A2 SET ilosc_glosow=ilosc_glosow+1 WHERE id_przedmiotu in ('.implode(',',$_POST['sonda']).')';
  5. $wykonaj=mysql_query($zapytanie) or die("Błąd");
  6. } else echo 'nic nie zaznaczono';
  7. ?>
w ten oto sposob zamiast x zapytan, zostanie wykonane tylko jedno

hmmm
  1. <?php
  2.  
  3. $zapytanie='UPDATE A2 SET ilosc_glosow=ilosc_glosow+1 WHERE id_przedmiotu in ('.implode(',',$_POST['sonda']).')';
  4.  
  5. ?>


w TEJ LINIJCE MAM BŁĄD......sad.gif
nospor
Cytat
w TEJ LINIJCE MAM BŁĄD.
i wlasnie w tej chwili trafia mnie szlak... uwierz, nie chcesz by trafil i ciebie więc szybko do jasnej ciasnej podaj konkretnie co za blad ci wyskakuje winksmiley.jpg (slowo w slowo)
kusiu
Cytat(nospor @ 2006-04-19 09:42:03)
Cytat
w TEJ LINIJCE MAM BŁĄD.
i wlasnie w tej chwili trafia mnie szlak... uwierz, nie chcesz by trafil i ciebie więc szybko do jasnej ciasnej podaj konkretnie co za blad ci wyskakuje winksmiley.jpg (slowo w slowo)

Warning: implode(): Bad arguments. in /home/stud/rok20033/kusa/public_html/sonda.php on line 30
Błšd


a name i value zrobilem jak podałes............
nospor
ok. to pokaz jeszcze raz calosc, juz poprawionoą, wraz z html'em i php. Dodatkowo do php dopisz na poczatku:
  1. <?php
  2.  
  3. echo 'sonda:<br /><pre>';
  4. print_r($_POST['sonda']);
  5. echo '</pre>';
  6. ?>

i pokaz co wyswietli gdy zaznaczysz kilka checkboxów
kusiu
Uhhh Juz mi smigaa! guitar.gif

Dziękuje BAARDZo za pomoc........ !
Kłaniam sie i pozdrawiam.
kusiu
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.