Boucle while, question d'affichage

Résolu
David987 Messages postés 145 Statut Membre -  
David987 Messages postés 145 Statut Membre -
Bonjour à tous,

Je viens vers vous pour une petite interrogation qui est la suivante :

Je m'explique, j'ai une boucle while, qui fonctionne très bien, j'ai aucun bug ni rien, mais j'aimerais savoir s'il est possible que l'incrémentation d'une variable peut être affiché dans l'ordre inversé ?

Par exemple ma variable $incrementation = 1 (initialisation).

A chaque traitement de la boucle, la variable prend 1 donc ça donne :

1
2
3
4
...etc

Ma question est, est-ce possible de l'afficher comme telle :

...etc
4
3
2
1
et si oui, comment ça se passe dans une boucle while ?

Merci par avance pour votre réponse et aide.

David.

Configuration: Windows / Chrome 96.0.4664.93

4 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    Bonjour
    Ta variable incrémenter fais partie de la condition de ton while où elle est juste incrémentee dans la boucle ?
    Dans l'idéal, il faudrait nous montrer ton code
    0
  2. David987 Messages postés 145 Statut Membre 1
     
    Ma variable ne fait pas partie de la boucle voici mon code en dessous

    $nbr_vadrouille = 1;
    	$select_info_depense = $bdd->query("SELECT *, DATE_FORMAT(date_objet, '%d/%m/%Y') AS dateFR, DATE_FORMAT(date_objet, '%H:%i:%s') AS heureFR FROM vadrouille WHERE id_membre ='".$id_joueur."' ORDER BY ai DESC LIMIT $limit_start, $pagination");
    while($operation = $select_info_depense->fetch())
    {
    	if($operation['id_objet'] == 0)
    	{
    		$nom_objet = 'Ton pokadechi n\'est pas encore revenu';
    	}
    	else
    	{
    		if($operation['id_objet'] == 1)
    		{
    		$nom_objet = 'PokeBall';
    		}
    		elseif($operation['id_objet'] == 2)
    		{
    		$nom_objet = 'SuperBall';
    		}
    		elseif($operation['id_objet'] == 3)
    		{
    		$nom_objet = 'HyperBall';
    		}
    		elseif($operation['id_objet'] == 4)
    		{
    		$nom_objet = 'MasterBall';
    		}
    		elseif($operation['id_objet'] == 12)
    		{
    		$nom_objet = 'SuperBonbon';
    		}
    		elseif($operation['id_objet'] == 35)
    		{
    		$nom_objet = 'Potion';
    		}
    		elseif($operation['id_objet'] == 5000)
    		{
    		$nom_objet = '5000 P$';
    		}
    		elseif($operation['id_objet'] == 10)
    		{
    		$nom_objet = '10 Pokelite';
    		}
    		elseif($operation['id_objet'] == 1111)
    		{
    		$nom_objet = 'Alakazamite';
    		}
    		elseif($operation['id_objet'] == 531)
    		{
    		$nom_objet = 'Nanmeouie';
    		}
    		else
    		{
    		}
    	}
    	
    ?>
    	<tr>
    		<td><?php echo $nbr_vadrouille++; ?></td>
    		<td>
    			<img src="../../images/pokemon/<?php echo $operation['id_pokadechi'];?>.png"</img>
    		</td>
    		<td>
    			<?php echo $nom_objet;?>
    		</td>
    		<td>
    			<?php echo ''.$operation['dateFR'].' à '.$operation['heureFR'].'';?>
    		</td>
    	</tr>
    	<?php 
    	} 
    0
  3. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    Alors,

    Déjà, ton code pourrait être largement simplifié comme ceci :
    
    $nbr_vadrouille = 1;
    
    $obj = [
     '0' => 'Ton pokadechi n\'est pas encore revenu'
     ,'1' =>  'PokeBall'
     ,'2' =>  'SuperBall'
     ,'3' =>  'HyperBall'
     ,'4' =>  'MasterBall'
     ,'10' =>  '10 Pokelite'
     ,'12' =>  'SuperBonbon'
     ,'35' =>  'Potion'
     ,'531' =>  'Nanmeouie'
     ,'1111' =>  'Alakazamite'
     ,'5000' =>  '5000 P$'
     
    
    ];
    
    $select_info_depense = $bdd->query("SELECT *, DATE_FORMAT(date_objet, '%d/%m/%Y') AS dateFR, DATE_FORMAT(date_objet, '%H:%i:%s') AS heureFR FROM vadrouille WHERE id_membre ='".$id_joueur."' ORDER BY ai DESC LIMIT $limit_start, $pagination");
    while($operation = $select_info_depense->fetch())
    {
        $nom_objet = !empty($obj[$operation['id_objet']]) ? $obj[$operation['id_objet']] : '-';
    
    ?>
    	<tr>
    		<td><?php echo $nbr_vadrouille++; ?></td>
    		<td>
    			<img src="../../images/pokemon/<?php echo $operation['id_pokadechi'];?>.png"</img>
    		</td>
    		<td>
    			<?php echo $nom_objet;?>
    		</td>
    		<td>
    			<?php echo ''.$operation['dateFR'].' à '.$operation['heureFR'].'';?>
    		</td>
    	</tr>
    	<?php 
    	} 
    


    Ensuite, pour décrémenter, il suffit d'utiliser le signe - au lieu du signe +
     $nbr_vadrouille--;
    

    encore faut-il savoir à combien tu dois initialiser ta variable au départ ....

    Tu fais du mysqli ou du pdo ??

    0
  4. David987 Messages postés 145 Statut Membre 1
     
    je dev en PDO.

    Donc si je comprend bien, je dois compter le nombre d'entrée dans la table et ensuite je décrémente c'est ça ?

    Et merci pour la simplification du code il est vrai que j'aurais pu faire plus simple.
    0
    1. David987 Messages postés 145 Statut Membre 1
       
      Nickel, j'ai compris la décrémentation merci à toi ça fonctionne nickel comme je le souhaite.
      0