inserer php array a mysql
Bonjour tt l monde
j'ai récupérer un table array voila la sorte de :
echo "<pre>";
print_r($allt);
echo "</pre>";
-----------------
Array
(
[0] => Array
( /*************id_comp**************/
[1] => 12
[2] => 13
[3] => 14
[4] => 15
[5] => 16
)
[1] => Array
( /*************index**************/
[1] => 1010
[2] => 1212
[3] => 9999
[4] => 1594
[5] => 1425
)
)
je peut enregistré c'est valeur a la base de donner a table nommé maj
CREATE TABLE IF NOT EXISTS `msa` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_comp` int(11) NOT NULL,
`index` int(11) NOT NULL,
PRIMARY KEY (`id`)
)
voila mon code source de ma page :
<?php
//connection au serveur
$cnx = mysql_connect( "localhost", "root", "" ) ;
//sélection de la base de données:
$db = mysql_select_db( "2e" ) ;
//récupération des valeurs des champs:
$tableau = unserialize($_POST["tipcop"]) ;
$nbrenre = $_POST["nbrenre"] ;
for ( $i=1 ; $i<=$nbrenre ; $i++ )
{
$index[$i] = $_POST["index".$i.""];
}
$allt = array ($tableau,$index);
/*
j'ai essayer ça et ça marche pas !!!!
$sql = array();
foreach( $allt as $row ) {
$sql[] = '("'.mysql_real_escape_string($row['id_comp']).'","'.$row['index'].'")';
}
mysql_query('INSERT INTO maj (id_comp,index) VALUES '.implode(',', $sql));
*/
?>
resultat qui j’attends avec mon script :
INSERT INTO `2e`.`msa` (`id` ,`id_comp` ,`index`)
VALUES
(NULL , '12', '1010'),
(NULL , '13', '1212'),
(NULL , '14', '9999'),
(NULL , '15', '1594'),
(NULL , '16', '1425');
mais par mon mon page php ça c'est avec phpmyadmin...
Réponses apportées à cette discussion
Ok, ce n'est pas très difficile, il faut juste un peu de logique.
Tu pars d'un tableau de données structurées, les données de la première série vont dans la première colonne, la seconde série dans la seconde colonne.
Tu n'étais pas très loin, mais regarde et lis bien les commentaires que j'ai mis :
<?php
//connection au serveur
$cnx = mysql_connect("localhost", "root", "");
//sélection de la base de données:
$db = mysql_select_db("2e");
//récupération des valeurs des champs:
$tableau = unserialize($_POST["tipcop"]);
$nbrenre = $_POST["nbrenre"];
for($i = 1; $i <= $nbrenre; $i++)
{
$index[$i] = $_POST["index" . $i . ""];
}
$allt = array($tableau, $index);
/* On compte combien on a de lignes de données à insérer en comptant une des deux séries */
$nl = count($allt[0]);
/* On initialise un tableau pour stocker les lignes à insérer */
$aLignes = array();
/* On boucle autant de fois qu'il y a de ligne */
for($i = 0; $i < $nl; $i++)
{
/* On ajoute une ligne à insérer */
$aLignes[] = "('". $allt[0][$i] ."', '". $allt[1][$i] .")". PHP_EOL;
}
/* Construction de la base de la requête : */
$sql = "INSERT INTO maj (id_comp,index) VALUES ". PHP_EOL;
/* Suite de la construction en ajoutant les lignes de données */
$sql .= implode(',', $aLignes);
/* On vérifie ce que ça donne */
echo("<pre>\n");
var_dump($sql);
echo("</pre>\n");
/* Si la requête est correcte, on l'exécute */
//... mysql_query($sql);
?>
Essaye ça et observe ce qui se passe. Reviens poser des questions si nécessaire.