Besoin de faire une requête dans un boucle
pedro-webmaster
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
-
pedro-webmaster Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
pedro-webmaster Messages postés 14 Date d'inscription Statut Membre Dernière intervention -
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
- Requête sql pix - Forum Python
- Boucle excel sans macro - Forum Excel
- 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
- Vlc lire en boucle ✓ - Forum Lecteurs et supports vidéo
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.