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 imbriquée dans autre boucle while


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 26
    Points : 16
    Points
    16
    Par défaut Problème boucle while imbriquée dans autre boucle while
    Bonjour à tous,

    Cette fois ma boucle "album" ($data7) s'effectue correctement mais (tous mes albums sont bien listés) mais la boucle des "sons" a un problème... Elle s'effectue mais pas correctement... J'ai essayé deux manières de l'écrire (avec jointure et sans jointure) mais le résultat n'est jamais le bon.

    Voilà ce que je fais et ce que j'obtiens:

    Sans jointure:

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    require "configedition.php";
     
    mysql_connect(DB_HOST, DB_LOGIN, DB_PASS);
    mysql_select_db(DB_BDD);
     
    $fichierXML7 = '../../FlashBanner/player/xml/mp3_player.xml';
     
     
    $sql7 = "SELECT * FROM albums";
    $req7 = mysql_query($sql7) or die();
     
     
     
    while ($data7=mysql_fetch_array($req7)) 
    {
    	$id = $data7['id'];
    	$sql8 = "SELECT * FROM songs WHERE album_id = '".$id7."'";
    	$req8 = mysql_query($sql8) or die();
     
     
    	while ($data8=mysql_fetch_array($req8)) 
    	{
    	        $titre8= $data8['titre'];
    		$duree8= $data8['duree'];
    		$song8= $data8['song_name'];
     
    		$g.=( '<song name="'.$titre8.'" duration="'.$duree8.'" buy="false" download="true" buyLink="http://www.flabell.com/" downloadSource="player/download/'.$titre8.'">songs/'.$song8.'</song>');
     
    	}
     
    	$titre7= $data7['titre'];
    	$artiste7 = $data7['artiste'];
    	$img7 = $data7['img_name'];
     
    	$h.=('<album name="'.$titre7.'" author="'.$artiste7.'" imageUrl="images/'.$titre7.'/'.$img7.'" link="http://flabell.com/">'.$g.'</album>'); 
     
    }
     
     
    $content7 =  "<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
    <featureset>".$h."</featureset>";
     
     
    $dynamic_content7 = $content7; 
    $openfichier7 = fopen($fichierXML7,"w"); 
    fwrite($openfichier7,"");
    fwrite($openfichier7,""); 
    fwrite($openfichier7,$dynamic_content7); 
    fwrite($openfichier7,""); 
    fclose($openfichier7); 
    chmod('../../FlashBanner/player/xml/mp3_player.xml',0777);
    Ici j'obtiens:

    <?xml version='1.0' encoding='UTF-8' standalone='no' ?>

    <featureset>

    <album name="erkioperigr" author="Meven" imageUrl="images/erkioperigr/20090118IGP6464.jpg" link="http://flabell.com/">
    <song name="erkioperigr" duration="00 : 00" buy="false" download="true" buyLink="http://www.flabell.com/" downloadSource="player/download/erkioperigr">songs/beeat.mp3</song>
    <song name="x1" duration="00 : 00" buy="false" download="true" buyLink="http://www.flabell.com/" downloadSource="player/download/x1">songs/new 1.mp3</song>
    </album>



    <album name="Test" author="Meven" imageUrl="images/Test/20090118-_IGP6494.jpg" link="http://flabell.com/">
    <song name="erkioperigr" duration="00 : 00" buy="false" download="true" buyLink="http://www.flabell.com/" downloadSource="player/download/erkioperigr">songs/beeat.mp3</song>
    <song name="x1" duration="00 : 00" buy="false" download="true" buyLink="http://www.flabell.com/" downloadSource="player/download/x1">songs/new 1.mp3</song>
    <song name="Immature" duration="04 : 15" buy="false" download="true" buyLink="http://www.flabell.com/" downloadSource="player/download/Immature">songs/immature.mp3</song>
    <song name="Freestyle de batard vol.7" duration="04 : 15" buy="false" download="true" buyLink="http://www.flabell.com/" downloadSource="player/download/Freestyle de batard vol.7">songs/Meven - Freestyle de batard Vol 7.mp3</song>
    </album>
    </featureset>



    LA deuxième boucle récupère correctement les infos du premier album... mais pour les albums qu'ils suivent elle ajoute les pistes des précédents albums plus celle de l'album actuellement selectionne.



    Que puis je faire?

  2. #2
    Membre averti Avatar de blade159
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2004
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 226
    Points : 332
    Points
    332
    Par défaut
    Bonjour,

    à première vue, je pense que cela viendrais de la variable $g qui n'est pas réinitialisée entre chaque album. Essayez plutôt comme ça :

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    require "configedition.php";
    						
    mysql_connect(DB_HOST, DB_LOGIN, DB_PASS);
    mysql_select_db(DB_BDD);
     
    $fichierXML7 = '../../FlashBanner/player/xml/mp3_player.xml';
     
     
    $sql7 = "SELECT * FROM albums";
    $req7 = mysql_query($sql7) or die();
    									
     
    						
    while ($data7=mysql_fetch_array($req7)) 
    {
    $g="";	
    $id = $data7['id'];
    	$sql8 = "SELECT * FROM songs WHERE album_id = '".$id7."'";
    	$req8 = mysql_query($sql8) or die();
    									
    										
    	while ($data8=mysql_fetch_array($req8)) 
    	{
    	        $titre8= $data8['titre'];
    		$duree8= $data8['duree'];
    		$song8= $data8['song_name'];
    											
    		$g.=( '<song name="'.$titre8.'" duration="'.$duree8.'" buy="false" download="true" buyLink="http://www.flabell.com/" downloadSource="player/download/'.$titre8.'">songs/'.$song8.'</song>');
    											
    	}
    										
    	$titre7= $data7['titre'];
    	$artiste7 = $data7['artiste'];
    	$img7 = $data7['img_name'];
    										
    	$h.=('<album name="'.$titre7.'" author="'.$artiste7.'" imageUrl="images/'.$titre7.'/'.$img7.'" link="http://flabell.com/">'.$g.'</album>'); 
    									
    }
     
     
    $content7 =  "<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
    <featureset>".$h."</featureset>";
    						
     
    $dynamic_content7 = $content7; 
    $openfichier7 = fopen($fichierXML7,"w"); 
    fwrite($openfichier7,"");
    fwrite($openfichier7,""); 
    fwrite($openfichier7,$dynamic_content7); 
    fwrite($openfichier7,""); 
    fclose($openfichier7); 
    chmod('../../FlashBanner/player/xml/mp3_player.xml',0777);

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2010
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 26
    Points : 16
    Points
    16
    Par défaut
    yeaaaah that was the answer!!!! merci bcp Blake!!

  4. #4
    Membre averti Avatar de blade159
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2004
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 226
    Points : 332
    Points
    332
    Par défaut
    de rien...

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

Discussions similaires

  1. Problème création de macrovariables dans une boucle
    Par Misspatate dans le forum Macro
    Réponses: 10
    Dernier message: 12/07/2011, 17h47
  2. optimiser une boucle while imbriquer dans une boucle for
    Par bakaratoun dans le forum MATLAB
    Réponses: 0
    Dernier message: 28/01/2010, 15h35
  3. Problème ou bug ? Tableau dans une boucle
    Par nico1811 dans le forum Ruby
    Réponses: 12
    Dernier message: 25/01/2010, 09h50
  4. Problème de requête SQL dans une boucle While
    Par Astraya dans le forum VB.NET
    Réponses: 3
    Dernier message: 21/01/2009, 17h18
  5. Problème avec une DLL dans une boucle For
    Par BraDim dans le forum Langage
    Réponses: 5
    Dernier message: 20/09/2005, 12h22

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