8768 sujets

Développement web côté serveur, CMS

Pages :
Bonjour,

j'ai un problème pour trier une liste par date voici la requête :

$sql ="SELECT IDInter, IDTicket, DATE_FORMAT(DateInter, '%d-%m-%Y') AS DateInters, Nom FROM inters, utilisateurcapecom WHERE 
            inters.IDCapecom = utilisateurcapecom.IDCapecom ORDER BY  DateInters DESC";


Le résultat n'est pas satisfaisant, lorsque j'utilise le DESC ou ASC, ma date reste trié uniquement par jour, la fonction ascendant ou descendant ne fonctionne pas ! Où est mon erreur????

Merci d'avance
C'est à cause du date_FORMAT ^^ il trie gentiment par ordre numérique. Et donc le 12-04 passera forcément devant le 21-01.
La solution serait (au choix) :
- de trier sur DateInter si c'est une date américaines (année-mois-jour)
- de créer un nouveau champs formater en année-mois-jour et de trier sur celui-là, genre :

SELECT IDInter, IDTicket, DATE_FORMAT(DateInter, '%d-%m-%Y') AS DateInters, DATE_FORMAT(DateInter, '%Y-%m-%d') as DateTri, Nom FROM inters, utilisateurcapecom WHERE 
            inters.IDCapecom = utilisateurcapecom.IDCapecom ORDER BY  DateTri DESC
Moi j'affiche une date "fr" je veux trier cette date, en faisant la requête que tu m'as indiqué, mon tri ce fait bien mais sur le format "en", je pense qu'il doit y avoir une solution pour trier une date "fr"
Bonjour,
tu devrais faire le tri sur le champs DateInter, et non sur le formatage de ce champs.

ORDER BY DateInter DESC

"je pense qu'il doit y avoir une solution pour trier une date "fr"" -> Que la date soit "fr" ou "en" importe peu, tu tries de la date la plus ancienne à la plus récente ou le contraire.
Modifié par loicbcn (14 Feb 2014 - 09:36)
format date, dans ma requête je fais un select de cette date, je retrouve un résulta date"en" je fais un :
$date = $row['DateInter'];
          echo date("d/m/Y", strtotime($date));


Pour afficher ma date en "fr"
Alors je viens de voir que tu insert un datetri dans ta table chose que je n'ai pas, je reprend une base déjà créé donc je ne peux pas toucher la structure de la table.

Je dois trier uniquement avec ma DateInter !!!

J'espère que c'est faisable
Je ne suis pas sûr que l'on se comprenne bien ...
J'ai juste posté un exemple qui montre que faire un tri sur un champs date fonctionne.

Je trie le champs date, les dates sont triées correctement, et donc les dates formatées en dates françaises le sont aussi.

Si ton champs "DateInter" est au format date, ça devrait fonctionner de la même manière.
Oui autant pour moi, j'ai pas fais attention à ta requête, j'ai testé ma requête sur mysql, elle fonctionne parfaitement, mais dans mon tableau, je n'ai pas le tri ??? comment c'est possible?
voici le code
h2>Gestion des Interventions</h2>
    <div id="table">	
    	<table class="filtres" id="table-systeme">            
            <thead id="systh"><!-- En-tête du tableau -->
            	<tr>
                    <th id="th22">Date inter</th>
                	<th id="th20">N°Inter</th>
                    <th id="th21">N°Ticket</th>
                    <th id="th23">Technicien</th>
                    <th id="th25">Détail</th>
                </tr>
            </thead>
            <tbody class="tbody"><?php
    		$sql ="SELECT IDInter, IDTicket, DateInter, DATE_FORMAT(DateInter, '%d-%m-%Y') as DateTri, Nom FROM inters, utilisateurcapecom WHERE 
            inters.IDCapecom = utilisateurcapecom.IDCapecom ORDER BY  DateInter DESC";
    		$res = $cnx->query($sql);
    	    while ($row = $res->fetch(PDO::FETCH_ASSOC))
    		{?>
     			<tr>
                    <td><?php
                    $date = $row['DateTri'];
                    echo $date;
                    ?></td>
                	<td>
                        <?php echo $row['IDInter']; ?>
                    </td>
                    <td>
                        <?php echo $row['IDTicket']; ?>
                    </td>
                    
                    <td>
                        <?php echo $row['Nom']; ?>
                    </td>
                    <td class="tdcenter">
                    	<?php echo("<a href=\"detail.php?IDInter=".$row['IDInter']."\"><img src=\"../../images/note.gif\" alt=\"Modifier la fiche\"/></a>");?>
                    </td> 
                </tr>
             <?php }?>       
            </tbody>	
        </table>
        <div id="addsys">
        <h3>Ouvrir une intervention</h3>
        <a href="Addinter.php" title="Ouvrir une intervention"><img src="../../images/note_new.gif"/></a>
    </div>
    </div>
    
</div>
<script type="text/javascript" src="../DataTables/media/js/jquery.js"></script> 
<script type="text/javascript" src="../DataTables/media/js/jquery.dataTables.js"></script> 
<script type="text/javascript" src="../DataTables/media/js/jquery.dataTables.min.js"></script> 
<script type="text/javascript">
    $(document).ready(function() {
    $('.filtres').dataTable();
} );

</script>
Et si tu désactives javascript ou n'appelle pas ces fichiers js ?
jquery.dataTables.js
jquery.dataTables.min.js



C'est peut-être ce plugin qui te retrie ta table ?
Modifié par loicbcn (30 Apr 2014 - 16:30)
Pages :