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 :

Remplir une liste déroulante avec une table [Oracle]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 76
    Points : 30
    Points
    30
    Par défaut Remplir une liste déroulante avec une table
    Bonsoir,

    je reviens vers vous car je n'ai guère avancé dans mon code

    j'en suis ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    <select name="Nom"> 
     
    <?php 
    $query = "select nom from employes";
    $stmt=OCIParse($db_conn,$query);
    OCIExecute($stmt,OCI_DEFAULT);
    cela m'affiche bien une liste déroulante mais vide!!!
    Je n'arrive pas à comprendre la syntaxe de la boucle avec "while"

    Pouvez vous m'indiquez la syntaxe?
    merci

  2. #2
    Inscrit

    Profil pro
    H4X0|2 @ YourLabs Business Service
    Inscrit en
    Octobre 2006
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : H4X0|2 @ YourLabs Business Service
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 657
    Points : 909
    Points
    909
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while ($a=1)
    {
    echo 'cette boucle est sans fin, puisque nous pourrons toujours attribuer la valeur 1 à $a';
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (OCIExecute($stmt,OCI_DEFAULT))
    {
    echo 'Votre requête est bien effectuée';
    }
    OCIExecute() renvoie vrai, alors, avec while :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while ($b=OCIExecute($stmt,OCI_DEFAULT))
    {
    echo 'Tant que OCIExecute ne revoie pas faux, nous afficherons cette ligne';
    }
    C'est peut-être plus clair par l'exemple ?
    YourLabs Business Service: Conseil en Strategie Numerique / Club de 1337 Haxors depuis 2012 / Marque de Logiciels Libres / Blog / GitHub /
    Citation Envoyé par C.A.R. Hoare, The 1980 ACM Turing Award Lecture
    There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies.”
    More great quotes - RIP Uriel

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 76
    Points : 30
    Points
    30
    Par défaut
    Bonjour et merci pour votre réponse mais je rencontre toujours un probleme de remplissage

    voici le code mais je n'arrive pas à trouver mon erreur! De plus je trouve ma page HTML beaucoup plus lente. Ca doit etre normal


    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
    <select name="Nom"> 
    <?php 
     
    $username="pti";
    $paswd="rugbys";
    $dbstring="//localhost/XE";
    $db_conn= ocilogon($username,$paswd,$dbstring);
     
    $query = "select nom from employes";
    $stmt=OCIParse($db_conn,$query);
    OCIExecute($stmt,OCI_DEFAULT);  
    if (OCIExecute($stmt,OCI_DEFAULT))
    {
    echo 'Votre requête est bien effectuée';
    }
    while ($b=OCIExecute($stmt,OCI_DEFAULT))
    {
    echo 'Tant que OCIExecute ne revoie pas faux, nous afficherons cette ligne';
    }
    ?> 
    </select>

  4. #4
    Inscrit

    Profil pro
    H4X0|2 @ YourLabs Business Service
    Inscrit en
    Octobre 2006
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : H4X0|2 @ YourLabs Business Service
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 657
    Points : 909
    Points
    909
    Par défaut
    J'ai tenté d'expliquer simplement un usage de while, mais ce n'est pas applicable anisi.
    Il faut au moins un objectif avant d'utiliser while, comme boucler dans un tableau de données récupérées de la base de données.
    YourLabs Business Service: Conseil en Strategie Numerique / Club de 1337 Haxors depuis 2012 / Marque de Logiciels Libres / Blog / GitHub /
    Citation Envoyé par C.A.R. Hoare, The 1980 ACM Turing Award Lecture
    There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies.”
    More great quotes - RIP Uriel

  5. #5
    Membre à l'essai
    Inscrit en
    Octobre 2005
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 25
    Points : 24
    Points
    24
    Par défaut
    tu dois utiliser une balise <option>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      while(----)
      { 
        echo "<option> blabla </option>" ;
      }

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 76
    Points : 30
    Points
    30
    Par défaut
    houla!
    Dois je comprendre que les valeurs que je tente de récupérer avec mon $query
    doivent être mise dans un tableau (array je crois).
    Si je comprends bien mon code actuel ne sert pas à grand chose

    Qu'est ce que je dois retirer ou ajouter?

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 76
    Points : 30
    Points
    30
    Par défaut
    on m'a donné ça sur le forum oracle mais ça ne marche pas malgrès les modifications nécessaire

    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
     
     
      $conn = oci_connect("hr", "hr", "//localhost/XE");
      $stmt = "SELECT employee_id, last_name from employees order by last_name";
      $stid = oci_parse($conn, $stmt);
      oci_execute($stid);
      $num = oci_fetch_all($stid, $res);
     
      if ($num) {
        echo "<form method=\"POST\" action=\"{$_SERVER['PHP_SELF']}\">\n";
        echo "<select name=\"EmployeeName\">\n";
        for ($i = 0; $i < $num; $i++ ) {
          echo "<option value=\"{$res['EMPLOYEE_ID'][$i]}\">";
          echo htmlentities($res['LAST_NAME'][$i]);
          echo "</option>\n";
        }
        echo "<input type=\"submit\" value=\"OK\">\n";
        echo "</select></form>\n";
      }

  8. #8
    Inscrit

    Profil pro
    H4X0|2 @ YourLabs Business Service
    Inscrit en
    Octobre 2006
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : H4X0|2 @ YourLabs Business Service
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 657
    Points : 909
    Points
    909
    Par défaut
    toujours pas de boucle sur les résultats obtenus par la requête sur le serveur oracle
    YourLabs Business Service: Conseil en Strategie Numerique / Club de 1337 Haxors depuis 2012 / Marque de Logiciels Libres / Blog / GitHub /
    Citation Envoyé par C.A.R. Hoare, The 1980 ACM Turing Award Lecture
    There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies.”
    More great quotes - RIP Uriel

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 76
    Points : 30
    Points
    30
    Par défaut
    j'arrive à extraire un champs d'une table sous forme d'un tableau mais impossible d'intégrer les résultats dans une liste déroulante

    voici mon code

    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
     
    <?php 
     
    $db_conn = ocilogon( "pti", "rugbys" ,"//127.0.0.1/XE");
     
    $cmdstr = "select NOM from employes order by NOM";
     
    $parsed = ociparse($db_conn, $cmdstr);
    ociexecute($parsed);
     
    $nrows = ocifetchstatement($parsed, $results);
    echo "<table border=1 cellspacing='0' width='50%'>\n\<tr>\n";
    echo "<td><b>Nom</b></td>\n";
    echo "<select name=nom>\n";
     
    for ($i = 0; $i < $nrows; $i++ ) 
    {
    echo "<tr>\n";
    //echo "<option value={$results['NOM'][$i]}>";
    echo "<td>" .$results["NOM"][$i] ."</td>";
    echo"</option>\n";
    }
     
    ?>
    pouvez vous m'aider à intégrer ce résultat dans une liste déroulante?

    merci

  10. #10
    Membre régulier Avatar de pioule
    Profil pro
    Inscrit en
    Août 2003
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 66
    Points : 97
    Points
    97
    Par défaut
    Si ton code fonctionne en ce qui concerne l'affichage sous forme de tableau, alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for ($i = 0; $i < $nrows; $i++ ) 
    {
    echo "<option value=\"".$results['NOM'][$i]."\">".$results['NOM'][$i] ."</option>";
     
    }
    devrait fonctionner ?

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 76
    Points : 30
    Points
    30
    Par défaut
    yes ca marche

    je te remercie ça va me permettre d'avancer

    bonne fêtes

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

Discussions similaires

  1. [XL-2003] Menu déroulant avec une liste principale et une liste secondaire
    Par bbcancer dans le forum Excel
    Réponses: 2
    Dernier message: 03/05/2011, 13h50
  2. Création d'une liste déroulante avec une variable
    Par lou87 dans le forum ASP.NET Ajax
    Réponses: 1
    Dernier message: 12/01/2011, 15h18
  3. Réponses: 0
    Dernier message: 07/07/2010, 14h51
  4. Comment remplir une liste déroulante avec une macro sans doublons
    Par alex.a dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 14/06/2007, 18h34
  5. liste déroulante avec une case à cocher et une image
    Par kurul1 dans le forum C++Builder
    Réponses: 4
    Dernier message: 08/03/2007, 09h54

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