Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Checkbox w mysql
szczalpior
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 21.01.2006

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


Witam.
Mam problem odnosnie dodania wielu checkboxow do bazy mysql. Moj kod w html wyglada nastepujaca:
HTML
  1. <p>Rodzaj kuchni:<br>
  2. <input type="checkbox" NAME="kuchnia" VALUE="bałkańska">bałkańska
  3. <input type="checkbox" NAME="kuchnia" VALUE="chińska">chińska
  4. <input type="checkbox" NAME="kuchnia" VALUE="egzotyczna">egzotyczna
  5. <input type="checkbox" NAME="kuchnia" VALUE="europejska">europejska

php
  1. <?php
  2. "INSERT INTO restauracje SET id='$id', adres='$adres',miejscowosc='$miejscowosc', wojewodztwo='$wojewodztwo', telefon='$telefon', email='$email',www='$www', nazwa='$nazwa', opis='$opis', kuchnia='$kuchnia', udogodnienia='$udogodnienia', zdjecia=".$ilzdj.";";
  3. ?>

MYSQL
  1. kuchnia|varchar(20)|atrybuty-brak|Null-tak|domyslnie-NULL|dodatkowy-brak

W bazie mysql mam utworzone pole kuchnia. Problem polege wtym, ze po zaznaczeniu kilku checkboxow dodaje mi tylko pierwszy ktory zaznacze. W jaki sposob nalezy to zrobic, aby dodawalo np 2 lub 3 ? Czy trzeba cos zmodyfikowac w bazie mysql czy w php?
Prosze o pomoc.
Probowalem, ale nie chce dzialac.
Moj kod w mysql jest:
  1. <?php
  2. $kuchnia=implode(',',$_GET['kuchnia']);
  3. $ilzdj = 0;
  4. for ($i=1; $i<=count($zdjecia); $i++) if ((isset($zdjecia[$i])) && ($zdjecia[$i] != "")) $ilzdj++;
  5. $polaczenie = mysql_connect ("127.0.0.1","etrip","szczalpi");
  6. mysql_select_db (etrip_etrip);
  7. $zapytanie = "INSERT 
  8. INTO restauracje
  9.  SET id='$id', adres='$adres',miejscowosc='$miejscowosc', wojewodztwo='$wojewodztwo', telefon='$telefon', email='$email',www='$www', nazwa='$nazwa', opis='$opis', kuchnia='$kuchnia', udogodnienia='$udogodnienia', zdjecia=".$ilzdj.";";
  10. $wykonaj = mysql_query ($zapytanie);
  11. $id = mysql_insert_id($polaczenie);
  12. ?>


(IMG:http://forum.php.pl/uwaga.gif)
poprawiam
---
nospor


Moze w zlym miejscu wstawiam implode (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Ten post edytował nospor 21.01.2006, 19:29:14
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




musisz dla checkboxow nadac nazwe tablicową: kuchnia[]
  1. <input type="checkbox" NAME="kuchnia[]" VALUE="bałkańska">bałkańska
  2. <input type="checkbox" NAME="kuchnia[]" VALUE="chińska">chińska
  3. <input type="checkbox" NAME="kuchnia[]" VALUE="egzotyczna">egzotyczna
  4. <input type="checkbox" NAME="kuchnia[]" VALUE="europejska">europejska


potem laczysz tablice poporzez implode:

  1. <?php
  2. $kuchnia=implode(',',$_POST['kuchnia']);
  3. //tu se reszte dopisz
  4. ?>


ps: temat z mysql ma niewiele wspolnego. przenosze
Go to the top of the page
+Quote Post
szczalpior
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 21.01.2006

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


Ale co dopisac? Taki w php, az dobry nie jestem, (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




no przeciez ja ci napisalem. podstawiam ci pod zmienna $kuchnia juz twoej chceckoboxy. ty juz nic masz nie robic. przeciez zmienna $kuchnia juz wstawiasz do zapytania
Go to the top of the page
+Quote Post
szczalpior
post
Post #5





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 21.01.2006

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


zaraz sprawdze ale wydaje mi sie ze nie dzialalo
Go to the top of the page
+Quote Post
-Gość_szczalpior-
post
Post #6





Goście







Wkleilem ten fragment kodu, ktory napisales ale nie chce dzialac. To pierwszego post dodalem fragment kontu mysql. Mozesz zobaczyc czy go wkleilem w dobrym miejscu?
Pozdrawiam.
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ale nie widze bys zmienil kod html. miales przeciez nadac name z [] na koncu, tak jak ci podalem.
a ty formularz getem wysylasz? Bo pobierasz z geta wartosci.

ps: i uzywaj wlasciwego bbcode

ps2: nastepnym razem nie pisz posta ze zaraz sprawdzisz, bo gdy juz sprawdzisz, to musisz walic jako gosc by podbic temat
Go to the top of the page
+Quote Post
szczalpior
post
Post #8





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 21.01.2006

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


Tak dodalem nawiasy teraz kod wyglada tak:
  1. <input type="checkbox" NAME="kuchnia[]" VALUE="bałkańska">bałkańska
  2. <input type="checkbox" NAME="kuchnia[]" VALUE="chińska">chińska
  3. <input type="checkbox" NAME="kuchnia[]" VALUE="egzotyczna">egzotyczna
  4. <input type="checkbox" NAME="kuchnia[]" VALUE="europejska">europejska

KOD DODAJACY:
  1. <?php
  2. $kuchnia=implode(',',$_GET['kuchnia']);
  3. $ilzdj = 0;
  4. for ($i=1; $i<=count($zdjecia); $i++) if ((isset($zdjecia[$i])) && ($zdjecia[$i] != "")) $ilzdj++;
  5. $polaczenie = mysql_connect ("127.0.0.1","etrip","szczalpi");
  6. mysql_select_db (etrip_etrip);
  7. $zapytanie = "INSERT INTO restauracje SET id='$id', adres='$adres',miejscowosc='$miejscowosc', wojewodztwo='$wojewodztwo', telefon='$telefon', email='$email',www='$www', nazwa='$nazwa', opis='$opis', udogodnienia='$udogodnienia', zdjecia=".$ilzdj.";";
  8. $wykonaj = mysql_query ($zapytanie);
  9. $id = mysql_insert_id($polaczenie);
  10. mkdir("zdjecia/".$id, 0777);
  11. for ($i=1, $j=1; $i<=$ilzdj; $i++, $j++)
  12. {
  13. while ((!isset($zdjecia[$j])) || ($zdjecia[$j] == "")) $j++;
  14. copy("$zdjecia[$j]", "zdjecia/".$id."/".$i.".jpg");
  15. }
  16. mysql_close($polaczenie);
  17. echo "<BR>Dane dodane prawidłowo ! Dziękujemy za wypełnienie formularza !";
  18.  
  19. ?>
  20. <form method="get" action="dodaj.php">

Ja wysylam get - form method. Wstawiajac twoj kod wywala mi blad, ze sa zle argumenty w implode. Nie wiem gdzie lezy problem.
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ja w twoim html'u nigdzie nie widze formularza. cos schrzaniles. masz tu prosty kod, ktory dziala. porownaj se ze swoim kodem:
  1. <form method="get">
  2. <input type="checkbox" NAME="kuchnia[]" VALUE="bałkańska">bałkańska
  3. <input type="checkbox" NAME="kuchnia[]" VALUE="chińska">chińska
  4. <input type="checkbox" NAME="kuchnia[]" VALUE="egzotyczna">egzotyczna
  5. <input type="checkbox" NAME="kuchnia[]" VALUE="europejska">europejska <input type="submit" />
  6. </form>
  7. <?
  8.  
  9. $kuchnia=implode(',',$_GET['kuchnia']);
  10. print_r($kuchnia);
  11. ?>
Go to the top of the page
+Quote Post
szczalpior
post
Post #10





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 21.01.2006

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


Moze troszke sie nie rozumiemy. Otoz to, ten kod jest zapisany w pliku formularz.php

  1. <input type="checkbox" NAME="kuchnia[]" VALUE="bałkańska">bałkańska
  2. <input type="checkbox" NAME="kuchnia[]" VALUE="chińska">chińska
  3. <input type="checkbox" NAME="kuchnia[]" VALUE="egzotyczna">egzotyczna
  4. <input type="checkbox" NAME="kuchnia[]" VALUE="europejska">europejska
  5. <form method="get" action="dodaj.php">

w drugim pliku o nazwie dodaj.php mam :
  1. <?php
  2. $kuchnia=implode(',',$_GET['kuchnia']);
  3. $ilzdj = 0;
  4. for ($i=1; $i<=count($zdjecia); $i++) if ((isset($zdjecia[$i])) && ($zdjecia[$i] != "")) $ilzdj++;
  5. $polaczenie = mysql_connect ("127.0.0.1","etrip","szczalpi");
  6. mysql_select_db (etrip_etrip);
  7. $zapytanie = "INSERT INTO restauracje SET id='$id', adres='$adres',miejscowosc='$miejscowosc', wojewodztwo='$wojewodztwo', telefon='$telefon', email='$email',www='$www', nazwa='$nazwa', opis='$opis', udogodnienia='$udogodnienia', zdjecia=".$ilzdj.";";
  8. $wykonaj = mysql_query ($zapytanie);
  9. $id = mysql_insert_id($polaczenie);
  10.  
  11. ?>
juz nie bede podawal calego kodu, kazdy wie o co chodzi.
Otoz to. Ja chcialbym, aby po wybraniu rodzaju kuchni np: chinska i egzotyczna bylaby dodana do bazy mysql. Wczesniej jak sam robilem to dodaje mi tylko pierwszego checkboxa, ktorego zaznacze, ale juz nastepnego nie chce wgrac do bazy danych. Glownie chodzi mi, aby bylaby mozliwosc dodania dwoch lub wiecej rodzaji kuchni np: po przecinku. Chyba tyle juz starczy tego opisywania.
Go to the top of the page
+Quote Post
nospor
post
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




no i przeciez ja ci taki kod podaje,co pobiera kilka checkboxow, a ty uparcie swoje. ty masz tylko go wsadzic do swiebie. a ze go źle wsadzasz to nie moja wina.

w twoim kodzie html formualrza zaczyna sie po checkboxach. przeciez to totalna bzdura.

Podalem ci przyklad takiego formualrza, podalem ci jak odebrac dane. ty musisz tylko dopisac na koncu mojego skryptu swoje wstawianie do bazy. Czemu tego nie kumasz?
Go to the top of the page
+Quote Post
szczalpior
post
Post #12





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 21.01.2006

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


Wejdz na strone restauracje.e-trip.pl/formularz.php i zobacz jak to wyglada. Sadze, ze teraz w koncu sie zrozumiemy.
Go to the top of the page
+Quote Post
nospor
post
Post #13





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




no i super. zmieniles forma na posta. ale nie zamykasz formularza. nigdzie nie ma </form>

teraz implode musisz robic na $_POST a nie na $_GET. Nie rozumiem czemu ma ci to teraz nie dzialac?
Go to the top of the page
+Quote Post
szczalpior
post
Post #14





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 21.01.2006

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


Tak wiem. Juz do tego doszedlem troszke wczesniej, ale dzieki za okazala pomoc.
Pozdrawiam
GET a POST - a tyle zamieszania z mojej strony... (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 08:22