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 :

[SQL] Contenu d'une liste déroulante


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 47
    Par défaut [SQL] Contenu d'une liste déroulante
    Bonjour a tous,

    j'ai besoin de votre aide je butte sur qqchose qui va vous paraitre simple j'en suis sur. mais je pense que je me plante completement.

    j'ai une page formulaire avec un liste déroulante (comprenant des données d'une de ma base sql)

    la voici (elle est integrée a ma page)

    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
    20
    21
    22
     
    <form action="new3.php" method="post">
    <p>
     
    <?php
    mysql_connect("localhost", "root", "" ); 
    mysql_select_db("profimmo" ); 
    $departement = mysql_query("SELECT * FROM dptf" );
     
    echo'<select name="departement">';
    while ($donnees = mysql_fetch_array($departement))
    {
    ?>
    <option value="<?php echo $donnees['dept']; ?>"><?php echo $donnees['dept']; ?></option>
    <?php
    }
    echo'</select>';
    mysql_close(); // Déconnexion de MySQL 
    ?>
    <input type="submit" value="Valider" />
    </p>
    </form>
    j'ai donc une variable $departement et je souhaiterai que lorsque je clique sur valider la page suivante me sorte la liste des annonces de ce departement contenu dans mysql.

    voila ce que j'ai pondu comme page lorsque je clique sur valider (page new3.php)

    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 
    $departement = $_POST['departement'];  
     
    $db = mysql_connect('localhost', 'root', ''); 
     
     
    mysql_select_db('profimmo',$db); 
     
    $sql = 'SELECT * FROM annonces_entreprise'; 
     
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
     
    while($data = mysql_fetch_assoc($req)) 
        { 
          echo '<b>'.$data['nom_entreprise'].' '.$data['adresse_entreprise'].'</b> ('.$data['ville_entreprise'].')'; 
        } 
     
    mysql_close(); 
    ?>
    qqun peut il m'aider? please

    Merci d'avance les amis...

  2. #2
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Pourrais-tu indiquer le probleme? La connexion à la base ne se fait pas? La requete est fausse? La valeur n'est pas récupérée de la liste déroulante?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 47
    Par défaut
    j'ai une table dptf (qui correspond a la liste des départements) j'ai une table annonces_entreprise (qui stocke l'ensemble de mes contacts)

    je souhaiterai que lorsque je selectionne le département sur ma première page, ma seconde page affiche la liste complete de mes contacts.

    mais j'ai un probleme dans ma requete je pense

  4. #4
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    oui effectivement tu listes la totalité des annonces là
    il faudrait que tu fasses

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = 'SELECT * FROM annonces_entreprise WHERE id_departement = ' .$departement;
    Ensuite il faut que dans ta page qui affiche la liste des département, tu mettes dans la combo le nom du département, et dans la clé l'id du département dans ta table:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option value="<?php echo $donnees['id_departement']; ?>"><?php echo $donnees['dept']; ?></option>
    Il faut aussi que dans ta table département tu aies deux colonnes: 1 pour l'id (id_dept) qui sera un numéro, et une pour le nom du département qui sera par exemple Seine-Saint-Denis (a moins que tu ne les stockes deja que par numéro genre 40 ou 93 et dans ce cas une table unique suffit.)

    Ensuite il faut que dans ta table d'annonces tu aies un champ qui corresponde à l'id du département concerné.

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Bonjour

    Si tu as un champ numéro de département dans ta table annonce, il suffit de faire une requête avec un Where.
    Quelle est la structure de ta base ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 47
    Par défaut
    ca fonctionne mais uniquement quand mon departement est un chiffre et pas quand c'est une suite de lettre, il n'y a pas une ruse avec les chaines?

    encore un peu d'aide svp

  7. #7
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Citation Envoyé par marcito
    mon dieu ca fait 3 jours que j'arpente google et la je touche au but,
    mais encore un petit probleme il me sort juste l'inverse de ma demande ce n'est pas du a cette ligne ?
    l'inverse ? Tu veux dire tout sauf ce que tu veux ? Si c'est ça, ça vient probablement de la requête. Donc, question : quelle est la requête ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 47
    Par défaut
    excuse moi non c'est bon pour l'invers maintenant je ne peux mettre que des chiffre dans mon champ departement?

  9. #9
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Quelle est la nature du champ correspondant dans ta table ? C'est un int (ou quelque chose du genre) tu ne peux utiliser que des nombres.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 47
    Par défaut
    non ce sont des vachar

  11. #11
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Quel est le problème exact ? c'est-à-dire le message d'erreur (si message il y a), le bout de code concerné...
    Histoire qu'on évite de tourner en rond
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 47
    Par défaut
    voila mon message d'erreur et j'ai bien mis paris dans la liste des departement (avec le bon orthographe) et dans ma base de contact dans le champ annonce_dept


    Erreur SQL !
    SELECT * FROM annonces_entreprise WHERE annonce_dept = paris
    Champ 'paris' inconnu dans where clause

  13. #13
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    pour une chaine de caractères il faut mettre des simple quotes autour de la valeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT * FROM annonces_entreprise WHERE annonce_dept ='$departement'";
    EDIT: j'ajoute tout de suite le fait que tu risques d'avoir des ' dans ta valeur et que du coup il faut utiliser mysql_real_escape_string()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT * FROM annonces_entreprise WHERE annonce_dept ='". mysql_real_escape_string($departement)."'";

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 47
    Par défaut
    merci
    merci
    merci
    merci

  15. #15
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    De rien
    (ça fait plaisir de voir qu'il y a des gens reconnaissants )
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 47
    Par défaut
    OOOO que oui si tu savais j'en reve la nuit de ce code, tu vas me permettre de rever d'autre chose.

    vraiment merci

    et puis vu mon niveau je vais surement avoir besoin de vous dans peu de temps...

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 47
    Par défaut encore moi
    bon tout va bien mais lorsque ma base est vide une page blanche apparait tu n'aurais pas un bout de code (oui je sais ca fait feignant) pour completer le mien et que le vide ouvre sur une autre page?

    voici mon code ou plutot notre code vu vos contributions

    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
    20
    21
     
    <?php 
    $departement = $_POST['departement'];  
    $poste = $_POST['choixposte'];
    $db = mysql_connect('localhost', 'root', ''); 
     
     
    mysql_select_db('profimmo',$db); 
     
     
    $sql = "SELECT * FROM annonces_entreprise WHERE annonce_dept ='$departement' AND annonce_poste ='$poste'";
     
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
     
    while($data = mysql_fetch_assoc($req)) 
        { 
          echo '<b>'.$data['nom_entreprise'].' '.$data['adresse_entreprise'].'</b> ('.$data['ville_entreprise'].')'; 
        } 
     
    mysql_close(); 
    ?>

  18. #18
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Tu peux utiliser mysql_num_rows pour compter les résultats de la requête et faire une action en conséquence.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
    $nb_res = mysql_num_rows($req);
    if ($nb_res != 0) //si il ya des résultats
     {
     //on fait l'affichage
      while($data = mysql_fetch_assoc($req)) 
        { 
          echo '<b>'.$data['nom_entreprise'].' '.$data['adresse_entreprise'].'</b> ('.$data['ville_entreprise'].')'; 
        } 
     }
    else //il n'y a pas de résultat
     {
      echo "Aucun resultat pour cette recherche";
     }
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 47
    Par défaut
    genial je te remercie

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD5.5]Contenu d'une liste déroulante
    Par roms19 dans le forum WinDev
    Réponses: 8
    Dernier message: 01/03/2007, 11h00
  2. [PHP-JS] Contenu d'une liste déroulante
    Par luffyOP dans le forum Langage
    Réponses: 2
    Dernier message: 30/01/2007, 17h07
  3. Réponses: 3
    Dernier message: 24/01/2007, 10h36
  4. Réponses: 1
    Dernier message: 20/04/2006, 09h17
  5. Contenu d'une liste déroulante
    Par tets88 dans le forum Access
    Réponses: 3
    Dernier message: 20/03/2006, 11h37

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