Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Tworzenie formularza z danych pochodzących z bazy
zoska2801
post 5.03.2016, 15:07:43
Post #1





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

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


Witam. Mam problem z generowaniem formularza. I zupełnie nie wiem jak się za to zabrać.
Mam takie zapytanie do bazy:
  1. $results = $conn->query("SELECT pole1,pole2,pole3 FROM tabela" );

Chciałabym by każdy z wierszy zwróconych z bazy tworzył
  1. <input type="hidden" name="" value="pole1" />
  2. <input type="checkbox" name="" value="pole2"> pole3<br>

By uzyskać z tych wszystkich danych tablicę asocjacyjną taką ja ta
  1. $tablica = ["pole1" => "wartosc","pole2" => "wartosc","pole3" => "wartosc"];


To może napiszę inaczej. I wyjaśnię dokładniej to co chciałabym uzyskać.
Mam zapytanie łączone z kilku tabel. By się tutaj nie rozpisywać i nie wgłębiać w temat niech będzie zwykły SELECT. Bo i tak tylko ID użytkownika, pojazdu,eventu i nazwisko usera są istotne:
  1. $results = $conn->query("SELECT user_id,vehicle_id,event_id,user_name FROM jakaś tabela ");

I teraz wyświetlam sobie wszystkie rekordy za pomocą foreach.

I tutaj mam pierwszy problem ponieważ dla każdego rekordu potrzebuję INPUT checkbox'a przesyłającego vehicle_id. Chodzi o to by było można wybrać kilka pojazdów. OK, ale checkbox to tylko jedna wartość. event_id jest stały dla wszystkich wyświetlanych wierszy z tabeli. Więc nie trzeba go przesyłać dla każdego rekordu z osobna. Ale user_id już nie, dlatego chciałam go przesłać przez INPUT hidden.
Te powstałe tablice połączyć w jedną i przekazać tutaj:
  1. $stmt = $conn->prepare("INSERT INTO tabela2 (`user_id`,`vehicle_id`,`event_id`) VALUES(:user_id,:vehicle_id,:event_id)");
  2. foreach($tablica_z_posta as $data)
  3. {
  4. $stmt->bindParam(':user_id', $data['user_id'], PDO::PARAM_INT);
  5. $stmt->bindParam(':vehicle_id', $data['vehicle_id'], PDO::PARAM_INT);
  6. $stmt->bindParam(':event_id', $data['event_id'], PDO::PARAM_INT);
  7.  
  8. $stmt->execute();
  9. }

No i wszystko było by fajnie jakby udało się za pomocą formularza wysłać te dane i zapisać je w tablicy. Wtedy nie było by problemów INSERT'em.

Ma ktoś jakiś pomysł, PLISSS oneeyedsmiley02.png
Go to the top of the page
+Quote Post
nospor
post 5.03.2016, 18:33:47
Post #2





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




Problem z baza nie ma wiekszego zwiazku - przenosze.

Co do problemu:
nie, checkbox to nie tylko jedna wartosc. w checkbox rownie dobrze jako value mozesz ustawic taka wartosc:
value="war1:war2:war3"
a potem w php przy pomocy explode() rozbic ten tekst na swoje wartosci
A to tylko jedno z rozwiazan


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
zoska2801
post 6.03.2016, 15:33:38
Post #3





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

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


Udało się smile.gif
  1. $tab = array('war1:war2:war3', 'war4:war5:war6','war7:war8:war9' );
  2.  
  3. $array = array();
  4. foreach ($tab as $q)
  5. $array[] = explode(":", $q);

"Tak czy siak" dziękuję za tą enigmatyczną podpowiedź.
Temat można zamknąć.
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: 12.06.2025 - 15:31