Come inserire i valori dell'arrays module in MySQL?

Sono bloccato, voglio inserire i dati del module da campi di arrays come di seguito in MySQL:

<input type='text' name='name[]' />` and `<input type='text' name='url[]' /> 

So come generare i dati per un field come questo esempio

 foreach($_POST['name'] as $name) { echo $name; } 

Ma nella mia forma ho sia <input type='text' name='name[]' /> e <input type='text' name='url[]' /> come posso far funzionare correttamente?

Cercherò di evitare di interrogare il DB più e più volte e di mettere tutto in un'unica grande istruzione di inserimento:

 $query = "INSERT INTO table1 (name, url) VALUES "; foreach($_POST['name'] as $i => $name) { // Get values from post. $name = mysql_real_escape_string($name); $url = mysql_real_escape_string($_POST['url'][$i]); // Add to database $query = $query." ('$name','$url') ,"; } $query = substr($query,0,-1); //remove last char $result = mysql_query($query); 

In questo modo devi solo colpire il database una volta, rendendo l'inserimento molto più veloce.
Un altro vantaggio è che se il motore support le transactions (InnoDB et al) tutti gli inserimenti avvengono in un'unica transazione.

Puoi usare l'indicizzatore del tuo loop in questo modo:

 foreach($_POST['name'] as $i => $name) { // Get values from post. $name = mysql_real_escape_string($name); $url = mysql_real_escape_string($_POST['url'][$i]); // Add to database $sql = "INSERT INTO `table` (`name`, `url`) VALUES ('".$name."', '".$url."')"; $result = mysql_query($sql); } 

Ovviamente, è una buona pratica usare mysql_real_escape_string sui valori prima di aggiungerli nella tua query.

È necessario implodere gli arrays se si desidera archiviare tutti i valori in un singolo field DB.

 $all_names= implode(",", $name[]); 

Questo metterà tutti i valori dell'arrays in una singola variabile, separati da virgola.