Reputation: 101
I have a simple form which is a textarea and I need to insert each lines in my textarea into a different rows in MySQL.
HTML code:
<html>
<form method="POST" action="insert.php">
<textarea name="url" rows="10" ></textarea>
<input type="submit" name="submit" value="Enter">
</form>
</html>
PHP Code:
<?php
$link = mysql_connect('localhost', 'root', '');
if (!$link) {
die('Not connected : ' . mysql_error());
}
$db_selected = mysql_select_db('insert', $link);
if (!$db_selected) {
die ('Can\'t use this database : ' . mysql_error());
}
$textarea = mysql_real_escape_string($_POST['url']);
$array = explode("\n", $textarea);
$i=0;
$value = trim($array[$i]);
if (!empty($value)) {
foreach ($array as $value) {
mysql_query("INSERT INTO test (text) VALUES ('{$array[$i]}')") or die(mysql_error());
$i++;
}
}
mysql_close($link);
?>
Currently I'll store textarea in ONE row when I submit my form. Could you please help me with that.
Upvotes: 0
Views: 3646
Reputation: 446
This should work:
$textarea = mysql_real_escape_string($_POST['url']);
$array = explode("\n", $textarea);
foreach ($array as $value) {
mysql_query("INSERT INTO test (text) VALUES ('".$value."')") or die(mysql_error());
}
Upvotes: 2
Reputation: 2991
Try this:
$text = trim($_POST['textareaname']);
$textAr = explode("\n", $text);
$textAr = array_filter($textAr, 'trim'); // remove any extra \r chars
foreach ($textAr as $line) {
// Your sql Query here with $line as the string.
}
Upvotes: 3