Systeme de tri PHP

Wave Style 974 Messages postés 902 Date d'inscription   Statut Membre Dernière intervention   -  
Wave Style 974 Messages postés 902 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, j'ai un site internet , codée en PHP ou il y a une zone photo pour les membre , il peuvent envoyer leur photos , bientot pouvoir poster leur commentaire , etc ... Pour l'instant , tout marche parfaitement , mais les photos sont affichée une par une , dans des "<div>" avec le nom de l'auteur au dessus , les photos sont stocké sur le serveur puis les information de la photo , comme sont url , l'auteur , l'emplacement de la photo dans la base de données MySql . Ce que je voudrais , c'est qu'un code PHP met toutes les photos du meme auteur dans le meme "<div>" , et non une par une .. Voila la page en question : " http://slproduction974.toile-libre.org/photo.php " ;
Si quelqu'un pourrait m'aider , merci



--
Wave Style 974 ...

2 réponses

  1. Wave Style 974 Messages postés 902 Date d'inscription   Statut Membre Dernière intervention   76
     
    Up please !
    0
  2. Alain_42 Messages postés 5413 Statut Membre 904
     
    une solution en passant par un array multidimensions:

    <?php
    //init array multidimensions
    //premier niveau de l'array=auteur puis niveau 2 on a le numero de la photo (par auteur) puis niveau 3 on a les infos
    $array_photos=array();
    //...connexion BDD etc... puis
    //requette vers la BDD pour stocker dans l'array multidimensions
    
    $req="SELECT * FROM ta_table_photo ORDER BY auteur";
    $result=mysql_query($req);
    //par une boucle on va stocker les infos dans l'array
    // tu adaptes en fonction de tes noms de champs BDD bien sur
    
    while($donnees=mysql_fetch_assoc($result)){
    	$array_photos[$donnees['auteur']][]['url']=$donnees['url']; //automatiquement php va incrementer de un l'index num_photo chaque fois qu'il trouve le meme auteur
    	$num_photo=sizeof($array_photos[$donnees['auteur']]) - 1 ; //on lit le numero qu'il a atribué, ça commence a zero
    	$array_photos[$donnees['auteur']][$num_photo]['emplacement']=$donnees['emplacement']; //pour ce meme auteur on stockes les infos dans le niv 3 de l'array
    	$array_photos[$donnees['auteur']][$num_photo]['commentaire']=$donnees['commentaire'];
    }
    
    // TEST pour voir ce que contient ton array:
    echo '<pre>';
    print_r($array_photos);
    echo '</pre>';
    
    //affichage dans les div
    
    foreach($array_photos as $auteur=>$s_array1){
    	//on parcours le premier niveau
    	echo '<div .....'; //un div par auteur
    	echo 'Auteur photo(s) '.$auteur.'<br />';
    	foreach($s_array1 as $num_photo=>$s_array2){
    		//on parcours ensuite toutes les photos de cet auteur
    		echo 'Affichage photo '.($num_photo+1).'<img src="'.$s_array2['emplacement'].' " ....... ><br />';
    		echo 'Commentaire: '.$s_array2['commentaire'].'';
    	}
    	echo '</div>';
    
    }
    ?>
    0
    1. Wave Style 974 Messages postés 902 Date d'inscription   Statut Membre Dernière intervention   76
       
      Ok merci , je vais esseyer.
      0
    2. Wave Style 974 Messages postés 902 Date d'inscription   Statut Membre Dernière intervention   76
       
      Merci beaucoup Alain_42 , j'ai adapté ton code a mon site et sa a donnée sa :
      http://slproduction974.toile-libre.org/photo.php ..
      Merci ,c'est exactement ce que je cherchai , Je completerais la suite à droite demain. Merci pour ton code ;)
      0