Problèmes d'insertion - PHP - Programmation
Marsh Posté le 23-11-2004 à 14:09:36
Houlalala par pitier
Prenez de bonne habitude quand vous codez. Certe c'est pas lier à cela mais évité de mettre des variables dans une chaine de caractère.
Code :
|
Code :
|
Pour ton probleme c'est quoi le type de champ de ta table ? c'est un datetime ? regarde comment tu formates ta date.
Fait un echo mysql_error() apres tes requettes.
Marsh Posté le 23-11-2004 à 14:13:17
$_POST['tf_Ref1'] c'est quoi? A vue de nez il est toujours set mais des fois il est vide! n'est-ce pas?
Marsh Posté le 23-11-2004 à 14:24:50
+1 pour la remarque de Berceker United, il vaut mieux concaténer que mettre les variable dans la chaine, mais tu peux aller plus loin puisqu'il n'y a plus de variable dans tes chaines, utilise des simple quote au lieu des doubles.
Double quote, le serveur va regarder s'il y a des variables dans la chaine, s'il n'y en a pas, pas besoin qu'il y regarde --> simple quote --> léger gain en temps de génération de la page (d'accord, on parle de milliseconde sur des centaine d'itérations, mais kit à faire du code propre, autant aller au bout )
Marsh Posté le 23-11-2004 à 21:25:14
=> ce qu'a dit bob007.
A tous les coups c'est un champ input text qui est vide, et qui existe donc mais contient la chaîne vide. Il faudrait donc vérifier qu'il contient qqchose au lieu de vérifier son existence.
Marsh Posté le 24-11-2004 à 09:05:24
tout à fait!
if (isset($_POST['tf_Ref1']) && $_POST['tf_Ref1'])
{
}
Marsh Posté le 23-11-2004 à 13:19:38
Salut,
J'ai fait une page qui permet d'insérer des fiches dans une base MySql, la page en question permet d'insérer 5 fiches à la fois mais le problèmes c'est que si je veux en insérer qu'une, ça m'en met quand même 5 dont 4 vides. Pourtant je fais des tests.... voila mon code:
<?include("_connexion.php" );
if (ISSET($_POST['tf_Ref1'])) {
$Ref = $_POST['tf_Ref1'];
$Titre = $_POST['tf_Titre1'];
$Auteur = $_POST['tf_Auteur1'];
$dateEntree = $_POST['hd_DateE'];
$Titre = str_replace("'","'",$Titre);
$Auteur = str_replace("'","'",$Auteur);
$query = "INSERT INTO livres (Ref, Titre, Auteur, DateEntree) VALUES ('$Ref', '$Titre', '$Auteur', '$dateEntree')";
$result = mysql_query($query);
}
if (ISSET($_POST['tf_Ref2'])) {
$Ref2 = $_POST['tf_Ref2'];
$Titre2 = $_POST['tf_Titre2'];
$Auteur2 = $_POST['tf_Auteur2'];
$dateEntree2 = $_POST['hd_DateE2'];
$Titre2 = str_replace("'","'",$Titre2);
$Auteur2 = str_replace("'","'",$Auteur2);
$query2 = "INSERT INTO livres (Ref, Titre, Auteur, DateEntree) VALUES ('$Ref2', '$Titre2', '$Auteur2', '$dateEntree2')";
$result2 = mysql_query($query2);
}
if (ISSET($_POST['tf_Ref3'])) {
$Ref3 = $_POST['tf_Ref3'];
$Titre3 = $_POST['tf_Titre3'];
$Auteur3 = $_POST['tf_Auteur3'];
$dateEntree3 = $_POST['hd_DateE3'];
$Titre3 = str_replace("'","'",$Titre3);
$Auteur3 = str_replace("'","'",$Auteur3);
$query3 = "INSERT INTO livres (Ref, Titre, Auteur, DateEntree) VALUES ('$Ref3', '$Titre3', '$Auteur3', '$dateEntree3')";
$result3 = mysql_query($query3);
}
if (ISSET($_POST['tf_Ref4'])) {
$Ref4 = $_POST['tf_Ref4'];
$Titre4 = $_POST['tf_Titre4'];
$Auteur4 = $_POST['tf_Auteur4'];
$dateEntree4 = $_POST['hd_DateE4'];
$Titre4 = str_replace("'","'",$Titre4);
$Auteur4 = str_replace("'","'",$Auteur4);
$query4 = "INSERT INTO livres (Ref, Titre, Auteur, DateEntree) VALUES ('$Ref4', '$Titre4', '$Auteur4', '$dateEntree4')";
$result4 = mysql_query($query4);
}
if (ISSET($_POST['tf_Ref5'])) {
$Ref5 = $_POST['tf_Ref5'];
$Titre5 = $_POST['tf_Titre5'];
$Auteur5 = $_POST['tf_Auteur5'];
$dateEntree5 = $_POST['hd_DateE5'];
$Titre5 = str_replace("'","'",$Titre5);
$Auteur5 = str_replace("'","'",$Auteur5);
$query5 = "INSERT INTO livres (Ref, Titre, Auteur, DateEntree) VALUES ('$Ref5', '$Titre5', '$Auteur5', '$dateEntree5')";
$result5 = mysql_query($query5);
}
?>
D'ou peut venir l'erreur (apparemment c'est du à la date, car quand j'en mets pas, ça marche...)