PROBLEME INSERT INTO AVEC PHP
husk
-
husk -
husk -
Bonjour,
J'ai un petit problème. Je suis en train de réaliser un site internet et je crée une page d'administration du site dans laquelle se trouve un formulaire où l'admin pourra uploader une image sur le serveur et écrire la description de l'image. J'ai une base de données avec une table produits dont les champs sont : id, image(chemin où se trouve l'image) et texte(description de l'image).
Lors de l'envoie des données par le formulaire je vais vers une page upload.php où j'ai un bout de code qui fait ca :
$image = "images/mon_image.jpg"
$description = $_POST['texte_fichier'] (texte_fichier étant le name de mon input type=text du formualire).
Ce qui ne va pas c'est que la valeur $image apparait bien dans le champ image de ma table mais pas la valeur $description. J'ai même fait un echo $description pour voir si $description était vide mais il m'affiche bien la description que j'ai rentrée dans le formulaire et aucune erreur ne s'affiche.
Je ne vois vraiment pas ce que cela peut être!
Merci d'avance
J'ai un petit problème. Je suis en train de réaliser un site internet et je crée une page d'administration du site dans laquelle se trouve un formulaire où l'admin pourra uploader une image sur le serveur et écrire la description de l'image. J'ai une base de données avec une table produits dont les champs sont : id, image(chemin où se trouve l'image) et texte(description de l'image).
Lors de l'envoie des données par le formulaire je vais vers une page upload.php où j'ai un bout de code qui fait ca :
$connect = mysql_connect("localhost", "root", ""); mysql_select_db("ma_bd", $connect) or die (mysql_error()); mysql_query("INSERT INTO produits (image, texte) VALUES ('".$image."', '".$description."')") or die (mysql_error());
$image = "images/mon_image.jpg"
$description = $_POST['texte_fichier'] (texte_fichier étant le name de mon input type=text du formualire).
Ce qui ne va pas c'est que la valeur $image apparait bien dans le champ image de ma table mais pas la valeur $description. J'ai même fait un echo $description pour voir si $description était vide mais il m'affiche bien la description que j'ai rentrée dans le formulaire et aucune erreur ne s'affiche.
Je ne vois vraiment pas ce que cela peut être!
Merci d'avance
A voir également:
- PROBLEME INSERT INTO AVEC PHP
- Touche insert - Guide
- Easy php - Télécharger - Divers Web & Internet
- Disk boot failure insert system disk and press enter - Guide
- Expert php pinterest - Télécharger - Langages
- Insert boot media in selected boot device and press a key ✓ - Forum Windows 10
14 réponses
Salut,
bon déjà je te conseil de mettre la resource dans le mysql_query ca t'évitera des soucis ultérieurement -->
mysql_query($sSql, $connect );
avec $sSql = "INSERT INTO produits (image, texte) VALUES ('".$image."', '".$description."')";
ensuite pour etster c'est simple dans ton code Php tu fais un
echo $sSql
Tu copies coles ca dans la fenetre SQL de phpMyAdmin et tu devrais avoir un message d'"erreur assez explicite.
Et puis je te conseil aussi de faire un addslashes() pour éviter que dans ta requete il y ait des ' ou des " qui viendrait casser ta requete.
bon déjà je te conseil de mettre la resource dans le mysql_query ca t'évitera des soucis ultérieurement -->
mysql_query($sSql, $connect );
avec $sSql = "INSERT INTO produits (image, texte) VALUES ('".$image."', '".$description."')";
ensuite pour etster c'est simple dans ton code Php tu fais un
echo $sSql
Tu copies coles ca dans la fenetre SQL de phpMyAdmin et tu devrais avoir un message d'"erreur assez explicite.
Et puis je te conseil aussi de faire un addslashes() pour éviter que dans ta requete il y ait des ' ou des " qui viendrait casser ta requete.
HuHu :
$descritpion = $_POST['texte_fichier'];
T'AS UNE FAUTE D'ORTHOGRAPHE ! --> D E S C R I T P O N
muhuha ça rend fou ces erreurs :P
Pour ce qui est du getimagesize, c'est normal tu ne donnes pas le bon path !, la tu donne un tableau en parametre... il faut lui donner le path de la photo uploadée sur le serveur.
$descritpion = $_POST['texte_fichier'];
T'AS UNE FAUTE D'ORTHOGRAPHE ! --> D E S C R I T P O N
muhuha ça rend fou ces erreurs :P
Pour ce qui est du getimagesize, c'est normal tu ne donnes pas le bon path !, la tu donne un tableau en parametre... il faut lui donner le path de la photo uploadée sur le serveur.
Pour ton getimagesize, il te manque une partie ^^
comme ca ca devrait etre mieux
$size=getimagesize($_FILES["mon_fichier"]['tmp_name']);
comme ca ca devrait etre mieux
$size=getimagesize($_FILES["mon_fichier"]['tmp_name']);
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai champs le nom de champs. Au lieu de "texte" j'ai mis "description" et ca marche toujours pas :(
Merci beaucoup de ta réponse rapide!
J'ai fait comme tu m'as dit et le echo $sSql me donne ca :
Bizarre non? mon echo $description m'affiche bien la description mise dans mon formulaire mais ca n'apparait pas dans $sSql!
et oui j'ai bien penser utiliser les addslashes() mais pour le moment j'aimerais trouver la solution à ce problème. là je comprend pas!!
J'ai fait comme tu m'as dit et le echo $sSql me donne ca :
INSERT INTO produits(image, description) VALUES ('images/mon_image.jpg', '')
Bizarre non? mon echo $description m'affiche bien la description mise dans mon formulaire mais ca n'apparait pas dans $sSql!
et oui j'ai bien penser utiliser les addslashes() mais pour le moment j'aimerais trouver la solution à ce problème. là je comprend pas!!
Il est possible que tu ai genre '<as' en début de chaine et au final ton navigateur ne l'affiche pas car il considère ça comme une balise, je te conseil le debug ultime --> var_dump($sSql);
dis moi ce que tu vois ;)
dis moi ce que tu vois ;)
le var_dump m'affiche exactement la même chose que le echo $sSql!
Peut-être que si je met $_POST['texte_fichier'] à la place de $description ca marcheras! mais bon..
Peut-être que si je met $_POST['texte_fichier'] à la place de $description ca marcheras! mais bon..
oula je trouve ça bizar, tu veux dire :
$sDescription = $_POST['texte_fichier'];
var_dump($_POST['texte_fichier']);
//Différent de
var_dump($sDescription);
Si oui effectivement c'est plus qu'étrange, essaye de faire le test en supprimant tout ce qu'il y a d'autre dans ton code qui pourrait parasiter genre y ap 'tet un moment qui re-set ta variable car la c'est vraiment plus qu'étrange.
sinon de rien ;)
$sDescription = $_POST['texte_fichier'];
var_dump($_POST['texte_fichier']);
//Différent de
var_dump($sDescription);
Si oui effectivement c'est plus qu'étrange, essaye de faire le test en supprimant tout ce qu'il y a d'autre dans ton code qui pourrait parasiter genre y ap 'tet un moment qui re-set ta variable car la c'est vraiment plus qu'étrange.
sinon de rien ;)
slt,
peux tu afficher tout ton code, c'est etrange ce que tu dis. Essaie de changer de nom de variable et reprend ton test.
thx
peux tu afficher tout ton code, c'est etrange ce que tu dis. Essaie de changer de nom de variable et reprend ton test.
thx
Ben ja'i beau chercher je vois pas!
voilà le code en entier :
voilà le code en entier :
<?php $repertoireDestination = "../images/"; $nomRepertoireBD = "images/"; $nomDestination = $_FILES["mon_fichier"]["name"]; $descritpion = $_POST['texte_fichier']; $image=$nomRepertoireBD.$nomDestination; echo $description; $size=getimagesize($_FILES["mon_fichier"]); if ($size[2]!=1 && $size[2]!=2 && $size[2]!=3 ...) echo "Mauvaise extension"; if (is_uploaded_file($_FILES["mon_fichier"]["tmp_name"])) { if (file_exists($repertoireDestination.$nomDestination)) echo "Nom déjà existant"; else if { $connect = mysql_connect("localhost", "root", ""); mysql_select_db("ma_db", $connect) or die (mysql_error()); $sSql="INSERT INTO produits (image, description) VALUES ('".$image."', '".$_POST['texte_fichier']."')"; mysql_query($sSql, $connect); echo $sSql."</br></br>"; var_dump($sSql); echo "</br>Fichier uploadé"; } else echo "ECHEC"; } else echo "Fichier non-uploadé!";
Et voici ce qu'affiche I.E depuis WAMP :
description
WARNING: getimagesize(Array) [function.getimagesize]: failed to open stream: No such directory in C:\wamp\www\xxxx\admin\upload.php on line 9
Mauvaise extension
INSERT INTO produits(image, description) VALUES ('images/mon_image.jpg', 'description')
string(83) INSERT INTO produits(image, description) VALUES ('images/mon_image.jpg', 'description')
Fichier uploadé
dans le cas où je mets $description au lieu de $_POST['texte_fichier'] le 'description' dans VALUES n'y est pas j'obtiens : ''.
Il y a une erreur avec le getimagesize mais ce n'est pas le problème (enfin je pense)!
description
WARNING: getimagesize(Array) [function.getimagesize]: failed to open stream: No such directory in C:\wamp\www\xxxx\admin\upload.php on line 9
Mauvaise extension
INSERT INTO produits(image, description) VALUES ('images/mon_image.jpg', 'description')
string(83) INSERT INTO produits(image, description) VALUES ('images/mon_image.jpg', 'description')
Fichier uploadé
dans le cas où je mets $description au lieu de $_POST['texte_fichier'] le 'description' dans VALUES n'y est pas j'obtiens : ''.
Il y a une erreur avec le getimagesize mais ce n'est pas le problème (enfin je pense)!