[php] Problème d'insertion avc un formulaire?
sylvain42
-
Alain42 -
Alain42 -
Bonjour,
j'ai créé un formulaire php pour insérer des données dans ma bdd, j'ai utilisé des tableaux php avec les crochets [], je vais afficher mon code pour que vous compreniez:
-Voici une partie du code pour le form:
<TABLE CELLSPACING=2>
<?php
$nomreghm = ExecRequete ("SELECT * FROM Regime WHERE coderegime=1 OR coderegime=10 ORDER BY coderegime", $connexion);
$nomreg5 = ExecRequete ("SELECT * FROM Regime WHERE coderegime=2 OR coderegime=3 OR coderegime=4 OR coderegime=5 OR coderegime=6 ORDER BY coderegime", $connexion);
$nomregrest = ExecRequete ("SELECT * FROM Regime WHERE coderegime<>1 AND coderegime<>10 AND coderegime<>2 AND coderegime<>3 AND coderegime<>4 AND coderegime<>5 AND coderegime<>6 ORDER BY coderegime", $connexion);
echo "<TR>";
while($regime1 = ObjetSuivant ($nomreghm))
{
$coderegime0[] = $regime1->coderegime;
echo "<TD>$regime1->nomregime :</TD>"
. "<TD><select size='1' name='valeurreg0[]'>"
. "<option VALUE='Non'>Non</option>"
. "<option VALUE='Oui'>Oui</option>"
. "</select></TD>";
}
echo "</TR>";
echo "<TR>";
while($regime2 = ObjetSuivant ($nomreg5))
{
$coderegime1[] = $regime2->coderegime;
echo "<TD>$regime2->nomregime :</TD>"
. "<TD><select size='1' name='valeurreg1[]'>"
. "<option VALUE='Non'>Non</option>"
. "<option VALUE='Oui'>Oui</option>"
. "</select></TD>";
}
echo "</TR>";
echo "<TR>";
while($regime3 = ObjetSuivant ($nomregrest))
{
$coderegime2[] = $regime3->coderegime;
echo "<TD>$regime3->nomregime :</TD>"
. "<TD><select size='1' name='valeurreg2[]'>"
. "<option VALUE='Non'>Non</option>"
. "<option VALUE='Oui'>Oui</option>"
. "</select></TD>";
}
echo "</TR>";
?>
</TABLE>
-Partie du code qui insère:
while ($coderegime = ObjetSuivant($reg))
{
$valeurreg = $valeurreg0[$i];
$coderegime = $coderegime0[$i];
$requetereg = "INSERT INTO Redime (codechambre, coderegime, valeurreg) "
. " VALUES ('$codechambre', '$coderegime', '$valeurreg')";
}
while ($coderegime = ObjetSuivant($reg))
{
$valeurreg = $valeurreg1[$i];
$coderegime = $coderegime1[$i];
$requetereg = "INSERT INTO Redime (codechambre, coderegime, valeurreg) "
. " VALUES ('$codechambre', '$coderegime', '$valeurreg')";
}
while ($coderegime = ObjetSuivant($reg))
{
$valeurreg = $valeurreg2[$i];
$coderegime = $coderegime2[$i];
$requetereg = "INSERT INTO Redime (codechambre, coderegime, valeurreg) "
. " VALUES ('$codechambre', '$coderegime', '$valeurreg')";
}
Et quand je teste, voici le message d'erreur: "Erreur dans l'exécution de la requête 'INSERT INTO Redime (codechambre, coderegime, valeurreg) VALUES ('74', '', '')'.
Message de MySQL : Cannot add or update a child row: a foreign key constraint fails"
coderegime et valeurreg prend aucune valeur.
Si vous voyez, merci de m'aider car c'est un problème urgent dans mon boulot.
cordialement
j'ai créé un formulaire php pour insérer des données dans ma bdd, j'ai utilisé des tableaux php avec les crochets [], je vais afficher mon code pour que vous compreniez:
-Voici une partie du code pour le form:
<TABLE CELLSPACING=2>
<?php
$nomreghm = ExecRequete ("SELECT * FROM Regime WHERE coderegime=1 OR coderegime=10 ORDER BY coderegime", $connexion);
$nomreg5 = ExecRequete ("SELECT * FROM Regime WHERE coderegime=2 OR coderegime=3 OR coderegime=4 OR coderegime=5 OR coderegime=6 ORDER BY coderegime", $connexion);
$nomregrest = ExecRequete ("SELECT * FROM Regime WHERE coderegime<>1 AND coderegime<>10 AND coderegime<>2 AND coderegime<>3 AND coderegime<>4 AND coderegime<>5 AND coderegime<>6 ORDER BY coderegime", $connexion);
echo "<TR>";
while($regime1 = ObjetSuivant ($nomreghm))
{
$coderegime0[] = $regime1->coderegime;
echo "<TD>$regime1->nomregime :</TD>"
. "<TD><select size='1' name='valeurreg0[]'>"
. "<option VALUE='Non'>Non</option>"
. "<option VALUE='Oui'>Oui</option>"
. "</select></TD>";
}
echo "</TR>";
echo "<TR>";
while($regime2 = ObjetSuivant ($nomreg5))
{
$coderegime1[] = $regime2->coderegime;
echo "<TD>$regime2->nomregime :</TD>"
. "<TD><select size='1' name='valeurreg1[]'>"
. "<option VALUE='Non'>Non</option>"
. "<option VALUE='Oui'>Oui</option>"
. "</select></TD>";
}
echo "</TR>";
echo "<TR>";
while($regime3 = ObjetSuivant ($nomregrest))
{
$coderegime2[] = $regime3->coderegime;
echo "<TD>$regime3->nomregime :</TD>"
. "<TD><select size='1' name='valeurreg2[]'>"
. "<option VALUE='Non'>Non</option>"
. "<option VALUE='Oui'>Oui</option>"
. "</select></TD>";
}
echo "</TR>";
?>
</TABLE>
-Partie du code qui insère:
while ($coderegime = ObjetSuivant($reg))
{
$valeurreg = $valeurreg0[$i];
$coderegime = $coderegime0[$i];
$requetereg = "INSERT INTO Redime (codechambre, coderegime, valeurreg) "
. " VALUES ('$codechambre', '$coderegime', '$valeurreg')";
}
while ($coderegime = ObjetSuivant($reg))
{
$valeurreg = $valeurreg1[$i];
$coderegime = $coderegime1[$i];
$requetereg = "INSERT INTO Redime (codechambre, coderegime, valeurreg) "
. " VALUES ('$codechambre', '$coderegime', '$valeurreg')";
}
while ($coderegime = ObjetSuivant($reg))
{
$valeurreg = $valeurreg2[$i];
$coderegime = $coderegime2[$i];
$requetereg = "INSERT INTO Redime (codechambre, coderegime, valeurreg) "
. " VALUES ('$codechambre', '$coderegime', '$valeurreg')";
}
Et quand je teste, voici le message d'erreur: "Erreur dans l'exécution de la requête 'INSERT INTO Redime (codechambre, coderegime, valeurreg) VALUES ('74', '', '')'.
Message de MySQL : Cannot add or update a child row: a foreign key constraint fails"
coderegime et valeurreg prend aucune valeur.
Si vous voyez, merci de m'aider car c'est un problème urgent dans mon boulot.
cordialement
A voir également:
- [php] Problème d'insertion avc un formulaire?
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook compte désactivé - Guide
- Touche insertion clavier - Guide
- Insertion sommaire word - Guide
- Insertion filigrane word - Guide
2 réponses
salut,
que ce soit urgent on s'en tape comme de l'an 40.
pour ton erreur c'est un problème de clé étrangère. tu as inséré des clés dans ta table qui font référence à une autre table et le serveur ne peut toucher à l'une sans toucher l'autre. à priori c'est parce qu'il faut que les clés filles existent pour insérer un nouvelle ligne.
que ce soit urgent on s'en tape comme de l'an 40.
pour ton erreur c'est un problème de clé étrangère. tu as inséré des clés dans ta table qui font référence à une autre table et le serveur ne peut toucher à l'une sans toucher l'autre. à priori c'est parce qu'il faut que les clés filles existent pour insérer un nouvelle ligne.
moi je vois aussi une erreur:
while ($coderegime = ObjetSuivant($reg))
{
$valeurreg = $valeurreg0[$i];
$coderegime = $coderegime0[$i];
$requetereg = "INSERT INTO Redime (codechambre, coderegime, valeurreg) "
. " VALUES ('$codechambre', '$coderegime', '$valeurreg')";
}
dans tes boucles while tu utilises la variable $i elle est initialisée et incrémentée où ??
while ($coderegime = ObjetSuivant($reg))
{
$valeurreg = $valeurreg0[$i];
$coderegime = $coderegime0[$i];
$requetereg = "INSERT INTO Redime (codechambre, coderegime, valeurreg) "
. " VALUES ('$codechambre', '$coderegime', '$valeurreg')";
}
dans tes boucles while tu utilises la variable $i elle est initialisée et incrémentée où ??
$i=0;
while ($coderegime = ObjetSuivant($reg))
{
$valeurreg = $valeurreg0[$i];
$coderegime = $coderegime0[$i];
$requetereg = "INSERT INTO Redime (codechambre, coderegime, valeurreg) "
. " VALUES ('$codechambre', '$coderegime', '$valeurreg')";
$i++;
}