Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]dodawanie do bazy danych z <select>
Forum PHP.pl > Forum > Przedszkole
dave666
Witam mam takie pytanie w jaki sposób zapisać dwie zmienne przy pomocy jednego option

  1. <select name="nazwa_u">
  2. <?php $usl = mysql_query('SELECT * FROM uslugi ORDER BY id_u');
  3. while($rowk = mysql_fetch_array($usl)):
  4. echo"<option value='".$rowk['nazwa_u']." ".$rowa['cena_u']."'>".$rowk['nazwa_u']."</option>";
  5. endwhile;?>
  6. </select></p>


zapisuje mi do bazy ale tylko nazwę usługi ale bez ceny

dopisywanie do bazy wygląda tak

  1. if(isset($_GET['klient']) && $_GET['klient']=='dopisza')
  2. {
  3. $pesel_ka=htmlspecialchars($_POST['pesel_ka']);
  4. $usl_ka=htmlspecialchars($_POST['nazwa_u']);
  5. $jedi_ka=htmlspecialchars($_POST['nazwa_j']);
  6. $cena_ka=htmlspecialchars($_POST['cena_u']);
  7. $data_ka=htmlspecialchars($_POST['data_ka']);
  8. $godz_ka=htmlspecialchars($_POST['godz_ka']);
  9. $minut_ka=htmlspecialchars($_POST['minut_ka']);
  10. $forma_ka=htmlspecialchars($_POST['forma_pl']);
  11.  
  12. mysql_query("INSERT INTO kartoteka VALUES(0,'$pesel_ka','$usl_ka','$jedi_ka','$cena_ka','$data_ka','$godz_ka','$minut_ka','$forma_ka')");
  13. }


za pomocą formularz dodaje z kilku rożnych tabeli do jednej jedynie mi nie działa cena nie wiem czemu kombinowałem juz na rożne sposoby przez input itp
JoShiMa
A skąd się niby ta cena ma brać? Z jakiego elementu formularza?
dave666
za pomocą select option pobieram dane z bazy nazwe i cene w jednym option po kliknięciu zapisz chce aby rozdzielało to na dwie kolumny
kadlub
masz $rowa['cena_u'] a nie powinno być $rowk['cena_u']questionmark.gif
ciekawskiii
ta cene w formularzu Ci wyswietla?
Jak dla mnie to te zmienne dziwnie nazywasz, gdybym ja tak u siebie robil to po dwoch minutach bym sie pogubil i nie wiedzial co jest co.
dave666
tak to mój błąd ale nawet jak zmienie na
  1. <select name="nazwa_u">
  2. <?php $usl = mysql_query('SELECT * FROM uslugi ORDER BY id_u');
  3. while($rowk = mysql_fetch_array($usl)):
  4. echo"<option value='".$rowk['nazwa_u']." ".$rowk['cena_u']."'>".$rowk['nazwa_u']."</option>";
  5. endwhile;?>
  6. </select></p>


to mi nie dodaje do bazy nie mam pojęcia czemu czy option może tylko jedno zapisać

Szukałem kogoś kto napisze mi system rejestracji pacjentów banalnie prosty ale nikogo nie znalazłem dlatego sam próbuje pisać (oczywiście nie za darmo )

- cenę normalnie wyświetla bez problemu tylko nie chce jej zapisać
kadlub
  1. echo'<option value="'.$rowk['nazwa_u'].' , '.$rowk['cena_u'].'">'.$rowk['nazwa_u'].'</option>';

ja bym to zrobił tak że ten kod po wysłani bym rozdzielił explode po przecinku i zapisał dopiero do bazy
ciekawskiii
aaa tak jak Ty to chcesz to nie zadziala bo Ty to value rozdzielasz na dwie zmiennie, poczytaj o explode i to zrobisz
dave666
ciekawskiii masz racje bo dodaje mi do bazy ale do jednej te dwie zmienne nazwa i cena zamiast rozdzielić to na kolumny zaraz poczytam lekturę i będę kombinować
ciekawskiii
masz przyklad explode
  1. $cos="nazwa cena";
  2. $rozdziel=explode(" ",$cos);
  3. echo $rozdziel[0];
  4. echo $rozdziel[1];

Teraz sobie poradzisz
dave666
cieniutko to idzie aż tak się nie znam ale nie dam za wygraną
kadlub
a co tu masz do roboty dwie linijki kodu dopisać
ciekawskiii podał Ci nawet jak użyć funkcji explode
dave666
Jak ktoś wie jak to zastosować to jest banalnie proste a jak ktoś siedzi i próbuje się uczyć to trochę więcej to zajmuje nie mam takiej wiedzy jak wy ale mimo wszystko próbuje szukam patrze w manulau ale opornie mi to idzie mimo to nie poddaje się i nie spoczywam na laurach jak coś mi wyjdzie tylko wciąż chce więcej umieć może kiedyś będę też tu pomagać co sprawi mi wielką radość
ciekawskiii
ale to akurat nie jest skomplikowane, skopiuj sobie ten przyklad moj i zobacz co zwracaja Ci te dwie zmienne, masz praktycznie gotowe do zapisu, wystarczy w moim przykladzie, w explode zmienic $cos na $nazwa_u w tym przypadku, to explode dajesz po zadeklarowaniu zmiennej z POST ale to chyba juz wiesz, dobra to tyle bo bardziej nie da sie wytlumaczyc, kombinuj
kadlub
zamień tego option w twoim pierwszym poscie na tego
  1. echo'<option value="'.$rowk['nazwa_u'].' , '.$rowk['cena_u'].'">'.$rowk['nazwa_u'].'</option>';
  2.  

i tam gdzie odbierasz dane z formularza daj
  1. $dane=explode(',',htmlspecialchars($_POST['nazwa_u']));
  2. $usl_ka=$dane[0];
  3. $cena_ka=$dane[1];

a reszta bez zmian
dave666
Dziękuję bardzo wiem ze to gotowiec ale mam przykład w jaki sposób to zastosować dokładnie się z tym zapoznam aby kolejnym razem nie pytać dziękuję wszystkim

jak ktoś tu wejdzie prosiłbym o wytłumaczenie jak to działa

  1. $dane=explode(',',htmlspecialchars($_POST['nazwa_u']));
  2. $usl_ka=$dane[0];
  3. $cena_ka=$dane[1];


nie wiem czy dobrze rozumiem po kliknięciu zapisz skrypt przesyła dane które trafiają do : $dane=explode(',',htmlspecialchars($_POST['nazwa_u']));

a tu już je rozdziela na dwa tylko pytanie w jaki sposób bo nie mogę zrozumieć
kill15
jak to w jaki questionmark.gif normalny haha.gif
każdy przecinek rozdziela a rozdzielone wyniki trafiają do tablicy
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.