Inserer toutes les valeur d'un tableau dans une table MYSQL

Petit nouveau ! | 3 Messages

20 mai 2011, 11:39

Bonjour, voici mon problème

Admettons un tableau associatif comme ceci:

$result = array("1"=>"bonjour","2"=>"hello","3"=>"hola");

Maintenant que j'ai ce tableau PHP je voudrais faire une requête d'INSERT qui mettent chaque "ligne" de mon tableau dans ma table MYSQL qui contient les champ id et mots ( id = 1 et mot = bonjour par exemple).

> J'aurais aimé savoir si c'était possible d'effectuer une telle requête et si oui comment.

Merci
Bonne journnée

Eléphant du PHP | 241 Messages

20 mai 2011, 12:47

Salut,

tu peux utiliser un foreach
foreach ($result as $id=>$mot) {
	//Ta requête SQL  "INSERT INTO ma_table VALUES($id,$mot)"
}

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

20 mai 2011, 13:20

je verrais plutôt un truc comme ça
<?php
$result = array("1"=>"bonjour","2"=>"hello","3"=>"hola");
$SQL =  'INSERT INTO ma_table (id,mot) VALUES';
foreach ($result as $id=>$mot) {
        $SQL .= '('.mysql_real_escape_string($id).',\''.mysql_real_escape_string($mot).'\'),';
}
$SQL = substr($SQL,0,-1).';';
var_dump($SQL); // ça c'est juste pour voir le résultat ^^
?>
ça te permet une insertion de tous en une seule fois.

@+
Il en faut peu pour être heureux ......

sara
Invité n'ayant pas de compte PHPfrance

30 mai 2012, 23:25

j'ai appliqué ton code mais ça donne pas de résultat au niveau de la base ; la fonction var_dump permet d'afficher le résultat au niveau du navigateur mais ma base reste tjr vide

kny
Eléphanteau du PHP | 47 Messages

31 mai 2012, 14:59

Moogli > Il n'y a pas forcément besoin de rajouter le ";" (point-virgule) avec la requête. Tout dépend de la façon dont elle va être utilisée.
Sara > Tu n'as aucune erreur en retour?