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 :

petit problème avec le (for et while) [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé Avatar de kazylax
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 278
    Par défaut petit problème avec le (for et while)
    Bonjour,

    j'ai un problème avec mon tableau a cause du For et while en meme temps
    voici mon code qui pause problème

    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
     
    $pos = mysql_query('SELECT * FROM utilisateurs ORDER BY position ASC') OR die(mysql_error());
     
    $msg .= '<table border="1" width="100%">
    <tr>
    <td colspan="1" width="50"><b><font face="Verdana" size="1" color="lime">Position</font></b></td>
    <td colspan="1"><b><font face="Verdana" size="1" color="lime">Joueur</font></b></td>
    <td colspan="1"><b><font face="Verdana" size="1" color="lime">Alliance</font></b></td>
    <td colspan="1"><b><font face="Verdana" size="1" color="lime">Action</font></b></td>
    </tr>';
     
    $count = 0;
    while ($class = mysql_fetch_array($pos)){
    for($i = 0; $i < 20; $i++){
    $count++;
    $msg .=  '<tr>
    <th><font face="Verdana" size="1" color="white">'.$count.'</font></th>
    <th><font face="Verdana" size="1" color="white">'.$class['pseudo'].'</font>
    <th><font face="Verdana" size="1" color="white">'.$class['tag_alliance'].'</font>
    <th colspan="1"><font face="Verdana" size="1" color="white"></font>
    </tr>';
    }
    }
    $msg .=  '</table>';
    En faite je voudrais afficher mes utilisateurs dans un tableau
    de 20 places mais je voudrais que le tableau afficher mes 20 emplacements
    sur ma page du site

    Savez vous pourquoi il ne fonctionne pas s'il vous plait ?

    Merci
    Cordialement,

  2. #2
    Membre éclairé Avatar de Pymento
    Homme Profil pro
    Ingé. Info.
    Inscrit en
    Janvier 2008
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingé. Info.

    Informations forums :
    Inscription : Janvier 2008
    Messages : 366
    Par défaut
    Bonjour,
    Deja ton $count ne sert a rien tu peux te servir du $i de ta boucle for, ensuite je saisis pas bien l'interêt de faire 20 fois un tour de boucle, et affecter le $msg donc, pour un même objet/array/variable donné(e) par le while ????

  3. #3
    Membre éclairé Avatar de kazylax
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 278
    Par défaut
    Citation Envoyé par Pymento Voir le message
    Bonjour,
    Deja ton $count ne sert a rien tu peux te servir du $i de ta boucle for, ensuite je saisis pas bien l'interêt de faire 20 fois un tour de boucle, et affecter le $msg donc, pour un même objet/array/variable donné(e) par le while ????
    Bonjour,

    Ok pour le $i j'y avez pas penser désolé

    Pour la tableau de 20 emplacement je doit le voir obligatoirement
    ceci me sert pour les positions des joueurs

    Un exemple le joueur A s'inscrit et une fois connecté le joueur
    va en position 1:5 etc... pour les joueurs suivants pareil
    donc voila pourquoi il me faut un tableau de 20 places

    Je vois pas comment faire d'autre si je ne fait pas mon tableau de 20 places sans le For

    pour la variables $msg c'est pour l'afficher sur ma page a la position que je veux

    Cordialement,

  4. #4
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    Je sais pas si j'ai bien cerné ce qu'il veux faire mais je pense que ça doit etre un truc de ce genre :

    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
    $pos = mysql_query('SELECT * FROM utilisateurs ORDER BY position ASC LIMIT 20') OR die(mysql_error());
     
    $msg .= '<table border="1" width="100%">
    <tr>
    <td colspan="1" width="50"><b><font face="Verdana" size="1" color="lime">Position</font></b></td>
    <td colspan="1"><b><font face="Verdana" size="1" color="lime">Joueur</font></b></td>
    <td colspan="1"><b><font face="Verdana" size="1" color="lime">Alliance</font></b></td>
    <td colspan="1"><b><font face="Verdana" size="1" color="lime">Action</font></b></td>
    </tr>';
     
    $count = 0;
    while ($class = mysql_fetch_array($pos)){
    $count++;
    $msg .=  '<tr>
    <th><font face="Verdana" size="1" color="white">'.$count.'</font></th>
    <th><font face="Verdana" size="1" color="white">'.$class['pseudo'].'</font>
    <th><font face="Verdana" size="1" color="white">'.$class['tag_alliance'].'</font>
    <th colspan="1"><font face="Verdana" size="1" color="white"></font>
    </tr>';
    }
    $msg .=  '</table>';

  5. #5
    Membre éclairé Avatar de kazylax
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 278
    Par défaut
    Bonjour,

    Comme ceci j'ai bien mon tableau je l'ai deja essayer
    sauf que je vois pas mes 20 places dans le tableau

    dans ma base utilisateurs j'ai 3 Membres Logique le jeu est en préparation
    donc je vois seulement les 3 membres dans mon tableau et 3 emplacements
    et non 20 emplacements

    voila un exemple clair et précis
    avec le For je fait un tableau de 20 Emplacements
    si un joueur s'inscrit sur le site l'inscription va lui donner une position dans le tableau exemple position 10 donc le joueur se retrouve en postions 10 et le joueur suivant sera en 15 par exemple.

    un autre exemple précis Le jeu Ogame.fr le fait pour la galaxy
    sauf que moi se n'est pas du tout le même genre de jeu.

    Cordialement,

  6. #6
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    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
    $pos = mysql_query('SELECT * FROM utilisateurs ORDER BY position ASC LIMIT 20') OR die(mysql_error());
     
    $msg .= '<table border="1" width="100%">
    <tr>
    <td colspan="1" width="50"><b><font face="Verdana" size="1" color="lime">Position</font></b></td>
    <td colspan="1"><b><font face="Verdana" size="1" color="lime">Joueur</font></b></td>
    <td colspan="1"><b><font face="Verdana" size="1" color="lime">Alliance</font></b></td>
    <td colspan="1"><b><font face="Verdana" size="1" color="lime">Action</font></b></td>
    </tr>';
     
    $count = 0;
    while ($class = mysql_fetch_array($pos)){
    $count++;
    $msg .=  '<tr>
    <th><font face="Verdana" size="1" color="white">'.$count.'</font></th>
    <th><font face="Verdana" size="1" color="white">'.$class['pseudo'].'</font>
    <th><font face="Verdana" size="1" color="white">'.$class['tag_alliance'].'</font>
    <th colspan="1"><font face="Verdana" size="1" color="white"></font>
    </tr>';
    }
    while($count < 20){
    $count++;
    $msg .=  '<tr>
    <th><font face="Verdana" size="1" color="white">'.$count.'</font></th>
    <th><font face="Verdana" size="1" color="white"></font>
    <th><font face="Verdana" size="1" color="white"></font>
    <th colspan="1"><font face="Verdana" size="1" color="white"></font>
    </tr>';
    }
    $msg .=  '</table>';

    Plus propre mais je sais pas si ça va passer :

    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
    $pos = mysql_query('SELECT * FROM utilisateurs ORDER BY position ASC LIMIT 20') OR die(mysql_error());
     
    $msg .= '<table border="1" width="100%">
    <tr>
    <td colspan="1" width="50"><b><font face="Verdana" size="1" color="lime">Position</font></b></td>
    <td colspan="1"><b><font face="Verdana" size="1" color="lime">Joueur</font></b></td>
    <td colspan="1"><b><font face="Verdana" size="1" color="lime">Alliance</font></b></td>
    <td colspan="1"><b><font face="Verdana" size="1" color="lime">Action</font></b></td>
    </tr>';
     
    $count = 0;
    while (($class = mysql_fetch_array($pos)) or ($count < 20)){
    $count++;
    $msg .=  '<tr>
    <th><font face="Verdana" size="1" color="white">'.$count.'</font></th>
    <th><font face="Verdana" size="1" color="white">'.$class['pseudo'].'</font>
    <th><font face="Verdana" size="1" color="white">'.$class['tag_alliance'].'</font>
    <th colspan="1"><font face="Verdana" size="1" color="white"></font>
    </tr>';
    $class = array();
    }
    $msg .=  '</table>';

  7. #7
    Membre éclairé Avatar de kazylax
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    278
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 278
    Par défaut
    ah voila le 2eme code est parfait

    Merci beaucoup
    Cordialement,

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

Discussions similaires

  1. Petit problème avec un for
    Par lXT95l dans le forum C
    Réponses: 1
    Dernier message: 15/01/2015, 09h22
  2. Un petit problème avec pop
    Par Paulinho dans le forum C++
    Réponses: 4
    Dernier message: 13/11/2005, 20h57
  3. Petit problème avec Line Input
    Par GrosQuicK dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 14/09/2005, 12h47
  4. (Petit ?) problème avec une page contenant du Flash
    Par ologram dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 01/09/2005, 18h45
  5. Petit problème avec SDL
    Par Nyarlathotep dans le forum C
    Réponses: 10
    Dernier message: 01/07/2005, 09h10

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