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

JavaScript Discussion :

[AJAX] requete liée avec select distinct


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 7
    Points : 5
    Points
    5
    Par défaut [AJAX] requete liée avec select distinct
    Bonjour a tous voilà je suis nouveau sur le forum et j'ai un leger souci au niveau du développement de mon site web. C'est un site de voyage dans lequel on peut ajouter une destination, la destination se caractérisant par un nom de pays (nompays) un nom de ville (nomville) et un commentaire et un type. Ma table my sql s'appelle destination. Je souhaiterai creer 2 listes liées c'est à dire lorsque je clique sur un pays la liste des villes se mettent à jour toute seul. J'ai utilise un tuto de liste liée que j'ai trouve sur votre forum il fonctionne trés bien lorsque je fait un select * hors moi je voudrais faire un select distinct nompays pour remplir ma premiere liste pour eviter les doublons. Et la les problemes arrivent lorsque je fait ce sélect distinct j'ai le message d'erreur select impossible qui se met au niveau de ma seconde liste. Ne m'y connaissant pas trop en java j'ai besoin de votre aide
    Voici la structure de ma table:
    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
     
    -- phpMyAdmin SQL Dump
    -- version 2.11.6
    -- http://www.phpmyadmin.net -- Serveur: localhost
    -- Généré le : Sam 13 Décembre 2008 à 08:08
    -- Version du serveur: 5.0.51
    -- Version de PHP: 5.2.6
     
    SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
     
    -- 
    -- Base de données: `adebono`
    -- 
     
    -- --------------------------------------------------------
     
    -- 
    -- Structure de la table `destination`
    -- 
     
    CREATE TABLE `destination` (
    `id` int(11) NOT NULL auto_increment,
    `nompays` varchar(20) NOT NULL,
    `nomville` varchar(20) NOT NULL,
    `type` varchar(10) NOT NULL,
    `commentaire` text NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
     
    -- 
    -- Contenu de la table `destination`
    -- 
     
    INSERT INTO `destination` (`id`, `nompays`, `nomville`, `type`, `commentaire`) VALUES
    (1, 'france', 'paris', 'cafe', 'tres bon cafe'),
    (2, 'espagne', 'madrid', 'hotel', 'hotel du port'),
    (3, 'allemange', 'munich', 'restaurant', 'restaurant bavarois'),
    (4, 'france', 'cannes', 'cafe', 'cafã© roma');
     
     
     
    Voici ma premiere page qui genere les 2 listes essai.php
     
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script type="text/javascript">
    /**
    * Permet d'envoyer des données en GET ou POST en utilisant les XmlHttpRequest
    */
    function sendData(param, page)
    {
    if(document.all)
    {
    //Internet Explorer
    var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
    }//fin if
    else
    {
    //Mozilla
    var XhrObj = new XMLHttpRequest();
    }//fin else
     
    //définition de l'endroit d'affichage:
    var content = document.getElementById("contenu");
     
    XhrObj.open("POST", page);
     
    //Ok pour la page cible
    XhrObj.onreadystatechange = function()
    {
    if (XhrObj.readyState == 4 && XhrObj.status == 200)
    content.innerHTML = XhrObj.responseText ;
    }
     
    XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    XhrObj.send(param);
    }//fin fonction SendData
     
    </script>
    </head>
    <body>
     
    <?php
    // Paramètres de la Connexion à la base MYSQL
    include("base.php");
    $i=0; // variable de test
    $j=0; // variable pour garder la valeur du premier enregistrement catégorie pour l'affichage
     
     
    // Séléction de tous les enregistrements de la table Catégorie
    $rq="Select DISTINCT(nompays) from destination order by nompays;";
    $result= mysql_query ($rq) or die ("Select impossible");
    echo "<form method='POST' action='valid.php'>";?> <select size="1" name="pays" OnChange="sendData('id='+this.value,'liresc2.php')" onKeyUp="sendData('id='+this.value,'liresc.php')">
     
    <?php
    while ($dt=mysql_fetch_row($result))
    {
    // Remplir la liste déroulante des catégorie
    echo "<option value=".($dt[0]).">".($dt[0])."</option>";
    if ($i==0) { $j=$dt[0]; $i=1; } // garder la valeur du premier enregistrement
    }
     
    ?>
    </select><br><br>
     
     
     
    <div id="contenu">
    <?php
    // affichage des sous-catégorie appartenant à la première catégorie.
    echo "<select size='1' name='ville'>";
    $rq="Select nomville from destination where nompays=".$j." order by nomville;";
    $result= mysql_query ($rq) or die ("Select impossible");
    // $i = initialise le variable i
    $i=0;
    while ($dt=mysql_fetch_row($result))
    {
    echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[0])."</option><br>";
    }
    echo "</select>";
    ?>
    </div>
    </form>
    </body>
    </html>
     
     
    et voici la seconde page liresc2.php qui execute la seconde requete sql.
    <?php
    header('Content-type: text') ; // on déclare ce qui va être afficher
     
    // test des POST emis
    if(isset($_POST['id']) && !empty($_POST['id']) ){
    include("base.php");
    $rq="Select nomville from destination where nompays=".$_POST['id']." order by nomville;";
    $result= mysql_query ($rq) or die ("Select impossible");
    // $i = initialise le variable i
    $i=0;
    if (mysql_num_rows($result)>0)
    {
    echo "<select size='1' name='ville'>";
    }
     
     
    while ($dt=mysql_fetch_row($result))
    {
    echo "<option value=".utf8_encode($dt[0]).">".utf8_encode($dt[0])."</option><br>";
    }
    echo "</select>";
    }
     
    ?>
    Merci de votre aide je cherche depuis 2 jours et la je suis vraiment bloqué




    D'aprés moi le souci vient de mon $_POST[id] qui est comparé à nompays dans liresc2 et de $j qui est aussi comparé à nompays pour le premier affichage mais je ne sais pas resoudre le probleme.

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    DISTINCT n'est pas une fonction. Tu as essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT nompays FROM ...
    ?

    A+

Discussions similaires

  1. Pb constitution requete avec Select, Distinct et Count
    Par Anaxagore dans le forum VBA Access
    Réponses: 2
    Dernier message: 16/12/2011, 23h32
  2. Requete insert avec select
    Par nanette38 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 26/03/2008, 16h21
  3. [AJAX] Listes liées avec Ajax
    Par Zak_92 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 15/08/2007, 12h19
  4. Requete Update avec Select imbriqué: etrange resultat!
    Par corentone dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/08/2007, 15h05
  5. Comment faire une requete liée avec une requete ?
    Par DavidDeTroyes dans le forum Requêtes
    Réponses: 4
    Dernier message: 18/04/2006, 13h18

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