Autor Zpráva
mart007
Profil *
Ahoj, prosim o pomoc s vkladanim dat z formulare do mysql

Problem je v tom ze se mi do databaze vlozi pouze prvni zaznam a nejsem schopen prijit na to jak udelat jednoduse system vlozeni vsech zaznamu do DB (v cyklu mi to nefunguje :-( spis nevim jak to dobre v tomto pripade zapsat).

Jde mi hlavne o to vlozeni pomoci formulare - ze souboru neni problem pouzit funkci fgetcsv().

Predem dekuji za pomoc

Data vlozena do formulare:

Karel;Vomacka;123
Jana;Vomackova;321
Jan;Skocdopole;587


Data odeslu z formulare zachytim, rozdelim a vlozim je do prislusne tabulky
$data = $_POST['text'];

$radky = explode('\n', $data);
foreach ($radky as $radka)
{
$pole = explode(';', $radka);
$jmeno = trim($pole[0]);
$prijmeni = trim($pole[1]);
$cislo = trim($pole[2]);

$sql = "INSERT INTO test(jmeno,prijmeni,cislo) values('$jmeno','$prijmeni','$cislo')";

$result = mysql_query($sql); 

}
sysel
Profil
Prosím, čemu říkáte "formulář"? Pokud jsou "data" zadávaná do jednotlivých <INPUT>ů, pak není třeba nic explodovat, protože je vše již rozloženo. Pokud jako formulář používáte jen jednu textarea, pak si zbytečně přiděláváte práci a hlavně riskujete, že uživatel udělá v zápise chybu. Ale když už to musí být, zkusil bych něco s funkcí ereg().

Hezký den
mart007
Profil *
Ano formular mysleno jedna textarea - v jednotlivych inputech neni problem. Vim ze je to slozitejsi, ale nechme stranou pokud uzivatel udela chybu. Jde mi o to jak to udelat aby to fungovalo. Dekuji
Alphard
Profil
mart007:
Je to špatně uvozené, musíte dát
$radky = explode("\n", $data);



A pak bude lepší:
// ...
$insert[] = "('$jmeno','$prijmeni','$cislo')";
}

$sql =  "INSERT INTO test (jmeno,prijmeni,cislo) values ".implode (", ", $insert);
mart007
Profil *
Alphard:
Diky moc, funguje to bez problemu :-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: