Double insertion de données je ne comprend pas !

Signaler
Messages postés
6
Date d'inscription
samedi 26 avril 2003
Statut
Membre
Dernière intervention
21 février 2008
-
Messages postés
1
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
22 juin 2005
-
Bonjour à tous,

jai un petit soucis qui doit pas etre bien complqiué mais je bloque depuis 3 jours !!

en fait jai un formulaire qui ajoute des données dans ma BDD et dans ce form il y a un champs pr parcourir et aller chercher son image. Le probleme c'est que quand la personne rempli tou les champs mai ne met pas dimage, alors il m'insert les données quil a inscrite + une ligne de donnée vide, donc au final pr un enregistrement jen ai deux dont un vide !

Alors que ca fonctionne parfaitement lorsqu'il met une image.... pouvez vous maider svp ?

voici le code :

-------------------------
if ($menu=="1"){

// DEBUT UPLOAD IMAGE ------------------------------------------------------------------
$message="";


if ($boolform==1)
{
//vérifie que l'upload s'est bien passé
if (is_uploaded_file($upfile))
{
//vérifie que le fichier est non vide
if ($upfile_size>0)
{
//vérifie si la taille du fichier ne dépasse pas la limite
if ($upfile_size>$maxsize)
{
//fichier trop grand
$message="Le fichier a une taille supérieure à la limite autorisée!";
}
else
{
//taille correcte, vérification du type de fichier
$type=right($upfile_name,3);


if ($type=="$type1" || $type=="$type2" || $type=="$type3" || $type=="$type4" || $type=="$type5" || $type=="$type6")
{
//on va chercher la date de la journée sous la forme annéemoisjourheureminuteseconde (ex : 200361015159)
$tmp=getdate();
$jour=$tmp['mday'];
$mois=$tmp['mon'];
$annee=$tmp['year'];
$h=$tmp['hours'];
$m=$tmp['minutes'];
$s=$tmp['seconds'];
$tout="$annee$mois$jour$h$m$s";
//on calcule le nombre de lettres avant le premier point
$res = strpos("$upfile_name",".");
//on extrait le nombre de lettre avant le point
$type2=left($upfile_name,$res);
//sauvegarde du fichier uploadé
$savefile=$type2.".".$tout.".".$type;
move_uploaded_file($upfile, "photos/".$savefile);

//création de la miniature
include ("resize.php");
//fin creation
}
else
{
$message="Ce type de fichier n'est pas autorisé!";



}
}
}
}
else
{
//erreur
}
}


?>
<center>
<?php
if ($message!="")
{
echo "$message";
}
else {
}
// FIN UPLOAD IMAGE ------------------------------------------------------------------


/* insertion de la nouvelle rubrique */
$query5 = "INSERT INTO breve VALUES ('','$auteur','$titre','$yourFieldNameHere','$savefile','$mois','$annee')";
$result5 = mysql_query($query5) or die('Erreur SQL !
'.$query5.'
'.mysql_error());
echo "
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;==> Votre brève à été ajouté !
";
}

}
else{
$menu="0";
}
----------------------------------

1 réponse

Messages postés
1
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
22 juin 2005

Hello,

J'utilise le même script (enfin à peu près), je vais essayer de t'aider comme je peux. Pour commencer changer le nom de la variable "$type2= left($upfile_name,$res);" par $ntype...

Ensuite, il y a une erreur de syntaxe dans ta requête SQL : tu as noté :

$query5 = "INSERT INTO breve VALUES ('' , '$auteur','$titre','$yourFieldNameHere','$savefile','$mois','$annee')";
$result5 = mysql_query($query5) or die('Erreur SQL !
'.$query5.'
'.mysql_error());

ça devrait mieux marcher comme ça :

$query5 = "INSERT INTO breve VALUES ('''$auteur','$titre','$yourFieldNameHere','$savefile','$mois','$annee')";
$result5 = mysql_query($query5) or die('Erreur SQL !
'.$query5.'
'.mysql_error());

En plus, dans ta requête SQL, tu insères les valeurs $auteur, $titre, etc...dans ta table "breve" mais tu n'as pas déclaré quelles valeurs correspond à quel champ.

J'espère que ça marche...vive le débuggage !