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

Langage PHP Discussion :

Stocker des id dans un Array puis les utiliser


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2007
    Messages : 146
    Points : 48
    Points
    48
    Par défaut Stocker des id dans un Array puis les utiliser
    Bonjour,

    J'esasye d'optimiser un peu mon parcours de BBD en évitant de retomber sur des record déjà traité par une fonction précédente.

    Pour ca, je dois stocker à chaque traitement d'un record l'id dans un array par exemple.
    Comme ca, lors de la prochaine fonction, donc requete, j'exclue tous les id déjà traité car on va dire que les fonction sont opposés.
    Je les exclus tout bêtement via "WHERE id!=XX AND id!=YY".

    Déjà est-il possible d'avoir une requete très longue ? (donc avec beaucoup de id!=XX)
    Si oui, comment ensuite distribué chaque id de sorte a ce que ma requete soit comme dans l'exemple précédent ? (un peu comme array_map, mais qui je crois ne s'applique qu'aux fonctions)

    Pour ajouter un élément, je n'ai qu'à faire array_push($id_exclus,$res["id"]);


    Est-ce claire ?

    Amicalement

  2. #2
    Membre du Club
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2007
    Messages : 146
    Points : 48
    Points
    48
    Par défaut
    Désolé d'avoir poster pour finalement répondre à ma question.

    Mais j'attends des solutions plus sympa si vous avez.
    En attendant je met la mienne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function idexclus($id) {
    	return " AND id!=$id";
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while ($res2 = mysql_fetch_array($sql_res2)) {
    	if (/*validé*/) {
    		array_push($id_exclus,$res2["id"]);	// On ajoute l'id futur exclus	
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // requete refusant les id exclus et prends les autre non traité précédement
    $sql = "SELECT * FROM table WHERE user_id=$_SESSION[membre_id] AND offer_id=$obj[id]".implode(" ", array_map("idexclus",$id_exclus))." ORDER BY `amount` ASC";

  3. #3
    Invité
    Invité(e)
    Par défaut
    Tout simplement avec l'instruction NOT IN de SQL.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    'SELECT * 
    FROM table 
    WHERE user_id = '.$_SESSION['membre_id'].'
    AND offer_id = '.$obj['id'].'
    AND id NOT IN ( '.implode(',', $id_exclus).' ) 
    ORDER BY `amount` ASC'
    Il va juste falloir penser à gérer la situation où ton tableau $id_exclus serait vide (si ce cas peut arriver).
    • Soit tu n'ajoute l'instruction 'AND id NOT IN ........' que si count($id_exclus)>0
    • edit : non en fait c'est tout ce que je vois


    Et pour te faciliter la vie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // Ces 2 instructions sont équivalentes
    array_push($id_exclus,$res2["id"]);
    $id_exclus[] = $res2['id'];
    Dernière modification par Invité ; 28/08/2010 à 00h18.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/01/2012, 18h08
  2. Réponses: 6
    Dernier message: 02/12/2010, 22h04
  3. Réponses: 3
    Dernier message: 15/05/2008, 21h29
  4. Réponses: 2
    Dernier message: 15/06/2005, 17h32
  5. [XML] stocker des données dans un fichier XML
    Par R3iTt0R dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 27/05/2005, 16h51

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