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 :

Mysql Liste dynamique [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 506
    Par défaut Mysql Liste dynamique
    Bonjour,
    je suis débutant en PHP et mysql...
    je souhaite avoir deux listes dynamiques :
    un pour un type d'évenement / un pour un type de lieu
    et ceci sur la même page...
    merci de votre aide.

    voici mes codes qui ne fonctionnent pas (rien dans les listes déroulantes) :

    types.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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    <?php
    // configuration
    ini_set("register_globals","off");
    ini_set("display_errors","off");
    ini_set("track_errors","on");
    // le tableau des valeurs
    list($erreur,$valeurs)=getValeurs();
    // y-at-il eu erreur ?
    if($erreur){
    // affichage page d'erreur
    include "valeurs-err.php";
    // fin
    return;
    }//if
    // on récupère l'éventuel choix de l'utilisateur
    $choix=$_POST["type"];
    // on calcule la liste des valeurs à afficher
    $HTMLvaleurs="";
    for($i=0;$i<count($valeurs);$i++){
    // si option courante est égale au choix, on la sélectionne
    if (isset($choix) && $choix==$valeurs[$i])
    $HTMLvaleurs.="<option selected>$valeurs[$i]</option>\n";
    else $HTMLvaleurs.="<option>$valeurs[$i]</option>\n";
    }//for
     
    // on affiche le formulaire
    include "index2.html";
    // fin
    return;
    // ------------------------------------------------------------------------
     
    function getValeurs(){
    // récupère les valeurs dans une base MySQL
    $user="user";
    $pwd="mdp";
    $db="babase";
    $hote="sql.free.fr";
    $table="type_ev";
    $champ="Type_evenement";
    // ouverture d'une connexion persistante au serveur MySQL
    // ou sinon d'une connexion normale
    ($connexion=mysql_pconnect($hote,$user,$pwd))
    || ($connexion=mysql_connect($hote,$user,$pwd));
    if(! $connexion)
    return array("Base de données indisponible(".mysql_error()."). Veuillez recommencer ultérieurement.");
    // obtention des valeurs
    mysql_query("SET NAMES UTF8"); 
    $selectValeurs=mysql_db_query($db,"select $champ from $table",$connexion);
    if(! $selectValeurs)
    return array("Base de données indisponible(".mysql_error()."). Veuillez recommencer ultérieurement.");
    // les valeurs sont mises dans un tableau
    $valeurs=array();
    while($ligne=mysql_fetch_row($selectValeurs)){
    $valeurs[]=$ligne[0];
    }//while
    // fermeture de la connexion (si elle est persistante, elle ne sera en fait pas fermée)
    mysql_close($connexion);
    // retour du résultat
    return array("",$valeurs);
    }//getValeurs
    ?>
    type_lieu.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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    <?php
    // configuration
    ini_set("register_globals","off");
    ini_set("display_errors","off");
    ini_set("track_errors","on");
    // le tableau des valeurs
    list($erreur,$typeux)=gettypeux();
    // y-at-il eu erreur ?
    if($erreur){
    // affichage page d'erreur
    include "valeurs-err.php";
    // fin
    return;
    }//if
    // on récupère l'éventuel choix de l'utilisateur
    $choix=$_POST["type"];
    // on calcule la liste des valeurs à afficher
    $HTMLvaleurs="";
    for($i=0;$i<count($typeux);$i++){
    // si option courante est égale au choix, on la sélectionne
    if (isset($choix) && $choix==$typeux[$i])
    $HTMLvaleurs.="<option selected>$typeux[$i]</option>\n";
    else $HTMLvaleurs.="<option>$typeux[$i]</option>\n";
    }//for
     
    // on affiche le formulaire
    include "index2.html";
    // fin
    return;
    // ------------------------------------------------------------------------
     
    function gettypeux(){
    // récupère les valeurs dans une base MySQL
    $user="user";
    $pwd="mdp";
    $db="babase";
    $hote="sql.free.fr";
    $table="type_etab";
    $champ="type_etablissement";
    // ouverture d'une connexion persistante au serveur MySQL
    // ou sinon d'une connexion normale
    ($connexion=mysql_pconnect($hote,$user,$pwd))
    || ($connexion=mysql_connect($hote,$user,$pwd));
    if(! $connexion)
    return array("Base de données indisponible(".mysql_error()."). Veuillez recommencer ultérieurement.");
    // obtention des valeurs
    mysql_query("SET NAMES UTF8"); 
    $selectValeurs=mysql_db_query($db,"select $champ from $table",$connexion);
    if(! $selectValeurs)
    return array("Base de données indisponible(".mysql_error()."). Veuillez recommencer ultérieurement.");
    // les valeurs sont mises dans un tableau
    $typeux=array();
    while($ligne=mysql_fetch_row($selectValeurs)){
    $typeux[]=$ligne[0];
    }//while
    // fermeture de la connexion (si elle est persistante, elle ne sera en fait pas fermée)
    mysql_close($connexion);
    // retour du résultat
    return array("",$typeux);
    }//gettypeux
    ?>
    et mon html :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>ESSAI</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <body>
     
    <fieldset>
    <legend> &nbsp; Rechercher un évènement dans l'agenda &nbsp; </legend>
    <label for="Type d'évènement">Type d'évènement</label>
    <form name="type_evt" method="post" action="types.php">
    <select name="type_ev" size="1">
    <?php
    for($i=0;$i<count($valeurs);$i++){
    echo "<option>$valeurs[$i]</option>\n";
    }//for
    ?>
    </select>
    </form>
     
    <label for="Type de lieu">Type de lieu</label>
    <form name="type_etab" method="post" action="type_lieu.php">
    <select name="type_etab" size="1">
    <?php
    for($i=0;$i<count($typeux);$i++){
    echo "<option>$type[$i]</option>\n";
    }//for
    ?>
    </select>
    </form>
    </fieldset>
    <p /><br />
    <p>
    <input type="submit" value="Envoyer" />
    <input type="reset" value="Annuler" />
    </p>
    </form>
    </body>
    </html>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for($i=0;$i<count($valeurs);$i++){
    Utilise des boucles foreach plutôt que cette horreur.

    Pour ton problème, je t'invite a faire un minimum de debugage en controlant le contenu de tes variables aux differentes étapes de ton code.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 506
    Par défaut Mysql Liste dynamique
    Bonsoir,
    désolé sabotage, mais je ne comprends pas
    je suis débutant et je ne vois pas quoi faire ?
    merci de ton aide.

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

Discussions similaires

  1. liste dynamique php associé a une base de données mysql
    Par tribalnanasss dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/07/2010, 14h10
  2. [MySQL] problème remplissage liste dynamique php mysql
    Par jeinny dans le forum PHP & Base de données
    Réponses: 28
    Dernier message: 25/05/2009, 17h32
  3. [PHP/MySql]traitement d'une liste dynamique
    Par ben_popcorn dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 29/09/2006, 12h51
  4. Réponses: 1
    Dernier message: 16/01/2006, 17h36
  5. Rafraichissement liste dynamique
    Par Petitjean_85 dans le forum ASP
    Réponses: 5
    Dernier message: 14/06/2004, 10h21

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