Vous n'êtes pas identifié(e).
Pages :: 1
Bonjour,
J'ai une base Mysql, et je souhaite mettre à jour des champs via un formulaire. Sélection de l'enregistrement à mettre à jour, upload d'un fichier (image, doc ou autre), et écriture du lien, du nom et de l'extension du fichier dans la base. Voilà ce que j'ai écris :
$id = $_GET["id"];
..............................
// on écrit la requête sql
$sql = "UPDATE manifestations SET(lien_fichier, fichier, extension) VALUES('$dossier$fichier', '$fichier', '$extension') where id='$id'";
Et voici le message en retour :
Chargement effectué avec succès !Erreur SQL !UPDATE manifestations SET(lien_fichier, fichier, extension) VALUES('./dossier_upload/toto.doc', 'toto.doc', '.doc') where id=''You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(lien_fichier, fichier, extension) VALUES('./dossier_upload/toto.doc' at line 1
Pourriez-vous m'aider ? Merci.
Hors ligne
et si tu mets :
$sql = "UPDATE manifestations SET(lien_fichier, fichier, extension) VALUES('".$dossier . $fichier."', '$fichier', '$extension') where id='$id'";
Hors ligne
Ben non ! Là, je n'ai plus de message d'erreur, mais rien n'est uploadé, rien ne s'affiche. C'est comme si il ne se passait rien .....
Hors ligne
Saluton,
Cette syntaxe de l'UPDATE n'est pas au standard SQL, essaye celle-ci
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
chui con j'ai même pas vu le update ^^ je croyai que c'était un insert
Hors ligne
Hors ligne
En fait, mon premier problème est que je n'arrive pas à récupérer mon ID. Car je commence par afficher un tableau (aff_manif.php) où je sélectionne l'enregistrement à modifier. Puis j'affiche une fenêtre d'upload de fichier (upload.htm). Et enfin je mets à jour la base (add-manif-pj). C'est dans cette dernière partie où je fais mon $_GET["id"]. Et en fait, il faudrait soit que je le récupère dans mon upload.htm, et que je le promène de script en script (mais comment le récupère t'on dans l'upload pour ensuite le passer au add-manif ?), soit je mets le script add-manif-pj.php dans l'upload, mais que devient
<form enctype="multipart/form-data" method="POST" action="add-manif-pj.php" value="envoyer" name="soumettre">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
<input type="file" name="monfichier" size="51" /><p>
<input type="reset" value="Effacer">
<input type="submit" name="preview" value="Valider">
de l'upload ? Comment l'écrire ?
Hors ligne
Soit tu utilises les sessions pour le transmettre de page en page soit tu utilises des champs hidden dans ton formulaire.
Hors ligne
Merci morgan47 ! Mais ça ne fonctionne pas, je me mélange les pinceaux et j'y comprends plus rien !!!!!!!! Je n'arrive toujours pas à récupérer mon "id":mad:
Voici ma boîte d'upload (j'ai mis la ligne "<input type="hidden" name="MAX_FILE_SIZE" value="2000000" />" en commentaire car sinon ça me fait deux lignes de type="hidden", et je ne pense pas que ce soit correct :
<form enctype="multipart/form-data" method="POST" action="add-manif-pj_4.php" value="envoyer" name="soumettre">
<!--<input type="hidden" name="MAX_FILE_SIZE" value="2000000" />-->
<input type="hidden" name="id" value="<? echo $_GET['id']; ?>" />
<input type="file" name="monfichier" size="51" /><p>
<input type="reset" value="Effacer">
<input type="submit" name="preview" value="Valider">
</form>
ensuite, l'upload de fichier s'effectue correctement dans le répertoire désigné, mais par contre, la base n'est pas mise à jour vu que je ne récupère pas mon id :
$id = $_POST["id"];
echo 'L\'id est ';
echo $id;// --------------------Upload fichier------------------------------
$dossier = './dossier_upload/';
$fichier = basename($_FILES['monfichier']['name']);
$taille_maxi = 2000000;
$taille = filesize($_FILES['monfichier']['tmp_name']);
$extensions = array('.gif', '.jpg', '.jpeg', '.doc', '.pdf', '.PDF', '.png', '.PNG', '.GIF', '.JPG', '.JPEG', '.DOC');
$extension = strrchr($_FILES['monfichier']['name'], '.');if(move_uploaded_file($_FILES['monfichier']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Chargement effectué avec succès !';
}
$requete_update = "UPDATE manifestations SET lien_fichier='".$lien_fichier."' , fichier='".$fichier."' , extension='".$extension."' WHERE id=".$_GET['id']."";// on insère les informations du formulaire dans la table
mysql_query($requete_update) or die('Erreur SQL !'.$sql.mysql_error());
Et voici mon message d'erreur : L'id est Chargement effectué avec succès !Erreur SQL !You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 :(
Qu'est-ce qu'il faut faire ?
Hors ligne
Saluton,
Il faudrait choisir, c'est $_POST['id'] ou $_GET['id'], mais pas un coup l'un, un coup l'autre.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Effectivement ! J'ai essayé avec POST, et le résultat est le même qu'avec GET !!!!!! Même message d'erreur .....
Hors ligne
Si tu faisais apparaître le texte de la requête tel qu'il est soumis par PHP à MySQL, ton erreur te sauterait aux yeux.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
tu transmets l'id en POST donc tu ne peux pas l'utilisé en GET dans ta requète
Hors ligne
Pages :: 1