Boucle while, question d'affichage

Résolu
David987 Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   -  
David987 Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   -
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

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
David987 Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
David987 Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   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
David987 Messages postés 120 Date d'inscription   Statut Membre Dernière intervention   1
 
Nickel, j'ai compris la décrémentation merci à toi ça fonctionne nickel comme je le souhaite.
0