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 :

Problème boucle while


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    janvier 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : janvier 2012
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Problème boucle while
    Bonjour à tous,

    Alors voilà je maitrise peu php et me trouve face à un problème qui ne doit pas être bien compliqué, mais je n'arrive pas à le résoudre...

    Donc j'ai une requete qui va me chercher dans une table les utilisateurs en fonction de certains paramètres

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $sql="select user_id from ma_table where jardin='".$Data->jardin."' and user_id!='$dernier_user' and ect...";
    $sqlResult=$dbh->query($sql);
    Puis je met ce résultat dans un while pour effectuer diverses requetes sur chaque utilisateur
    donc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    while($data=mysql_fetch_object($sqlResult))
    	{ req....}

    Bon jusque là tout va bien, sauf que mon problème est que: quand la boucle retourne au départ elle réeffectue ma requête et il n'y aucun ordre dans les utilisateurs choisis car comme vous pouvez le voir dans ma requête il y a un "Where" qui regarde si user_id!='$dernier_user' ce qui fonctionne très bien si seulement 2 utilisateurs sont là, mais si un troisième arrive catastrophe étant donné que ma req regarde le dernier utilisateur.
    Il y aura donc une répartition complètement inégale des utilisateurs, j'espère que vous comprenez le souci, j'essaye de bien m'expliquer (mais bon moi jme comprends ) ce qui n'est peut-être pas votre cas...!

    Donc en fait si vous avez compris le début, je vous explique la suite :-°

    Je voulais donc que si 3,4,5,etc... utilisateurs utilisaient le système en même temps, tous les utilisateurs soient bien pris en compte un par un.
    J'ai donc voulu faire un select count regardant si dans mes dernières entrées l'utilisateur ne s'y trouvait pas déjà donc genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql654="select count(*) from mon_autre_table where user_id='".$user_id."' order by id desc limit 0, $nbre_utilisateur";
    Hors apparemment le limit n'est pas pris en compte dans un select count, comment puis-je donc faire pour que chaque utilisateur soit pris en compte ?

    Sachant que je ne peux pas modifier ma requête de départ contenant le user_id!='$dernier_user'

    Bref j'espère que vous comprenez ce que j'essaie d'expliquer (avec mes mots ) et pourrez m'aider !

    D'avance merci.

  2. #2
    Nouveau membre du Club
    Inscrit en
    juin 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : juin 2008
    Messages : 36
    Points : 38
    Points
    38
    Par défaut
    Bonjour skurseb,

    Peut être que tu pourrais donner un apercu plus large de ton code pour qu'on voit un peu mieux d'ou viennent le problème et étayer ton explication, car là ca n'est pas très clair effectivement !

    Cordialement,

  3. #3
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour,

    Je ne comprends pas la première requête avec l'id du dernier utilisateur

    Car lorsque chaque utilisateur qui arrive dans ta table, il aura si l'id est en autoincrement un id de numéro plus grand que celui d'avant et etc etc. Donc pour avoir à un instant t, la liste des utilisateurs sauf le dernier tu enléves ton where id != $dernierId et tu fais juste un orderBy user_id DESC avec le where du jardin. Ensuite Dans ta boucle, tu ne prends pas le premier enregistrement (ce qui est simple à faire).
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

Discussions similaires

  1. Problème boucle while
    Par Peedro dans le forum Langage
    Réponses: 4
    Dernier message: 07/10/2008, 14h09
  2. Problème boucle while
    Par chuko dans le forum C
    Réponses: 7
    Dernier message: 04/07/2008, 16h12
  3. Problème boucle while
    Par fred33 dans le forum Langage
    Réponses: 2
    Dernier message: 23/05/2008, 19h16
  4. [MySQL] Problème boucle WHILE
    Par Adlack dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/02/2007, 19h30
  5. Problème boucle while et evenement
    Par tse_tilky_moje_imja dans le forum Général Python
    Réponses: 2
    Dernier message: 30/03/2006, 18h11

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