Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql]wstawienie danych do tabeli przy pomocy explode()
Forum PHP.pl > Forum > Przedszkole
wojzem
Użytkownik wprowadza dane w polu formularza oddzielone średnikami, które odbieram funkcją explode.

  1. <?php
  2. $input = explode('n', $_POST['dane']); 
  3.  
  4. foreach($input as $value) {
  5. $value = explode(';', $value);
  6. }
  7. ?>


Dotąd wszystko działa. Nie mogę sobie jednak poradzić ze wstawieniem danych do MySQL. To znaczy mógłbym rozpisać je

  1. <?php
  2. $insert = 'INSERT INTO tabela (id, dane) VALUES (' ', 'value[0]'),(' ', 'value[1]'),(' ', 'value[2]')';
  3. ?>


itd. ale nie jestem w stanie z góry przewidzieć, ile będzie będzie elementów do wstawienia. Czy jest możliwe napisanie skryptu, który będzie sprawdzał wartość kolejnych elementów i wstawiał je w odpowiednie pola tabeli?
pojas
Może uratuje Cie funkcja count" title="Zobacz w manualu PHP" target="_manual ( Zlicza ilość elementów w tablicy lub pól obiektu ) ? Już znasz ilość elementów tablicy i możesz stworzyć zapytanie za pomocą pętli. guitar.gif
wojzem
Cytat(pojas @ 1.08.2007, 16:42:33 ) *
Może uratuje Cie funkcja count" title="Zobacz w manualu PHP" target="_manual ( Zlicza ilość elementów w tablicy lub pól obiektu ) ? Już znasz ilość elementów tablicy i możesz stworzyć zapytanie za pomocą pętli. guitar.gif


lama jestem i nie umiem stworzyć zapytania za pomocą pętli, to znaczy takiego sprytnego zapytania, które wrzucałoby poszczególne elementy od razu do bazy danych sad.gif
pojas
Cytat
  1. <?php
  2. $insert = 'INSERT INTO tabela (id, dane) VALUES (' ', 'value[0]'),(' ', 'value[1]'),(' ', 'value[2]')';
  3. ?>
Nie rozumie tego, przecież określone są dwa pola ( id, dane ), więc czemu potem pisze VALUES i trzy pola?

Cytat
Użytkownik wprowadza dane w polu formularza oddzielone średnikami

Czemu muszą być odzielone, można przecież zrobić więcej pól input (niektóre mogą zostać niewypełnione ).

Dziwacznie to jest napisane, albo ja nie potrafię tego pojąć .
Opisz cały problem bardziej szczegółowo, jeśli chcesz guitar.gif


a to jest pętla
  1. <?php
  2.  
  3. $array = array( 0=>'zero', 1=>'jeden' );
  4.  
  5.  
  6. for( $i=0; $i<count( $array ); $i++ )
  7. {
  8. // jeśli tablica ma 2 elementy, pętla wykona się 2 razy 
  9. echo $array[$i].' ';
  10. }
  11.  
  12.  
  13. ?>
wojzem
miałeś racje, count elegancko rozwiązało problem:

  1. <?php
  2. $wynik = count($value);
  3.  
  4. for ($i = 0; $i < $wynik; $i++) {
  5. $insert = 'INSERT INTO tabela (id, dane) VALUES (' ', 'value[$i]')';
  6. }
  7. ?>


chwilę trwało, zanim zajarzyłem, o co chodzi winksmiley.jpg dziękuję za pomoc!
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.