fonction à modifier

Eléphant du PHP | 216 Messages

19 mai 2010, 16:15

Bonjour à tous,
j'ai la fonction suivante qui me permet d'afficher des nom de photo pour chaque adhérent car un adhérent peut avoir plusieurs photos.

$tabGroupement = array();
 
while($dataa = mysql_fetch_assoc($reqa)) {
    $id_adh = $dataa['id_adh'];
    $up_nom = $dataa['up_nom'];    // nom des photo
    
    if (!isset($tabGroupement[$id_adh])) {
        $tabGroupement[$id_adh] = array();
    }
    
    $tabGroupement[$id_adh][] = $up_nom;
}
 
?>
 
<ul>
    
    <?php foreach ($tabGroupement as $id_adh => $liste_nom) {?>
        
        <li>
            
            id_adh = <?php echo $id_adh;?>
        
            <ul>
                
                <?php foreach ($liste_nom as $up_nom) {?>
                    
                    <li>
                        up_nom = <?php echo $up_nom;?>
                    </li>
                    
                <?php }?>
                
            </ul>
            
        </li>
        
    <?php }?>
    
</ul>

mais puisqu'un adhérent peut aussi avoir plusieurs destinations, j'aimerais savoir comment se transformerait le code si j'ajoute les variables
$continent
$pays
$ville


$tabGroupement = array();
 
while($dataa = mysql_fetch_assoc($reqa)) {
    $id_adh = $dataa['id_adh'];
    $up_nom = $dataa['up_nom'];    // nom des photo
    $continent = $dataa['continent'];    // nom du continent
    $pays = $dataa['pays'];    // nom du pays
    $ville = $dataa['ville'];    // nom de la ville
...
Merci d'avance pour votre aide.

ViPHP
ViPHP | 5462 Messages

19 mai 2010, 17:37

je dirais que juste ca suffirait, a toi après de sélectionner juste les champs que tu souhaites dans ta requête :wink:
$tabGroupement = array();

while($dataa = mysql_fetch_assoc($reqa)) 
{     
    $tabGroupement[$dataa['id_adh']] = $dataa;
}

Eléphant du PHP | 216 Messages

20 mai 2010, 10:48

bonjour,

et cette partie de code

    if (!isset($tabGroupement[$id_adh])) {
        $tabGroupement[$id_adh] = array();
    }

on l'oublie... ?

ViPHP
ViPHP | 5462 Messages

20 mai 2010, 10:52

oui puisque qu'il le crée automatiquement

Eléphant du PHP | 216 Messages

20 mai 2010, 14:40

Ben voilà ce que j'ai fait mais ça ne fonctionne pas..

	$tabGroupement = array();

	while($dataa = mysql_fetch_assoc($reqa)){    
		$tabGroupement[$dataa['id_adh']][] = $dataa;}
	
	
	foreach ($tabGroupement as $dataa['id_adh'] => $liste_nom) {
	// requête pour déterminer la localité de l'adhérent
		
	echo '<div class="liste01">';

	echo '<div class="rectxx marginb10">';
	         foreach ($liste_nom as $dataa['continent']) {
		     echo $dataa['continent'].' / ';}
			 foreach ($liste_nom as $dataa['pays']) {
			 echo $dataa['pays'].' / ';}
			 foreach ($liste_nom as $dataa['ville']) {
			 echo $dataa['ville'];}

	echo '</div>';

echo '<div class="liste01_01">';

j'ai des array de partout qui s'affiche...

En plus comme le contient, le pays et la ville sont sur la même ligne dans la base données, il faudrait que je les affiche à la suite :

$contient $pays $ville

dans ce que j'ai fait (même si ça ne focntionne pas pour l'instant..)

j'ai l''impression que le résultat va me donner :

$contient
$continent
$contient

$pays
$pays
$pays

$ville
$ville
$ville


Heu là j'ai un peu de mail..

Merci pour votre aide.

ViPHP
ViPHP | 5462 Messages

20 mai 2010, 14:48

pas comme ca que ca fonction le foreach
fait un print_r($dataa) pour voir comment la parcourir

apres c'est foreach($tabGroupement as $key => $value)

et tu accèdes au tableau via $value et non via $dataa

Eléphant du PHP | 216 Messages

20 mai 2010, 16:20

voilà le résultat de

	$tabGroupement = array();
	
	while($dataa = mysql_fetch_assoc($reqa)){    
    $tabGroupement[$dataa['id_adh']][] = $dataa;
	}

	 echo '<pre>';
print_r($tabGroupement);
echo '</pre>';



Résultat :

Code : Tout sélectionner

Array ( [4] => Array ( [0] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Afrique [pays] => Senegal [ville] => Vendée [date_deb] => 2010-05-07 [date_fin] => 2010-05-29 [autre] => [up_nom] => 1gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [1] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Asie [pays] => Chine [ville] => Vendée [date_deb] => 2009-05-31 [date_fin] => 2009-08-30 [autre] => OK [up_nom] => 1gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [2] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Amerique du nord [pays] => Floride [ville] => Vendée [date_deb] => 2010-05-22 [date_fin] => 2010-05-31 [autre] => OK [up_nom] => 1gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [3] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Europe [pays] => France [ville] => Vendée [date_deb] => 2010-04-22 [date_fin] => 2010-04-30 [autre] => OK [up_nom] => 1gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [4] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Afrique [pays] => Senegal [ville] => Vendée [date_deb] => 2010-05-07 [date_fin] => 2010-05-29 [autre] => [up_nom] => 1gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [5] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Asie [pays] => Chine [ville] => Vendée [date_deb] => 2009-05-31 [date_fin] => 2009-08-30 [autre] => OK [up_nom] => 1gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [6] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Amerique du nord [pays] => Floride [ville] => Vendée [date_deb] => 2010-05-22 [date_fin] => 2010-05-31 [autre] => OK [up_nom] => 1gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [7] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Europe [pays] => France [ville] => Vendée [date_deb] => 2010-04-22 [date_fin] => 2010-04-30 [autre] => OK [up_nom] => 1gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [8] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Afrique [pays] => Senegal [ville] => Vendée [date_deb] => 2010-05-07 [date_fin] => 2010-05-29 [autre] => [up_nom] => 1gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [9] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Asie [pays] => Chine [ville] => Vendée [date_deb] => 2009-05-31 [date_fin] => 2009-08-30 [autre] => OK [up_nom] => 1gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [10] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Amerique du nord [pays] => Floride [ville] => Vendée [date_deb] => 2010-05-22 [date_fin] => 2010-05-31 [autre] => OK [up_nom] => 1gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [11] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Europe [pays] => France [ville] => Vendée [date_deb] => 2010-04-22 [date_fin] => 2010-04-30 [autre] => OK [up_nom] => 1gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [12] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Afrique [pays] => Senegal [ville] => Vendée [date_deb] => 2010-05-07 [date_fin] => 2010-05-29 [autre] => [up_nom] => 1gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [13] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Asie [pays] => Chine [ville] => Vendée [date_deb] => 2009-05-31 [date_fin] => 2009-08-30 [autre] => OK [up_nom] => 1gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [14] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Amerique du nord [pays] => Floride [ville] => Vendée [date_deb] => 2010-05-22 [date_fin] => 2010-05-31 [autre] => OK [up_nom] => 1gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [15] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Europe [pays] => France [ville] => Vendée [date_deb] => 2010-04-22 [date_fin] => 2010-04-30 [autre] => OK [up_nom] => 1gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [16] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Afrique [pays] => Senegal [ville] => Vendée [date_deb] => 2010-05-07 [date_fin] => 2010-05-29 [autre] => [up_nom] => 3gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [17] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Asie [pays] => Chine [ville] => Vendée [date_deb] => 2009-05-31 [date_fin] => 2009-08-30 [autre] => OK [up_nom] => 3gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [18] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Amerique du nord [pays] => Floride [ville] => Vendée [date_deb] => 2010-05-22 [date_fin] => 2010-05-31 [autre] => OK [up_nom] => 3gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [19] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Europe [pays] => France [ville] => Vendée [date_deb] => 2010-04-22 [date_fin] => 2010-04-30 [autre] => OK [up_nom] => 3gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) ) )

ViPHP
ViPHP | 5462 Messages

20 mai 2010, 16:23

bizarre le rendu 8-|

si tu fais juste ca dans la boucle
$tabGroupement[] = $dataa;
ca te donne quoi ?

Eléphant du PHP | 216 Messages

20 mai 2010, 16:54

Ben au fait je ne vais ce que tu trouve bizarre dans le rendu,;

voici le résultat de

	$tabGroupement = array();
	while($dataa = mysql_fetch_assoc($reqa)){    
    $tabGroupement[] = $dataa;
	}
	 echo '<pre>';
print_r($tabGroupement);
echo '</pre>';


Code : Tout sélectionner

Array ( [0] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Afrique [pays] => Senegal [ville] => Vendée [date_deb] => 2010-05-07 [date_fin] => 2010-05-29 [autre] => [up_nom] => 1gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [1] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Asie [pays] => Chine [ville] => Vendée [date_deb] => 2009-05-31 [date_fin] => 2009-08-30 [autre] => OK [up_nom] => 1gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [2] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Amerique du nord [pays] => Floride [ville] => Vendée [date_deb] => 2010-05-22 [date_fin] => 2010-05-31 [autre] => OK [up_nom] => 1gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [3] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Europe [pays] => France [ville] => Vendée [date_deb] => 2010-04-22 [date_fin] => 2010-04-30 [autre] => OK [up_nom] => 1gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [4] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Afrique [pays] => Senegal [ville] => Vendée [date_deb] => 2010-05-07 [date_fin] => 2010-05-29 [autre] => [up_nom] => 1gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [5] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Asie [pays] => Chine [ville] => Vendée [date_deb] => 2009-05-31 [date_fin] => 2009-08-30 [autre] => OK [up_nom] => 1gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [6] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Amerique du nord [pays] => Floride [ville] => Vendée [date_deb] => 2010-05-22 [date_fin] => 2010-05-31 [autre] => OK [up_nom] => 1gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [7] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Europe [pays] => France [ville] => Vendée [date_deb] => 2010-04-22 [date_fin] => 2010-04-30 [autre] => OK [up_nom] => 1gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [8] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Afrique [pays] => Senegal [ville] => Vendée [date_deb] => 2010-05-07 [date_fin] => 2010-05-29 [autre] => [up_nom] => 1gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [9] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Asie [pays] => Chine [ville] => Vendée [date_deb] => 2009-05-31 [date_fin] => 2009-08-30 [autre] => OK [up_nom] => 1gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [10] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Amerique du nord [pays] => Floride [ville] => Vendée [date_deb] => 2010-05-22 [date_fin] => 2010-05-31 [autre] => OK [up_nom] => 1gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [11] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Europe [pays] => France [ville] => Vendée [date_deb] => 2010-04-22 [date_fin] => 2010-04-30 [autre] => OK [up_nom] => 1gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [12] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Afrique [pays] => Senegal [ville] => Vendée [date_deb] => 2010-05-07 [date_fin] => 2010-05-29 [autre] => [up_nom] => 1gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [13] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Asie [pays] => Chine [ville] => Vendée [date_deb] => 2009-05-31 [date_fin] => 2009-08-30 [autre] => OK [up_nom] => 1gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [14] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Amerique du nord [pays] => Floride [ville] => Vendée [date_deb] => 2010-05-22 [date_fin] => 2010-05-31 [autre] => OK [up_nom] => 1gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [15] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Europe [pays] => France [ville] => Vendée [date_deb] => 2010-04-22 [date_fin] => 2010-04-30 [autre] => OK [up_nom] => 1gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [16] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Afrique [pays] => Senegal [ville] => Vendée [date_deb] => 2010-05-07 [date_fin] => 2010-05-29 [autre] => [up_nom] => 3gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [17] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Asie [pays] => Chine [ville] => Vendée [date_deb] => 2009-05-31 [date_fin] => 2009-08-30 [autre] => OK [up_nom] => 3gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [18] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Amerique du nord [pays] => Floride [ville] => Vendée [date_deb] => 2010-05-22 [date_fin] => 2010-05-31 [autre] => OK [up_nom] => 3gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) [19] => Array ( [id_adh] => 4 [id_vil] => 24 [id_log] => 4 [description] => Près de la gare et de la mer. [type] => 1 [continent] => Europe [pays] => France [ville] => Vendée [date_deb] => 2010-04-22 [date_fin] => 2010-04-30 [autre] => OK [up_nom] => 3gd.jpeg [id_pay] => 67 [id_con] => 7 [pays_fr] => France [cont_fr] => Europe ) )

ViPHP
ViPHP | 5462 Messages

20 mai 2010, 17:04

fais ta mise en page avec ca et un foreach :wink: (par contre pas besio nde refaire des foreach a chaque fois)

Eléphant du PHP | 216 Messages

20 mai 2010, 17:34

ben oui mais je voulais un coup de main....

ViPHP
ViPHP | 5462 Messages

20 mai 2010, 17:37

tu le veux comment ton affichage ?

Eléphant du PHP | 216 Messages

20 mai 2010, 20:32

Ben au fait je veux pour un adhérent donné :

son identifiant(id_adh)

sa localité (cont_fr, pays_fr et ville)

toutes les photos le concernant (up_nom)

toutes les destinations le concernant (continent, pays, date_deb, date_fin)

merci d'avance pour ton aide.