Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1663 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [resolu]Problème de variable

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[resolu]Problème de variable

n°1309658
Yagmoth
Fanboy
Posté le 20-02-2006 à 14:38:04  profilanswer
 

C'est encore moi :D Prêt à me faire hari kiri une deuxieme fois... J'ai amélioré le code précédent, mais voilà j'ai un problème : curieusement ma variable $categorie ne veut pas s'inscrire dans la BD... alors que lors de la vérification (if (isset...)) la variable est bien transmise par le formulaire, elle n'est plus utilisable qques lignes plus bas. Voilà le code :
 

Code :
  1. <?php
  2. $erreur=0;
  3. $contenu_manquant=0;
  4. $categorie_manquante=0;
  5. If (isset($_POST['contenu'])) { $contenu=$_POST['contenu']; }
  6. else { $contenu="";}
  7. If (isset($_POST['categorie'])) { $categorie=$_POST['categorie']; }
  8. else { $categorie=""; }
  9. If (isset($_POST['validation'])) { $validation=$_POST['validation']; }
  10. else { $validation=0; }
  11. If ($validation==1)
  12. {
  13. If ($categorie="" )
  14. {
  15. $erreur=1;
  16. $categorie_manquante=1;
  17. }
  18. If ($contenu=="" )
  19. {
  20. $erreur=1;
  21. $contenu_manquant=1;
  22. }
  23. If ($erreur==0)
  24. {
  25. mysql_connect('localhost','root','');
  26. mysql_select_db('annonces');
  27. $date='01/02/2006';
  28. $utilisateur='Makenshi';
  29. $request=mysql_query("SELECT localisation, mail, nbannonces FROM users WHERE pseudonyme='$utilisateur'" );
  30. $data=mysql_fetch_assoc($request);
  31. $localisation=$data['localisation'];
  32. $mail=$data['mail'];
  33. $nbannonces=$data['nbannonces'];
  34. $nbannonces=$nbannonces+1;
  35. $changenbannonces=mysql_query("UPDATE users SET nbannonces=".$nbannonces." WHERE utilisateur=".$utilisateur);
  36.  If ($nbannonces<10) { $nbannonces='0000'.$nbannonces; }
  37.  If ($nbannonces>=10 AND $nbannonces<100) { $nbannonces='000'.$nbannonces; }
  38.  If ($nbannonces>=100 AND $nbannonces<1000) { $nbannonces='00'.$nbannonces; }
  39.  If ($nbannonces>=1000 AND $nbannonces<10000) { $nbannonces='0'.$nbannonces; }
  40. $nomannonce=$utilisateur.'_'.$nbannonces;
  41. $request="INSERT INTO annonces(id, nomannonce, categorie, utilisateur, localisation, contenu, mail, date) VALUES('','$nomannonce','$categorie','$localisation','$utilisateur','$contenu','$mail','$date')";
  42. $query=mysql_query($request);
  43. mysql_close();
  44. }
  45. }
  46. echo '<form method=post action=plop.php>';
  47. echo 'Sélectionnez une catégorie : <br /><select name=categorie>';
  48. echo '<option value=immobilier_achat>Immobilier (achat)</option>';
  49. echo '<option value=immobilier_vente>Immobilier (vente)</option>';
  50. echo '<option value=immobilier_demande_location>Immobier (demande de location)</option>';
  51. echo '<option value=immobilier_location>Immobilier (location)</option>';
  52. echo '</select><br />Texte de l\'annonce :<br />';
  53. echo '<textarea name=contenu rows=5 cols=20 maxlengh=2000>'.$contenu.'</textarea><br />';
  54. echo '<input type=hidden name=validation value=1>';
  55. echo '<input type=submit></form>';
  56. ?>


Message édité par Yagmoth le 20-02-2006 à 15:57:20
mood
Publicité
Posté le 20-02-2006 à 14:38:04  profilanswer
 

n°1309669
skeye
Posté le 20-02-2006 à 15:02:33  profilanswer
 

t'as vérifié ce que te retourne mysql_query? [:dawao]


---------------
Can't buy what I want because it's free -
n°1309673
Yagmoth
Fanboy
Posté le 20-02-2006 à 15:05:27  profilanswer
 

skeye a écrit :

t'as vérifié ce que te retourne mysql_query? [:dawao]


 
ben via PHPmyAdmin, toutes les variables sont insérées, sauf $categorie... Et bizarrement si par exemple je met un $categorie='machin'; entre la ligne 47 et 48, ca m'insère bien la variable... donc j'ai vraiment du mal à comprendre :D

n°1309678
skeye
Posté le 20-02-2006 à 15:07:26  profilanswer
 

Fais un echo $request au lieu du mysql_query, pour voir...[:god]


Message édité par skeye le 20-02-2006 à 15:08:05

---------------
Can't buy what I want because it's free -
n°1309685
Yagmoth
Fanboy
Posté le 20-02-2006 à 15:14:12  profilanswer
 

INSERT INTO annonces(id, nomannonce, categorie, utilisateur, localisation, contenu, mail, date) VALUES('','Makenshi_00011','','Alsace','Makenshi','plop','a@a.com','01/02/2006')
 
Mmmm mais ca viens d'où ? :)

Message cité 1 fois
Message édité par Yagmoth le 20-02-2006 à 15:15:59
n°1309689
skeye
Posté le 20-02-2006 à 15:20:26  profilanswer
 

Et si tu exécutes ça dans phpmyadmin ça marche? [:dawao]


---------------
Can't buy what I want because it's free -
n°1309692
Yagmoth
Fanboy
Posté le 20-02-2006 à 15:22:49  profilanswer
 

skeye a écrit :

Et si tu exécutes ça dans phpmyadmin ça marche? [:dawao]


 
Oui :)

n°1309695
skeye
Posté le 20-02-2006 à 15:25:04  profilanswer
 

pas possible.[:dawao]
Soit tout est inséré, soit rien, mais pas des morceaux, si la requête générée fonctionne.[:pingouino]


---------------
Can't buy what I want because it's free -
n°1309697
Yagmoth
Fanboy
Posté le 20-02-2006 à 15:29:30  profilanswer
 

skeye a écrit :

pas possible.[:dawao]
Soit tout est inséré, soit rien, mais pas des morceaux, si la requête générée fonctionne.[:pingouino]


 
 
Ben justement je ne comprend pas  :pt1cable:  c'est la seule variable à ne pas fonctionner, les autres sont transmises sans problème, tout roule...bon je vais tester en introduisant la variable $categorie jusqu'a voir où elle ne fonctionne plus :p

n°1309701
skeye
Posté le 20-02-2006 à 15:30:52  profilanswer
 

euh oui mais non.
Recommence, c'est tout simplement pas possible ce que tu racontes.:o


---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le 20-02-2006 à 15:30:52  profilanswer
 

n°1309704
Yagmoth
Fanboy
Posté le 20-02-2006 à 15:35:22  profilanswer
 

skeye a écrit :

euh oui mais non.
Recommence, c'est tout simplement pas possible ce que tu racontes.:o


 
Ben euh... Si je met un $categorie='machin'; avant le If (validation==1), la variable ne passe pas. Alors que si je la met entre le If (validation==1) et la requete, ca marche :D
 
Idem : si au même endroit après le If je met un echo $categorie, ca me renvoie rien, alors qu'echo $contenu fonctionne.


Message édité par Yagmoth le 20-02-2006 à 15:41:30
n°1309720
cinocks
Posté le 20-02-2006 à 15:49:52  profilanswer
 

Yagmoth a écrit :

INSERT INTO annonces(id, nomannonce, categorie, utilisateur, localisation, contenu, mail, date) VALUES('','Makenshi_00011','','Alsace','Makenshi','plop','a@a.com','01/02/2006')
 
Mmmm mais ca viens d'où ? :)


Y'a rien dans categorie, là.


---------------
MZP est de retour
n°1309723
cinocks
Posté le 20-02-2006 à 15:52:12  profilanswer
 

Code :
  1. If ($categorie="" )
  2.     {
  3.     $erreur=1;
  4.     $categorie_manquante=1;
  5.     }


 
Tu affectes une chaine vide à $categorie, au lieu de verifier qu'elle est vide. L'affectation ayant bien fonctionnée, elle de dit vrai. :o


---------------
MZP est de retour
n°1309724
skeye
Posté le 20-02-2006 à 15:52:34  profilanswer
 

Ha tiens, j'aurais p-e dû la regarder, sa requête...[:god]


---------------
Can't buy what I want because it's free -
n°1309725
Yagmoth
Fanboy
Posté le 20-02-2006 à 15:53:29  profilanswer
 

cinocks a écrit :

Y'a rien dans categorie, là.


 
Ben oui justement :D Quand j'exécute la requête, normalement il devrait récupérer la variable $categorie définie plus haut, au même titre que la variable $contenu qui elle est bien prise en compte... Et quand je vérifie si la variable passe bien au travers du code, il n'y a pas de problème avec $contenu, alors qu'il y a un problème avec $categorie (qui n'est plus reconnue à partir du If (validation==1)).
 
 
Bon j'ai bien trouvé une solution, c'est de redéfinir plus bas catégorie en refaisant un $categorie=$_POST['categorie']; ce qui marche bien, mais je ne comprend toujours pas pourquoi l'une des deux variables ne passe pas  :pt1cable:

n°1309727
cinocks
Posté le 20-02-2006 à 15:55:01  profilanswer
 

C'est n'importe quoi. Il faut chercher l'erreur quand il y en a une plutôt que de la masquée. :o
Elle est tres simple. Encore plus simple puisque je l'ai donné :p
 
debug en pas à pas, ca a du bon pour trouver.

Message cité 1 fois
Message édité par cinocks le 20-02-2006 à 15:55:32

---------------
MZP est de retour
n°1309731
Yagmoth
Fanboy
Posté le 20-02-2006 à 15:56:01  profilanswer
 

cinocks a écrit :

C'est n'importe quoi. Il faut chercher l'erreur quand il y en a une plutôt que de la masquée. :o
Elle est tres simple. Encore plus simple puisque je l'ai donné :p
 
debug en pas à pas, ca a du bon pour trouver.


 
Merci ;) (je n'avais pas vu ta réponse entre les deux posts)

n°1309732
cinocks
Posté le 20-02-2006 à 15:56:18  profilanswer
 

;)


---------------
MZP est de retour

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [resolu]Problème de variable

 

Sujets relatifs
[RESOLU] problème insertion de données issues de csv dans une table[resolu]parse error :/
[Résolu] Problème d'héritage d'héritage + redéfinition de méthode[Résolu][BDE C++ Builder 6 TTable] Impossible d'activer une TTable
[Pas tout à fait résolu] Pb de positionnement de div en design fluideproblème connection VB6 vers MSSQL par ODBC W2003 SERVEUR
problème connection VB6 vers MSSQL par ODBC W2003 SERVEURprobléme programmation AS
résolu Problème de concaténation de variable[JS] probleme simple de portée de variable[Résolu]
Plus de sujets relatifs à : [resolu]Problème de variable


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR