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

Eléphant du PHP | 61 Messages

01 mai 2019, 23:15

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.

Eléphant du PHP | 61 Messages

01 mai 2019, 23:18

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([ ... ]);
}

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

02 mai 2019, 01:07

Tu peux effectivement construire ta requête SQL pour insérer plusieurs lignes à la fois :
https://sql.sh/cours/insert-into
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 61 Messages

02 mai 2019, 03:20

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.

Mammouth du PHP | 1967 Messages

02 mai 2019, 09:39

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.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube