Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] wpis do bazy z textarea
Forum PHP.pl > Forum > PHP
miki92
Jak zrobic cos takiego aby wpisujemy cos w pole textarea i zeby kazda linijke w polu textarea wykrywalo jako nowy rekord
kossa
jeśli każda linia będzie kończyła się enterem to wystarczy w php rozdzielić tekst z textarea po enterze i wrzucić to do bazy

Łukasz
miki92
a jak cos takiego zrobic i jeszcze jest taki problem ze chce w jednej lini umiescic 4 pola zeby je wpisywalo rowniez sa oddzielane spacja
Nightmare
Roździelisz explode" title="Zobacz w manualu PHP" target="_manual, a co do drugiego pytania to nie do końca wiem o co ci chodzi. Opisz troche dokładniej co chcesz osiągnąć.
miki92
mam np. cos takiego do pola textarea wpisuje:
data ilosc wyk
data1 ilosc1 wyk1
te wpisu to nazwy kolumn w tabeli chce zeby kazda wartosc oddzielona spacja byla w oddzielnej kolumnie da sie rade cos takiego zrobic? i zeby id sobie samo dodawalo
Nightmare
  1. <?php
  2. $input = explode('n', $_POST['nazwatextarea']); // dzielisz dane z textarea po znaku nowej lini
  3. foreach($input as $value)
  4. {
  5.  $value = explode(' ', $value); // dzielisz dane z textare po spacji
  6.  ... // tu zapytanie do bazy lub wstawianie do pliku zależy gdzie trzymasz dane
  7. }
  8. ?>
miki92
zaraz wyprobuje
Nightmare
Zapomniałem dodać że do danych w pętli odwołujesz się $value[0], $value[1] itd.
miki92
czyli musze dodac $value[$x] , $x++ questionmark.gif
Nightmare
Nie, jeśli masz dane w ścisłej kolejności tj. data ilosc wyk to w $value[0] masz data, $value[1] ilosc, $value[2] wyk
miki92
aha

nie wstawia danych do bazy
nospor
Cytat
nie wstawia danych do bazy

Przyczyn moze byc wiele. pokaz te swoje zapytanie, a najlepiej zrob tak:
  1. <?php
  2. $query = 'twoje zapytanie';
  3. $result = mysql_query($query) or die ('zapytanie: '.$query.'---blad'.mysql_error());
  4. ?>
i wszystko bedzie jasne smile.gif
miki92
to nie wina zapytania tylko skryptu zle napisalem a zapytanei to:
  1. <?php
  2. $sql = "
  3. INSERT INTO tabela
  4. (id, data, wyk)
  5. VALUES ('', '$value[0]', '$value[1]')";
  6.  
  7. $result = mysql_query ($sql, $connection) or die ("Wykonanie zapytania nie powiodło się");
  8. ?>
kossa
  1. <?php
  2. $sql = "
  3. INSERT INTO tabela
  4. (data, wyk)
  5. VALUES ('".$value[0]."', '".$value[1]."')";
  6. ?>
miki92
wiem moj blad tam ale jakos przegapilem ze to zmienne ale skrypt nie dziala tz. jak jest 1 rekord to dziala ale juz od 2 nei dodaje w tym samym nei dzili go
Nightmare
Pokaż kod.
miki92
  1. <?php
  2. $db_name = "baza";
  3. $connection = @mysql_connect("host", "baza", "haslo") or die( "Próba połączenia nie powiodła się spróbuj ponownie za kilka minut.");
  4. $db = @mysql_select_db($db_name, $connection) or die ( "Wybrór bazy danych nie powiódł się. Przepraszamy");
  5. $input = explode('n', $_POST['tekst']); 
  6. foreach($input as $value){  
  7. $value = explode(' ', $value); 
  8. $sql = "
  9. INSERT INTO tabela
  10. (id, data, wyk)
  11. VALUES ('', '".$value[0]."', '".$value[1]."')";
  12.  
  13. $result = mysql_query ($sql, $connection) or die ("Wykonanie zapytania nie powiodło się");
  14. }
  15. ?>
Nightmare
  1. <?php
  2. $db_name = "baza";
  3. $connection = @mysql_connect("host", "baza", "haslo") or die( "Próba połączenia nie powiodła się spróbuj ponownie za kilka minut.");
  4. $db = @mysql_select_db($db_name, $connection) or die ( "Wybrór bazy danych nie powiódł się. Przepraszamy");
  5. $input = explode('n', $_POST['tekst']); 
  6. foreach($input as $value){  
  7. $value = explode(' ', $value); 
  8. $sql = "
  9. INSERT INTO tabela
  10. (data, wyk)
  11. VALUES ('".$value[0]."', '".$value[1]."')";
  12.  
  13. $result = mysql_query ($sql, $connection) or die ("Wykonanie zapytania nie powiodło się");
  14. }
  15. ?>


Zjadłeś \ przed n i masz chyba błędy w zapytaniu zobacz czy to działa
miki92
\ bylo tylko jakos tu nie wyswietlilo ale nadal nie dziala
jak wpisze np.
1 2
3 4
to w bazie bedzie cos takiego
1 2
3
Nightmare
Daj po
  1. <?php
  2. $input = explode('n', $_POST['tekst']); 
  3. ?>

  1. <?php
  2. print_r($input);
  3. ?>

I pokaż co ci zwraca.
miki92
jak wpisze
1 2
3 4
5 6
to wyswietla:
Array ( [0] => 1 2 3 4 5 6 )
Nightmare
Widać, że nie dizeli po lini, spróbuj
  1. <?php
  2. $input = preg_split('/n/', $_POST['tekst']); 
  3. ?>
miki92
działa dzieki wszystkim za pomoc smile.gif
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.