probleme avec formulaire de petites annonces

Eléphanteau du PHP | 29 Messages

20 avr. 2007, 19:03

pour NOW() j'ai fais un essai avec des apostrophes et sans apostrophes et cela n'a rien donné, quand je regarde ma table profile il y a rien dedans!
vas comprendre pourquoi :roll:

Avatar du membre
ViPHP
ViPHP | 3008 Messages

20 avr. 2007, 19:24

Montres nous ta requête corrigée.

As-tu fais ce que je t'ai dis à savoir exécuter ta requête sous phpMyAdmin ?

Eléphanteau du PHP | 29 Messages

20 avr. 2007, 19:51

       
// Ensuite on enregistre l'annonce


  $sql = "INSERT  INTO profile (id, sexe, pseudo, pass, email, photo, age, etatcivil, fumeur, buveur, education, pays, avoirenfant, vouloirenfant, taille, physique, apparence, religion, annonce, date) 
          VALUES ( '', '$sexe', '$pseudo', '$pass', '$email', '$photo', '$age', '$etatcivil', '$fumeur', '$buveur', '$education', '$pays', '$avoirenfant', '$vouloirenfant', '$taille, '$physique', '$apparence', '$religion', '$annonce', NOW()) " ;


j'ai fais un essai sur le serveur de free et voila ce que j'ai eu :


votre sexe : homme
votre pseudo : moimoi
votre mot de passe : 4523132
votre adresse email : [email protected]
Voilà les données de votre image:
nom => moi.jpg
taille => 56283
type de l'image => image/jpeg
code de l'erreur => 0
Taille maximale de l'image: 200000 octets
votre âge : 18
Votre état civil : Célibataire
vous êtes fumeur : Je ne fume pas
vous buvez : je bois rarement
votre éducation : Licence
votre pays : France
vous voulez avoir des enfants : non
vous voulez avoir des enfants : oui je veux des enfants
votre taille : 161 à 165 cm
la note que vous avez donné à votre physique : 5 sur 10
votre apparence : Autre
votre religion : Autre
votre annonce : pffffffffff ça fonctionne pas!


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 '5 sur 10', 'Autre', 'Autre', 'pffffffffff ça fonctionne pas!', NOW())' at line 2


et en local j'ai ça :

votre sexe : homme
votre pseudo : moimoi
votre mot de passe : 54351.21
votre adresse email : [email protected]
Voilà les données de votre image:
nom => moi.jpg
taille => 56283
type de l'image => image/jpeg
code de l'erreur => 0
Taille maximale de l'image: 200000 octets
votre âge : 18
Votre état civil : Célibataire
vous êtes fumeur : Je ne fume pas
vous buvez : je bois rarement
votre éducation : Licence
votre pays : France
vous voulez avoir des enfants : non
vous voulez avoir des enfants : oui je veux des enfants
votre taille : 161 à 165 cm
la note que vous avez donné à votre physique : 5 sur 10
votre apparence : Autre
votre religion : Autre
votre annonce : ça ne fonctionne pas!!!!


Erreur de syntaxe près de '5 sur 10', 'Autre', 'Autre', 'ça ne fonctionne pas!!!!', NOW())' à la ligne 2



c'est une erreur de syntaxe et je ne sais pas comment la corriger!

Avatar du membre
ViPHP
ViPHP | 3008 Messages

20 avr. 2007, 20:15

Heu...c'est pas une blague au moins ?

Voici ce que je vois dans ta requête corrigée...
 '$taille, '$physique'

Mammouth du PHP | 19672 Messages

20 avr. 2007, 20:37

J'ajouterais quand même un détail : lorsqu'on met des variables dans une chaine de caractère, c'est un des meilleurs moyens pour faire ce type d'erreur d'inattention. Avec la coloration syntaxique en plus, ça devient d'autant plus évident. Proposition de corrigé :
$sql = "INSERT  INTO profile (sexe, pseudo, pass, email, photo, age, etatcivil, fumeur, buveur, education, pays, avoirenfant, vouloirenfant, taille, physique, apparence, religion, annonce, date) 
VALUES ( '". $sexe ."', '". $pseudo ."', '". $pass ."', '". $email ."', '". $photo ."', '". $age ."', '". $etatcivil ."', '". $fumeur ."', '". $buveur ."', '". $education ."', '". $pays ."', '". $avoirenfant ."', '". $vouloirenfant ."', '". $taille ."', '". $physique ."', '". $apparence ."', '". $religion ."', '". $annonce ."', NOW()) " ;
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 29 Messages

20 avr. 2007, 20:50

Heu...c'est pas une blague au moins ?

Voici ce que je vois dans ta requête corrigée...
 '$taille, '$physique'

:oops: non non j'ai copié le mauvais fichier, mais la vrai requête $taille est entre 2 apostrophes :wink:

Avatar du membre
ViPHP
ViPHP | 3008 Messages

20 avr. 2007, 20:51

Et malgré ça tu as toujours cette erreur ? C'est étonnant étant donné que l'erreur indiqué se trouve exactement au niveau de la taille.

Corriges ta requête comme Cyrano t'as conseillé.

Eléphanteau du PHP | 29 Messages

20 avr. 2007, 21:14

superrrrrrrrrrrrr maintenant ça fonctionne :lol: merci beaucoup à tous les deux.

mais je ne vais pas vous lâcher tout de suite, il faut que vous m'aidiez à faire en sorte que la photo soit sauvegardé dans un répertoire (.../images) et non pas dans la base de donnée afin de ne pas trop la surcharger.

je viens de regarder ma table profile et dans le champs "photo", il y a un truc bizarre qui est écrit : ARRAY (alors que moi ce que je voulais c'est un lien vers la photo)
et la 2ème bizarrerie se trouve dans le champs "sexe", quand j'ai rempli le formulaire j'ai coché le bouton "homme" mais dans la table ce n'est pas écrit "homme" mais "O" je ne comprend pas pourquoi.

regardez par vous même :

Image

Avatar du membre
ViPHP
ViPHP | 3008 Messages

20 avr. 2007, 21:21

Qand tu programmes il te faut être logique. Lorsque tu as une erreur essaie de voir à la source. Cherches avant de venir demander de l'aide.

Pour le sexe tu as "0" au lieu de "homme". Pourquoi ? Regardes le type de ton champ.

Pour la photo renseignes toi sur $_FILES et les déclarations de tes variables à ce niveau : http://www.phpdebutant.org/article113.php

Eléphanteau du PHP | 29 Messages

20 avr. 2007, 21:38

Tu as tout a fait raison charabia. désolé de vous avoir pris la tête, mais je voulais tellement reussir ce premier script de A à Z car je sais une fois que je l'aurai fini et tout compris, je saurai faire pleins d'autres script en php!

sinon, pour mon probleme cela venait effectivement du type de champs utilisé dans ma table, j'ai utilisé "tinyint" et je viens de le remplacer par un varchar(10) et ça marche :wink: j'ai déjà compris que tinyint affiche apparemment que des nombres :lol: merci bien pour votre aide


je vais me renseigner sur le $_FILES et bricoler un truc en php et si ça marche pas je reviendrai vous embêtez encore :oops:

bonne soirée à tous et bon week-end

p.s: je mettrai pas encore "Résolu" car le script n'est pas fini

Avatar du membre
ViPHP
ViPHP | 3008 Messages

20 avr. 2007, 21:44

C'est sûr je te comprend je suis passé par là aussi :langue:

Mais si tu cherches de toi même la satisfaction ne sera que plus grande ! C'est si seulement après avoir bien cogité que tu ne trouves pas, viens nous voir ;)

Bon courage !