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 :

Construction d'un résultat en XML [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 18
    Par défaut Construction d'un résultat en XML
    Bonjour,

    Bon je vous explique mon 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
    25
    <?php
     
    	$tableauJoueur = array();
    	$tableauScore = array();
     
    	// on se connecte à MySQL
    	$db = mysql_connect('localhost','root','mysql');
     
    	// on sélectionne la base
    	mysql_select_db('Test',$db);
     
    	// on récupère les 10 meilleurs scores sur le jeu joué 
    	$sqlranking = "SELECT Joueur, Score FROM score WHERE ID_Jeu='1' ORDER BY Score DESC LIMIT 10";
    	$reqranking = mysql_query($sqlranking) or die('Erreur SQL !<br>'.$sqlranking.'<br>'.mysql_error());
    	//$dataranking = mysql_fetch_assoc($reqranking);
    	while ($row = mysql_fetch_array($reqranking)) {
    		//echo $row['Joueur'];
    		//echo $row['Score'];
    		array_push($tableauJoueur, $row['Joueur']);
    		array_push($tableauScore, $row['Score']);
    	}
     
    	echo "<dataclassement><classement sqlJoueur0='".$tableauJoueur[0]."' sqlScore0='".$tableauScore[0]."' sqlJoueur1='".$tableauJoueur[1]."' sqlScore1='".$tableauScore[1]."' sqlJoueur2='".$tableauJoueur[2]."' sqlScore2='".$tableauScore[2]."' sqlJoueur3='".$tableauJoueur[3]."' sqlScore3='".$tableauScore[3]."' sqlJoueur4='".$tableauJoueur[4]."' sqlScore4='".$tableauScore[4]."' sqlJoueur5='".$tableauJoueur[5]."' sqlScore5='".$tableauScore[5]."' sqlJoueur6='".$tableauJoueur[6]."' sqlScore6='".$tableauScore[6]."' sqlJoueur7='".$tableauJoueur[7]."' sqlScore7='".$tableauScore[7]."' sqlJoueur8='".$tableauJoueur[8]."' sqlScore8='".$tableauScore[8]."' sqlJoueur9='".$tableauJoueur[9]."' sqlScore9='".$tableauScore[9]."' /></dataclassement>";
     
    ?>
    Le code ci-dessus fonctionne mais seulement quand ma base est au moins rempli de 10 enregistrements. Ce code me permet d'envoyer des valeurs à flash en l'occurence les 10 meilleurs joueurs et leur score. Le problème est que quand il y a moins de 10 personnes dans la table j'obtiens des erreurs du genre : Notice: Undefined offset: 1 in C:\weblocal\sites\Steria\classement.php on line 23

    Il faudrait que je modifie mon code de manière à ce que si j'ai moins de 10 joueurs je n'obtienne pas cette erreur... mais je bloque

  2. #2
    Membre émérite
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Par défaut
    Salut,
    Selectionne d'abord le nombre de joueurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $nb = "SELECT Count(1) FROM score WHERE ID_Jeu='1'";
    Ensuite tu passe ce nombre dans une variable $limit que tu met dans la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sqlranking = "SELECT Joueur, Score FROM score WHERE ID_Jeu='1' ORDER BY Score DESC LIMIT ".$limit;
    Sans oublier de limiter cette variable au cas ou il y aurait plus de 10 joueurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if($limit > 10){
        $limit = 10;
    }

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 18
    Par défaut
    Merci pour ta réponse, mais celà ne règle pas mon problème car j'obtiens toujours cette erreur vu que dans mon echo il y a toujours des variables undefined si le tableau ne se remplit pas pour 10 personnes.

    En faite il faudrait que je fasse ma requête et que je remplisse mon tableau à la fin de telle sorte qu'il y'ait toujours 10 personnes dedans. Je sais pas si c'est possible?

  4. #4
    Membre émérite
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Par défaut
    Essaye ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    echo "<dataclassement><classement ";
    for($i = 0; $i<sizeof($tableauJoueur); $i++){
      echo "sqlJoueur".$i."='".$tableauJoueur[$i]."' sqlScore".$i."='".$tableauScore[$i]."'";
    }
    echo " /></dataclassement>";

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 18
    Par défaut
    Mon sauveur! Un grand merci

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

Discussions similaires

  1. Enregistrer dans un fichier un résultat déjà XML
    Par boubou38 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 01/02/2012, 17h17
  2. Résultat KSOAP XML
    Par belgikoi dans le forum Android
    Réponses: 4
    Dernier message: 25/01/2012, 14h55
  3. Oracle 11g : sortie des résultats en xml
    Par ptit_dav dans le forum Import/Export
    Réponses: 2
    Dernier message: 21/12/2010, 15h44
  4. [PHP] Limiter résultats flux xml
    Par Freedolphin dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 22/02/2006, 09h53

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