Besoin de faire une requête dans un boucle
pedro-webmaster
Messages postés
30
Statut
Membre
-
pedro-webmaster Messages postés 30 Statut Membre -
pedro-webmaster Messages postés 30 Statut Membre -
Bonjour,
j'ai besoin de faire une requête dans un boucle mais il me donne cette erreur je sais pas quel la solution !!!!
Duplicata du champ '26' pour la clef 'PRIMARY'
et voila mon code source
if($nbre!=0)
{
$dernierNumero=mysql_result($resultat, 0, "nbc");
}
else
{
$dernierNumero=0;
}
for($i=0; $i<$NbreProd; $i++)
{
$numAchat=$dernierNumero;
$ref=$_SESSION['panier']['ref'][$i];
$qte=$_SESSION['panier']['qte'][$i];
$req2="insert into detai_commande(nbc, code_produit, qte_commande) values('$numAchat','$ref', '$qte')";
mysql_query($req2)or die(mysql_error());
}
merci
j'ai besoin de faire une requête dans un boucle mais il me donne cette erreur je sais pas quel la solution !!!!
Duplicata du champ '26' pour la clef 'PRIMARY'
et voila mon code source
if($nbre!=0)
{
$dernierNumero=mysql_result($resultat, 0, "nbc");
}
else
{
$dernierNumero=0;
}
for($i=0; $i<$NbreProd; $i++)
{
$numAchat=$dernierNumero;
$ref=$_SESSION['panier']['ref'][$i];
$qte=$_SESSION['panier']['qte'][$i];
$req2="insert into detai_commande(nbc, code_produit, qte_commande) values('$numAchat','$ref', '$qte')";
mysql_query($req2)or die(mysql_error());
}
merci
A voir également:
- Besoin de faire une requête dans un boucle
- Mise à disposition de boucle locale dédiée ✓ - Forum Freebox
- Boucle excel sans macro - Forum Excel
- Erreur lors de l'envoi de la requête facebook - Forum Facebook
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de tennis mais pas de tennis de table ✓ - Forum Java
1 réponse
Salut,
Imaginons que la dernière ligne dans la table ait 26 comme valeur dans la colonne ndc.
La fonction mysql_result va te retourner ce nombre.
Plus loin, tu tentes une insertion en utilisant la variable contenant le résultat de mysql_result, donc 26. Ta requête revient donc à ça :
Il faut donc l'incrémenter comme je te l'ai dit dans ton précédent sujet.
Imaginons que la dernière ligne dans la table ait 26 comme valeur dans la colonne ndc.
La fonction mysql_result va te retourner ce nombre.
Plus loin, tu tentes une insertion en utilisant la variable contenant le résultat de mysql_result, donc 26. Ta requête revient donc à ça :
INSERT INTO table(ndc,...) VALUES(26,...)Et la, l'erreur apparaît : une clé primaire (ndc) valant 26 existe déjà !
Il faut donc l'incrémenter comme je te l'ai dit dans ton précédent sujet.
if($nbre!=0) {
$dernierNumero = mysql_result($resultat, 0, "nbc");
$dernierNumero++;
} else {
$dernierNumero = 1;
}
pouvez-vous me donner une autre solution
Parce que cette solution sa marche pas
Et ta table se nomme-t-elle bien « detai_commande » ? Je pense quil manque une lettre, ou deux si c'est au pluriel.
Il faut aussi incrémenter $dernierNumero à la fin de la boucle.
if($nbre!=0) { $dernierNumero = mysql_result($resultat, 0, "nbc"); $dernierNumero++; } else { $dernierNumero = 1; } for($i = 0 ; $i < $NbreProd ; $i++) { $numAchat = $dernierNumero; $ref = $_SESSION['panier']['ref'][$i]; $qte = $_SESSION['panier']['qte'][$i]; $req2 = 'INSERT INTO detai_commande(nbc, code_produit, qte_commande) ' . 'VALUES('.$numAchat.', "'.$ref.'", '.$qte.')'; mysql_query($req2) or die(mysql_error()); $dernierNumero++; }