Page 1 sur 1

Insertion d'un tableau en basse de données.

Posté : 01 mai 2019, 23:15
par parfait
Bonsoir...
J'ai un petit souci avec mon code.
En fait j'ai envie de sauvegarde les commandes de chaque clients en BD. Jusqu'à présent suis obligé de faire une boucle pour insérer chaque produit du panier dans la BD :
$req = $bdd-query('SELECT * FROM store WHERE id IN ('.implode(',',$id).')');

foreach($rep as $r){
$ins = $bdd->prépare('INSERT INTO .....');
$ins->execute([ ... ]);
}
Mais je trouve cette méthode très lourde puisque à chaque article un nouvel enregistrement.
Il y a une méthode pour le faire dans un seul enregistrement?

Merci de m'aider.

Re: Insertion d'un tableau en basse de données.

Posté : 01 mai 2019, 23:18
par parfait
Oups... J'ai oublié le coloration syntaxique...
$req = $bdd-query('SELECT * FROM store WHERE id IN ('.implode(',',$id).')');

foreach($rep as $r){
$ins = $bdd->prépare('INSERT INTO .....');
$ins->execute([ ... ]);
}

Re: Insertion d'un tableau en basse de données.

Posté : 02 mai 2019, 01:07
par @rthur
Tu peux effectivement construire ta requête SQL pour insérer plusieurs lignes à la fois :
https://sql.sh/cours/insert-into

Re: Insertion d'un tableau en basse de données.

Posté : 02 mai 2019, 03:20
par parfait
Bonsoir je viens de lire le lien mais il y a pas ce que le veux!!!
Leur INSERT INTO insert sue plusieurs lignes alors que je veux stoker toutes les information sur une seule ligne.

Re: Insertion d'un tableau en basse de données.

Posté : 02 mai 2019, 09:39
par Spols
tu as la possibilité de sérialiser les données avec serialise() / unserialise() ou en JSON

mais il faut savoir qu'une recherche dans ces données sérialiser est plus difficile. si tu cherche à connaitre la liste de tous les clients ayant acheté le produit X, il te faudra parcourir toutes les comande, les déserialiser et vérifier.

A toi de voir si l'avantge en vaut les inconvénient.