par
Cyrano » 27 oct. 2005, 09:06
Tu pourrais surtout préparer d'abord la requête avec la boucle, une requête unique et ensuite suelement l'exécuter au lieu de faire autnt d'inserion qu'il y a de données, schéma:
<?php
$nb = count($tab);
$sql = "INSERT INTO table VALUES";
for ($i = 0; $i < $nb; $i++) {
$sql = ($i < ($nb - 1)) ? "('', '". $tab[$i] ."'), " : "('', '". $tab[$i] ."')";
}
mysql_query($sql);
?>
Explications:
-1- d'abord on initialise le début de la requête;
-2- À chaque tour de boucle, on ajoute
la paire de valeur (Tu as précisé DEUX champ, or comme tu ne précises pas ces champs avec la table dans lle début de la requête, il faut des valeurs vides là où la valeur sera automatiquement inscrite pas la base elle-même;
-3- Tant qu'on est pas à la dernière valeur, on ajoute une virgule à la fin des valeurs;
-4- on sort de la boucle et seulement à ce moment on exécute l'insertion en UNE SEULE FOIS.
Tu pourrais surtout préparer d'abord la requête avec la boucle, une requête unique et ensuite suelement l'exécuter au lieu de faire autnt d'inserion qu'il y a de données, schéma:
[php]<?php
$nb = count($tab);
$sql = "INSERT INTO table VALUES";
for ($i = 0; $i < $nb; $i++) {
$sql = ($i < ($nb - 1)) ? "('', '". $tab[$i] ."'), " : "('', '". $tab[$i] ."')";
}
mysql_query($sql);
?>[/php]
Explications:
-1- d'abord on initialise le début de la requête;
-2- À chaque tour de boucle, on ajoute [u]la paire[/u] de valeur (Tu as précisé DEUX champ, or comme tu ne précises pas ces champs avec la table dans lle début de la requête, il faut des valeurs vides là où la valeur sera automatiquement inscrite pas la base elle-même;
-3- Tant qu'on est pas à la dernière valeur, on ajoute une virgule à la fin des valeurs;
-4- on sort de la boucle et seulement à ce moment on exécute l'insertion en UNE SEULE FOIS.