2016-06-08 3 views
0

Ich habe eine einfache Form, die ein Textfeld ist, und ich muss jede Zeile in meinem Textfeld in eine andere Zeilen in MySQL einfügen.MySQL Einfügen von einem Textfeld in mehrere Zeilen

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); 
?> 

Zur Zeit werde ich speichern TextArea- in einer Reihe, wenn ich meine Form einreichen. Könnten Sie mir bitte dabei helfen?

+0

Was mit diesem geschieht? Ich würde '{$ array [$ i]}' 'und alle' $ i' Referenzen loswerden, benutze einfach '$ value'. Ich würde auch parametrisierte Abfragen und einen aktualisierten Treiber (PDO oder mysqli) verwenden. – chris85

+0

Was siehst du in 'var_dump ($ array)'? – Barmar

+0

Wenn der Rest der Stackoverflow-Population herausfindet, dass Sie kein PDO verwenden, werden Sie davon erfahren. – bassxzero

Antwort

3

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. 
} 
+0

Das wollte ich, vielen Dank –

2

Diese Arbeit sollte:

$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()); 
}