Ordre inverse en php
Janette
-
Leviathan49 Messages postés 257 Date d'inscription Statut Membre Dernière intervention -
Leviathan49 Messages postés 257 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'aimerais lorsque j'affiche un tableau, pouvoir classer dans l'ordre alphabétique à la fois croissant et décroissant. Seulement, avec mon code, seul l'ordre croissant fonctionne. Je pense qu'il s'agit d'un petit paramètre a régler, mais je ne trouve pas.
Merci à quiconque qui pourrait m'aider.
Mon code :
<?php
$table_name = 'eds_actif_entier';
//Tri sur colonnes
$tri_autorises = array ( 'id', 'numTicket', 'prioriteTraitement', 'idUn', 'refClient', 'nature', 'actionEnCours', 'dateDebut', 'engagements', ' dateEchGtr', 'etat', 'idDeux', 'edsActif', 'edsPilote', 'idTrois', 'TechRespEdsPilote');
$order_by = in_array ($_GET['order'], $tri_autorises) ? $_GET['order'] : 'id';
//Sens du tri
$order_dir = isset ($_GET['inverse']) ? 'DESC' : 'ASC' ;
//Préparation de la requête
$req=mysql_query("SELECT * FROM {$table_name} ORDER BY {$order_by} {$order_dir}") or die("impossible d'executer la requête");
//Notre fonction qui affiche les liens
function sort_link($text, $order=false)
{
global $order_by, $order_dir;
if(!$order)
$order = $text;
$link = '<a href="?order='.$order. '&traitement=consult';
if ($order_by == $order && $order_dir=='ASC')
$link= '&inverse=TRUE';
$link.='"';
if ($order_by == $order && $order_dir=='ASC')
$link.= 'class="order_asc"';
elseif ($order_by == $order && $order_dir=='DESC')
$link = 'class="order_desc"';
$link.='>'.$text.'</a>';
return $link;
}
//Affichage
?>
<style type="text/css">
a.order_asc,
a.order_desc:hover {
padding-right:15px;
backgroung:transparent url(s_asc.png) right no repeat;
}
a.order_desc,
a.order_asc:hover {
padding-right:15px;
background:transparent url(s_desc.png) right no-repeat;
}
</style>
<?php
//Nom des colonnes du tableau + lien qui servira à trier par ordre alphabétique?>
<table width="100%" align="center">
<tr>
<th align='center' class='entete'> <?php echo sort_link ('Id', 'id')?></th>
<th align='center' class='entete'> <?php echo sort_link ('Numéro ticket', 'numTicket')?></th>
<th align='center' class='entete'> <?php echo sort_link ('Priorité de traitement', 'prioriteTraitement')?></th>
<th align='center' class='entete'> <?php echo sort_link ('Identifiant n°1', 'idUn')?></th>
<th align='center' class='entete'> <?php echo sort_link ('Référence client', 'refClient')?></th>
<th align='center' class='entete'> <?php echo sort_link ('Nature', 'nature')?></th>
<th align='center' class='entete'> <?php echo sort_link ('Action en cours', 'actionEnCours')?></th>
<th align='center' class='entete'> <?php echo sort_link ('Date début', 'dateDebut')?></th>
<th align='center' class='entete'> <?php echo sort_link ('Engagements', 'engagements')?></th>
<th align='center' class='entete'> <?php echo sort_link ('Date éch GTR', 'dateEchGtr')?></th>
<th align='center' class='entete'> <?php echo sort_link ('Etat', 'etat')?></th>
<th align='center' class='entete'> <?php echo sort_link ('Identifiant n°2', 'idDeux')?></th>
<th align='center' class='entete'> <?php echo sort_link ('EDS actif', 'edsActif')?></th>
<th align='center' class='entete'> <?php echo sort_link ('EDS pilote', 'edsPilote')?></th>
<th align='center' class='entete'> <?php echo sort_link ('Identifiant n°3', 'idTrois')?></th>
<th align='center' class='entete'> <?php echo sort_link ('Technicien Resp. EDS Pilote', 'TechRespEdsPilote')?></th>
</tr>
<?php
// Boucle affichage tableau
while($row = mysql_fetch_assoc($req)) :
?>
<tr class="<?php if(($i%2) == 0) {echo "ma_couleur1";} else{ echo "ma_couleur2";}?>">
<td class="centrer"><? echo $row['id']; ?> <BR></td>
<td class="centrer"><? echo $row['numTicket']; ?> <BR></td>
<td class="centrer"><? echo $row['prioriteTraitement']; ?> <BR></td>
<td class="centrer"><? echo $row['idUn']; ?></td>
<td class="centrer"><? echo $row['refClient']; ?></td>
<td class="centrer"><? echo $row['nature']; ?></td>
<td class="centrer"><? echo $row['actionEnCours']; ?></td>
<td class="centrer"><? echo $row['dateDebut']; ?></td>
<td class="centrer"><? echo $row['engagements']; ?></td>
<td class="centrer"><? echo $row['dateEchGtr']; ?></td>
<td class="centrer"><? echo $row['etat']; ?></td>
<td class="centrer"><? echo $row['idDeux']; ?></td>
<td class="centrer"><? echo $row['edsActif']; ?></td>
<td class="centrer"><? echo $row['edsPilote']; ?></td>
<td class="centrer"><? echo $row['idTrois']; ?></td>
<td class="centrer"><? echo $row['techRespEdsPilote']; ?></td>
</tr>
<?php endwhile?>
j'aimerais lorsque j'affiche un tableau, pouvoir classer dans l'ordre alphabétique à la fois croissant et décroissant. Seulement, avec mon code, seul l'ordre croissant fonctionne. Je pense qu'il s'agit d'un petit paramètre a régler, mais je ne trouve pas.
Merci à quiconque qui pourrait m'aider.
Mon code :
<?php
$table_name = 'eds_actif_entier';
//Tri sur colonnes
$tri_autorises = array ( 'id', 'numTicket', 'prioriteTraitement', 'idUn', 'refClient', 'nature', 'actionEnCours', 'dateDebut', 'engagements', ' dateEchGtr', 'etat', 'idDeux', 'edsActif', 'edsPilote', 'idTrois', 'TechRespEdsPilote');
$order_by = in_array ($_GET['order'], $tri_autorises) ? $_GET['order'] : 'id';
//Sens du tri
$order_dir = isset ($_GET['inverse']) ? 'DESC' : 'ASC' ;
//Préparation de la requête
$req=mysql_query("SELECT * FROM {$table_name} ORDER BY {$order_by} {$order_dir}") or die("impossible d'executer la requête");
//Notre fonction qui affiche les liens
function sort_link($text, $order=false)
{
global $order_by, $order_dir;
if(!$order)
$order = $text;
$link = '<a href="?order='.$order. '&traitement=consult';
if ($order_by == $order && $order_dir=='ASC')
$link= '&inverse=TRUE';
$link.='"';
if ($order_by == $order && $order_dir=='ASC')
$link.= 'class="order_asc"';
elseif ($order_by == $order && $order_dir=='DESC')
$link = 'class="order_desc"';
$link.='>'.$text.'</a>';
return $link;
}
//Affichage
?>
<style type="text/css">
a.order_asc,
a.order_desc:hover {
padding-right:15px;
backgroung:transparent url(s_asc.png) right no repeat;
}
a.order_desc,
a.order_asc:hover {
padding-right:15px;
background:transparent url(s_desc.png) right no-repeat;
}
</style>
<?php
//Nom des colonnes du tableau + lien qui servira à trier par ordre alphabétique?>
<table width="100%" align="center">
<tr>
<th align='center' class='entete'> <?php echo sort_link ('Id', 'id')?></th>
<th align='center' class='entete'> <?php echo sort_link ('Numéro ticket', 'numTicket')?></th>
<th align='center' class='entete'> <?php echo sort_link ('Priorité de traitement', 'prioriteTraitement')?></th>
<th align='center' class='entete'> <?php echo sort_link ('Identifiant n°1', 'idUn')?></th>
<th align='center' class='entete'> <?php echo sort_link ('Référence client', 'refClient')?></th>
<th align='center' class='entete'> <?php echo sort_link ('Nature', 'nature')?></th>
<th align='center' class='entete'> <?php echo sort_link ('Action en cours', 'actionEnCours')?></th>
<th align='center' class='entete'> <?php echo sort_link ('Date début', 'dateDebut')?></th>
<th align='center' class='entete'> <?php echo sort_link ('Engagements', 'engagements')?></th>
<th align='center' class='entete'> <?php echo sort_link ('Date éch GTR', 'dateEchGtr')?></th>
<th align='center' class='entete'> <?php echo sort_link ('Etat', 'etat')?></th>
<th align='center' class='entete'> <?php echo sort_link ('Identifiant n°2', 'idDeux')?></th>
<th align='center' class='entete'> <?php echo sort_link ('EDS actif', 'edsActif')?></th>
<th align='center' class='entete'> <?php echo sort_link ('EDS pilote', 'edsPilote')?></th>
<th align='center' class='entete'> <?php echo sort_link ('Identifiant n°3', 'idTrois')?></th>
<th align='center' class='entete'> <?php echo sort_link ('Technicien Resp. EDS Pilote', 'TechRespEdsPilote')?></th>
</tr>
<?php
// Boucle affichage tableau
while($row = mysql_fetch_assoc($req)) :
?>
<tr class="<?php if(($i%2) == 0) {echo "ma_couleur1";} else{ echo "ma_couleur2";}?>">
<td class="centrer"><? echo $row['id']; ?> <BR></td>
<td class="centrer"><? echo $row['numTicket']; ?> <BR></td>
<td class="centrer"><? echo $row['prioriteTraitement']; ?> <BR></td>
<td class="centrer"><? echo $row['idUn']; ?></td>
<td class="centrer"><? echo $row['refClient']; ?></td>
<td class="centrer"><? echo $row['nature']; ?></td>
<td class="centrer"><? echo $row['actionEnCours']; ?></td>
<td class="centrer"><? echo $row['dateDebut']; ?></td>
<td class="centrer"><? echo $row['engagements']; ?></td>
<td class="centrer"><? echo $row['dateEchGtr']; ?></td>
<td class="centrer"><? echo $row['etat']; ?></td>
<td class="centrer"><? echo $row['idDeux']; ?></td>
<td class="centrer"><? echo $row['edsActif']; ?></td>
<td class="centrer"><? echo $row['edsPilote']; ?></td>
<td class="centrer"><? echo $row['idTrois']; ?></td>
<td class="centrer"><? echo $row['techRespEdsPilote']; ?></td>
</tr>
<?php endwhile?>
A voir également:
- Ordre inverse en php
- Excel trier par ordre croissant chiffre - Guide
- Annuaire inversé - Guide
- Ecran inversé - Guide
- Annuaire inversé suisse ✓ - Forum Mail
- Annuaire inverse espagne - Forum Mobile
4 réponses
et comme ça:
/Préparation de la requête $req=mysql_query("SELECT * FROM ".$table_name." ORDER BY ".$order_by." ". $order_dir." ") or die("impossible d'executer la requête: ".$req."<br />".mysql_error());
@ Leviathan59 : la vrai requête est "SELECT * FROM eds_actif_entier" tout simplement
et si je fais un "echo" cela entrîne une erreur.
@Alain_42 : j'ai essayé ta proposition, ca ne fonctionne pas =/
et si je fais un "echo" cela entrîne une erreur.
@Alain_42 : j'ai essayé ta proposition, ca ne fonctionne pas =/
Ca n'a peut-être rien à voir mais...
if ($order_by == $order && $order_dir=='ASC') $link .= '&inverse=TRUE'; $link.='"'; if ($order_by == $order && $order_dir=='ASC') $link.= 'class="order_asc"'; elseif ($order_by == $order && $order_dir=='DESC') $link .= 'class="order_desc"'; $link.='>'.$text.'</a>';Il ne manquerait pas des points devant les = des lignes en gras ?
Mon code me permet d'afficher la requête :
<code>
$req=mysql_query("SELECT * FROM {$table_name} ORDER BY {$order_by} {$order_dir}") or die("impossible d'executer la requête");
</code