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 :

Ajax et BDD


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif Avatar de xender
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 93
    Par défaut Ajax et BDD
    Bonjour,

    je ne comprends pas pourquoi m'a boucle s'execute 2 fois :-S :
    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
    <?php require_once('connexion.php'); ?>
    <?php
    header('Content-Type: text/xml;charset=utf-8');
    echo(utf8_encode("<?xml version='1.0' encoding='UTF-8' ?><options>"));
    if (isset($_GET['debut'])) {
        $debut = utf8_decode($_GET['debut']);
    } else {
        $debut = "";
    }
    $debut = strtolower($debut); //mise en minuscules
    mysql_select_db("dbprotect", $dbprotect);
    $ref_piece = mysql_query("SELECT ref_piece FROM `posts_commande` WHERE ref_piece LIKE '".$_GET["debut"]."%'");
    $liste = mysql_fetch_array($ref_piece); //assignation des valeurs trouvée dans un tableau
     
    function generateOptions($debut,$liste) {
        $MAX_RETURN = 10; //loguer maxi de la liste
        $i = 0;
        foreach ($liste as $element) {
            if ($i<$MAX_RETURN && substr($element, 0, strlen($debut))==$debut) {
            echo $element;
                echo(utf8_encode("<option>".$element."</option>"));
                $i++;
            }
        }
    }
     
    generateOptions($debut,$liste);
     
    echo("</options>");
    ?>
    Le résultat avec comme adresse :
    http://127.0.0.1/autocompletion-sour...ns.php?debut=3

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      <?xml  version="1.0" encoding="UTF-8" ?> 
      <a href="http://www.developpez.net/forums/#" target="_blank">-</a> <options>
        3456 
        <option>3456</option> 
     
       3456 
        <option>3456</option> 
     
       </options>

    Alors que dans ma base il n'y a qu'un seul enregistrement qui correspond!
    Code SQL : 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
    -- 
    -- Structure de la table `posts_commande`
    -- 
     
    CREATE TABLE `posts_commande` (
      `id_commande` int(11) NOT NULL default '0',
      `ref_piece` varchar(32) NOT NULL default '',
      `quantite` int(5) NOT NULL default '0',
      `designation` varchar(64) NOT NULL default '',
      `ref_appareil` varchar(32) NOT NULL default '',
      `num_fabric` varchar(32) NOT NULL default ''
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
     
    -- 
    -- Contenu de la table `posts_commande`
    -- 
     
    INSERT INTO `posts_commande` VALUES (200, '3456', 1, 'porte', '1234', '2002');
    INSERT INTO `posts_commande` VALUES (201, '1234', 1, 'Joint', '89011', '2001');

    Pouvez-vous me dire mon erreur svp?
    Merci

    A bientôt

  2. #2
    Membre émérite Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Par défaut
    Si tu fais un mysql_getNumRows apres l'execution de ta requete, il te donne une ou deux lignes ?

  3. #3
    Membre actif Avatar de xender
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 93
    Par défaut
    Une seule c'est bien ça le pb que je ne comprends pas :-(

    voici l'exemple de code ajax que j'utilise :
    http://dcabasson.developpez.com/arti...ion-pas-a-pas/

  4. #4
    Membre émérite Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Par défaut
    Et si tu fais un print_r de liste dans ta fonction ?

  5. #5
    Membre actif Avatar de xender
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 93
    Par défaut
    ça donne ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ...
    function generateOptions($debut,$liste) {
        $MAX_RETURN = 10; //loguer maxi de la liste
        $i = 0;
        foreach ($liste as $element) {
            echo print_r($liste);
            if ($i<$MAX_RETURN && substr($element, 0, strlen($debut))==$debut) {
                echo(utf8_encode("<option>".$element."</option>"));
                $i++;
            }
        }
    }
    ...

    Résultat :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     <?xml version="1.0" encoding="UTF-8"  ?> 
      <a href="http://www.developpez.net/forums/#" target="_blank">-</a> <options>
        Array ( [0] => 1234  [ref_piece] => 1234 ) 1 
        <option>1234</option> 
     
       Array ( [0] => 1234  [ref_piece] => 1234 ) 1 
        <option>1234</option> 
     
       </options>

  6. #6
    Membre émérite Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Par défaut
    Donc c normal que ca genere deux ligne car tu as le retour indexe par le numero de la colone de retour et par le nom de celle ci.
    donc 2 valeurs.

Discussions similaires

  1. Upload d'image ajax, ID & BDD
    Par jv-boy dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/06/2011, 10h49
  2. [PHP 5.0] [conception] Un projet php (POO-BDD-Ajax-CSS)
    Par cryptom dans le forum Langage
    Réponses: 3
    Dernier message: 10/04/2009, 01h41
  3. script de verification d'une bdd avec ajax
    Par Invité dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/12/2008, 22h39
  4. [AJAX] Ecriture de balise html dans une BDD avc AJAX
    Par togzz dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/11/2008, 10h59
  5. [AJAX] Vérifier des données dans une BDD avec AJAX
    Par mwech dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 22/10/2008, 15h13

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