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 :

Sélection avec condition sans base de données


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 149
    Points : 48
    Points
    48
    Par défaut Sélection avec condition sans base de données
    Bonjour

    J'ai fait ce matin le code permettant de visualiser le classement des joueurs de mon jeux php (aucun problème)
    Mais matenant je voudrais juste afficher le rang d'un joueur sur sa page principale.
    Si vous n'avez pas compris, l'alorigrame francais serrais :

    Selection de tous le joueurs par ordre dé-croissant ==>j'ai fait
    rang du premier joueur = 1 et les joueurs suivant = 'rang N-1 +1' ==>j'ai fait
    Selection du rang du joueurs avec le login corespondant ==>je bloque

    J'avais fait un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
      $cumul="SELECT $cumul WHERE login='".$_SESSION['login']."' ";
    Mais je suis conssiant que c'est completement debile,puisque ca s'applique a une base de donnée...

    Bref je ne sais vraiment pas comment faire
    Merci

  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
    Bonjour,
    d'abord une remarque : 'rang= N-1 +1' pour moi ça fait 'rang=N' pour tout le monde. Mais ça doit venir d'une erreur de frappe

    Ensuite, comment sont mémorisés tes joueurs ? Je m'explique : si tu peux faire un tri par ordre décroissant (de score je suppose), c'est qu'ils doivent être mémorisés quelque part.
    Si c'est dans une base de données, ton idée de requête est bonne. Si c'est autrement, savoir comment serait utile
    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 émérite
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Thaïlande

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 563
    Points : 2 390
    Points
    2 390
    Par défaut
    la requete devrais ressembler à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(*) as rang FROM `ta_table` WHERE `score`>$_SESSION['mon_score']
    Il faut que tu ai un champ qui contienne le score du joueur et tu n'a plus qu'a compter combient de joueur ont un meilleur score que toi et d'ajouter 1
    Zend Certified PHP Engineer

    « Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana

  4. #4
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2007
    Messages : 215
    Points : 151
    Points
    151
    Par défaut
    Mais toutes tes info sur les joueurs (pseudo nbpoints...) elles sont enregistré ou? Le classement est valable que pendant la sessions?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 149
    Points : 48
    Points
    48
    Par défaut
    Mon tableau est simplement généré comme suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $req = mysql_query("SELECT * FROM membre ORDER by tterre DESC");               
    tableau
    					$cumul = 0;												 
    while ($myrow = mysql_fetch_array($req)) {	
     
    				$cumul += 1;	/* cumul etant le rang des joueurs */
    Tableau

  6. #6
    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
    Bonjour
    Si j'ai bien compris, tes joueurs et leurs scores (tterre?) sont dans une base de données mais le rang ($cumul) est une variable du script.
    Pourquoi ne pas rajouter un attribut rang à ta table membre ?
    Ce qui donnerait un truc du genre : (avec un numéro d'identité du membre id)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $cumul = 0;
    $req = mysql_query("SELECT * FROM membre ORDER by tterre DESC");	 
    while ($myrow = mysql_fetch_array($req)) {
      $cumul += 1;	/* cumul etant le rang des joueurs */
      mysql_query("UPDATE membre SET rang=$cumul WHERE id=$myrow['id']");
    }
    Il y a sans doute plus simple, mais ça pourrait déjà marcher (sauf si je me suis plantée dans l'update )
    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]

Discussions similaires

  1. Livre d'Or PHP avec fichier texte (sans base de données)
    Par Invité dans le forum Contribuez / Téléchargez Sources et Outils
    Réponses: 7
    Dernier message: 24/04/2016, 06h53
  2. CMS - blog - wiki : Avec ou sans base de donnée ?
    Par kromartien dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 14/03/2010, 13h38
  3. Réponses: 4
    Dernier message: 19/06/2008, 09h41
  4. Réponses: 5
    Dernier message: 31/03/2008, 17h07
  5. Postfix/imap Avec ou sans base de donnée
    Par manu7781 dans le forum Administration système
    Réponses: 1
    Dernier message: 10/04/2007, 14h30

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