inserer php array a mysql

Rechercher

inserer php array a mysql

Par rachidww2  -  1 reponse  -  Le 15/04/2013 01:32  -  Editer  - 

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

Par Cyrano  -  Le 15/04/2013 21:14  -  Haut de page  - 

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.

 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !

Identifiez-vous
Join |  ID/MDP? |