IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Erreur requête SQL avec simple variable. [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 46
    Points : 35
    Points
    35
    Par défaut Erreur requête SQL avec simple variable.
    Bonjour,
    Je souhaite afficher l'avancement d'un dossier client " En cours " ou " traité ".
    Je recupere le numero de suivi du dossier par un formulaire.
    Le echo me donne bien mon numero de dossier taper dans le champ de texte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php 
     
    $numdossier = $_POST['numero_suivi'] ;
    echo 'Votre numero de dossier est le N°'.$numdossier ; 
     
    $sql='SELECT etatdossier FROM client WHERE numdossier="'.$numdossier.'"' ;
    $result = mysql_query($sql);
    echo '<br>Votre dossier est'.$result ; 
     
    ?>
    Impossible d'afficher par contre dans le dernier echo : Votre dossier est en cours.

    Ma base :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    CREATE TABLE client (
      idclient INT NOT NULL,
      nomsociete VARCHAR(20) NULL,
      nompersonne VARCHAR(25) NULL,
      numtel VARCHAR(10) NULL,
      emailcontact VARCHAR(25) NULL,
      marque VARCHAR(20) NULL,
      modelmateriel VARCHAR(20) NULL,
      numserie VARCHAR(20) NULL,
      etatprobleme VARCHAR(10) NULL,
      numdossier VARCHAR(20) NULL,
      PRIMARY KEY(idclient)
    );

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 194
    Points : 200
    Points
    200
    Par défaut
    bonjour,

    en ajoutant un mysql_fetch_assoc(), cela devrais fonctionné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $sql='SELECT etatdossier FROM client WHERE numdossier="'.$numdossier.'"' ;
    $req = mysql_query($sql);
    $result = mysql_fetch_assoc($req);
    echo '<br>Votre dossier est'.$result['etatdossier'] ;
    Yasen77

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 46
    Points : 35
    Points
    35
    Par défaut
    Merci de ta reponse, une erreur persiste.

    Je me retrouve donc avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
     
         $numdossier = $_POST['numero_suivi'] ;
         echo 'Votre numero de dossier est le N°'.$numdossier ;
     
         $sql='SELECT etatdossier FROM client WHERE numdossier="'.$numdossier.'"' ;
         $req = mysql_query($sql);
         $result = mysql_fetch_assoc($req);
         echo '<br>Votre dossier est'.$result['etatdossier'] ;
     
    ?>

    EDIT :

    Erreur : Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\stage_31-05-2012\etatdossier.php on line 9
    La ligne 9 etant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $req = mysql_fetch_assoc($result);

  4. #4
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 194
    Points : 200
    Points
    200
    Par défaut
    il faut que tu indique quel champ tu affiche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo '<br>Votre dossier est actuellement'.$req['etatdossier'] ;

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 46
    Points : 35
    Points
    35
    Par défaut
    Désolé j'ai edité mon premier message en meme temps que tu ecrivais ta réponse.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 46
    Points : 35
    Points
    35
    Par défaut
    Je ne comprend pas l'explication de l'erreur...

    expects parameter 1 to be resource, boolean given

    Je n'ai aucun booleen dans ma base mon statut prend les valeurs " en cours " ou " résolu ".

  7. #7
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 194
    Points : 200
    Points
    200
    Par défaut
    je ne trouve pas ton champ etatdossier dans la construction de ta table client.

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 46
    Points : 35
    Points
    35
    Par défaut
    etatprobleme pardon T_T

    Le problème reste le même, même après modification des champs.

  9. #9
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 194
    Points : 200
    Points
    200
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $sql='SELECT etatprobleme FROM client WHERE numdossier="'.$numdossier.'"' ;
    $req = mysql_query($sql);
    $result = mysql_fetch_assoc($req);
    echo '<br>Votre dossier est '.$result['etatprobleme'] ;
    je viens de tester chez moi, cela fonctionne.

  10. #10
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    Salam , copie ta requête dans phpmyadmin et exécute afin de voir ce qu'elle retourne.

  11. #11
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    On évite de coder "à l'aveugle", ce qui veut dire qu'il faut tout faire pour avoir les retours d'erreurs lorsque c'est le cas.
    Pour les erreurs de MySQL il faut :
    - Soit activer la directive mysql.trace_mode dans le php.ini (ou faire un ini_set)

    - Ou alors on le fait "manuellement" comme par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = mysql_query($sql) or die('Erreur : '.mysql_error());
    Histoire de savoir pourquoi la requête "plante" si c'est le cas.


    Autre question à tout hasard.
    Est-ce que chaque client contient obligatoirement 1 seul et unique dossier "numdossier" ?
    - Si c'est le cas alors c'est Ok
    - Si ce n'est pas toujours le cas, qui sous entend qu'un client peu avoir plusieurs dossiers, alors il faudrait faire une boucle.
    Ici on ne récupère qu'1 seul dossier.
    Faut voir.

  12. #12
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Je ne comprend pas l'explication de l'erreur...

    expects parameter 1 to be resource, boolean given

    Je n'ai aucun booleen dans ma base mon statut prend les valeurs " en cours " ou " résolu ".
    C parceque ta requête n'est pas bonne et qu'elle ne renvoie pas de ressource

    Dans ta requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql='SELECT etatdossier FROM client WHERE numdossier="'.$numdossier.'"' ;
    Le double quote me parait pas bon, je mettrais le ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql="SELECT etatdossier FROM client WHERE numdossier=$numdossier";

  13. #13
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    alors le résultat sur phmyadmin

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 46
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par redoran Voir le message
    Salam , copie ta requête dans phpmyadmin et exécute afin de voir ce qu'elle retourne.

    Elle tourne et me donne le bon résultat.



    Citation Envoyé par RunCodePhp Voir le message
    Salut
    Autre question à tout hasard.
    Est-ce que chaque client contient obligatoirement 1 seul et unique dossier "numdossier" ?
    - Si c'est le cas alors c'est Ok
    - Si ce n'est pas toujours le cas, qui sous entend qu'un client peu avoir plusieurs dossiers, alors il faudrait faire une boucle.
    Ici on ne récupère qu'1 seul dossier.
    Faut voir.
    Un meme client peut avoir plusieurs dossier d'ouvert oui.
    Je ferai une boucle while.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <?php 
     
    $nom_du_serveur ="localhost";
    $nom_de_la_base ="gestion";
    $nom_utilisateur = "root";
    $mot_de_passe = "";
     
    			mysql_connect("$nom_du_serveur","$nom_utilisateur","$mot_de_passe"); // Connection BDD
    mysql_select_db("$nom_de_la_base") or die("Impossible d'ouvrir la base de donnees "); // Selection de la base
     
    $numdossier = $_POST['numero_suivi'] ;
    echo 'Votre numero de dossier est le N°'.$numdossier ;
     
    $sql="SELECT etatprobleme FROM client WHERE numdossier=$numdossier";
    $req = mysql_query($sql) or die('Erreur : '.mysql_error());
    $result = mysql_fetch_assoc($req);
    echo '<br>Votre dossier est actuellement'.$req['etatprobleme'] ;
    ?>

    Ce code m'affiche :

    Votre numero de dossier est le N°43112
    Votre dossier est actuellement

    Il manque donc le " en cours ".

  15. #15
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    Re ; yassen78 recopie son code
    Code :

    $sql='SELECT etatprobleme FROM client WHERE numdossier="'.$numdossier.'"' ;
    $req = mysql_query($sql);
    $result = mysql_fetch_assoc($req);
    echo '<br>Votre dossier est '.$result['etatprobleme'] ;

    je viens de tester chez moi, cela fonctionne.

  16. #16
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    Votre numero de dossier est le N°43112
    Votre dossier est actuellement
    les champs sont bien renseignés dans la BDD !!!!

  17. #17
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 46
    Points : 35
    Points
    35
    Par défaut
    Oups désolé pas vu telement j'etais a fond dedans T_T

    Cela fonctionne chez moi aussi. Un grand merci pour le temps que vous consacrer aux autres.

  18. #18
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Un meme client peut avoir plusieurs dossier d'ouvert oui.
    Je n'est jamais évoqué de dossier "ouvert" ou "fermé", mais de dossier tout court (de "numdossier" plus exactement).

    Si 1 client (un idclient plus exactement) peut être associé à plusieurs numdossier, alors ton modèle de données ne serrait pas correcte.
    Il faudrait une table genre "dossiers_client" pour stocker tous les dossiers de chaque client, pour représenter cette notion 1 à plusieurs
    Cardinalités 1:n

    Dans le cas présent cela sous entend que tu dupliquerait les mêmes données (nompersonne, emailcontact, etc ...) avec des "numdossier" différents pour au final un même client.
    Si c'est le cas ça ne va pas.

  19. #19
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031

  20. #20
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Et oui, Merise

    Ca fait une paye maintenant, mais les bases sont là je pense, c'est l'essentiel.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 5
    Dernier message: 03/01/2023, 10h56
  2. [PDO] requête SQL avec une variable
    Par julienmop dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 09/06/2015, 11h27
  3. Requête SQL avec une variable
    Par tony_95 dans le forum SGBD
    Réponses: 4
    Dernier message: 11/05/2011, 13h55
  4. [Toutes versions] Requête SQL avec Simples et Doubles Quotes
    Par Roums dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 25/03/2010, 10h00
  5. Requête SQL avec champs variable
    Par yannydu dans le forum Débuter
    Réponses: 14
    Dernier message: 21/04/2009, 12h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo