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 :

vérifier la ligne suivante [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 284
    Points : 149
    Points
    149
    Par défaut vérifier la ligne suivante
    Bonjour,

    Lors d'une récupération de données sur ma bdd j'ai besoin de comparé la donnée réceptionnée avec la suivante, avant même de la récupérer

    Schémas:
    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
    <?php
    	include("./id/connexion_website.php");
    	$requete_test = $bdd->query("SELECT nom FROM groupes");
    	$requete_test->execute();
    	$donnees = $requete_test->fetch(PDO::FETCH_BOTH);
    	if ($donnees[0] == $donnees['1'])
            {
                    // TRAITEMENT
            }
            else
            {
                    // TRAITEMENT
            }
    	$requete_test->closeCursor();
    ?>
    C'est impossible car il faut récupérer les lignes les unes après les autres, mais comment faire pour faire un traitement sur la valeur de la prochaine ligne ? Je travaille dans une boucle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     include("./id/connexion_website.php");
    	$requete_test = $bdd->query("SELECT nom FROM groupes");
    	$requete_test->execute();
    	while ($donnees = $requete_test->fetch())
    si je fais un:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $data_back = $donnees['nom'];
    $donnees = $requete_test->fetch()
    $data_next = $donnees['nom'];
     
    if ($data_back == $data_next)
    {
            // TRAITEMENT
    }
    else
    {
           // TRAITEMENT
    }
    $requete_test->closeCursor();
    Le problème est que quand je reviendrai sur ma boucle, ça récupérera la ligne après celle de "$data_next", qui ne sera donc pas traité (je sauterai une ligne à chaque fois).

    Il y a surement une petite astuce mais j'ignore laquelle !

    Merci ! et si mon poste n'est pas très clair sur certains points, n'hésitez pas à me demander plus de précisions !

  2. #2
    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 : 39
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Je ne comprends pas trop : vouloir utiliser une donnée avant de l'avoir récupérée c'est un peu comme vouloir enfiler un pantalon en le laissant dans le placard...

    A mon avis tu as deux possibilités : tout récupérer dans un tableau (avec fetchAll) et boucler sur le tableau ensuite. Ou bien, récupérer la première ligne, la stocker dans une variable temporaire, puis comparer chaque ligne avec la précédente (ce qui implique d'inverser l'algo...)

    Alternative : repenser complètement l'algo pour ne pas avoir besoin de faire cette comparaison. On peut avoir un exemple concret ?
    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]

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 284
    Points : 149
    Points
    149
    Par défaut
    Bonjour,

    J'ai effectivement repensé l'algo, l'utilisation de fetchAll() était la solution à mon problème !

    Merci

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

Discussions similaires

  1. [CSH] Afficher la ligne suivante celle trouvée par grep
    Par fantomas261 dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 13/04/2007, 15h17
  2. [VBA-E]Prise en compte ligne suivant condtition multiple
    Par baptbapt dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 04/08/2006, 12h05
  3. [Access] Max + 3 autres lignes suivantes
    Par Le Pharaon dans le forum Langage SQL
    Réponses: 8
    Dernier message: 28/07/2006, 14h44
  4. Comment allez vers la ligne suivante d'un dbgrid
    Par Karim1971 dans le forum Bases de données
    Réponses: 7
    Dernier message: 12/05/2006, 11h57
  5. VBA EXCEL - Sélection d'une ligne suivant saisie
    Par brethomeau dans le forum Macros et VBA Excel
    Réponses: 48
    Dernier message: 15/11/2005, 17h41

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