Substr et order by

Résolu/Fermé
t671 Messages postés 1460 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 2 décembre 2024 - 30 oct. 2012 à 18:31
t671 Messages postés 1460 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 2 décembre 2024 - 1 nov. 2012 à 11:43
Bonjour,

Je veux faire un select dans ma bd sur des dates, en sélectionnant une fourchette min et max des 4 derniers caractères qui correspondent à l'année, et trier le résultat dans l'ordre ASC pour afficher ces dates dans l'ordre ASC.
Je bute sur le tri :
$select = 'SELECT date_naissance FROM ville_bis WHERE lieu LIKE "%'.$village.'%" AND (SUBSTRING(date_naissance, -4) > "1599" AND SUBSTRING(date_naissance, -4) < "1801") ORDER BY (SUBSTRING(date_naissance, -4) > "1599" AND SUBSTRING(date_naissance, -4) < "1801") ASC'; 
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
........................
while ($row = mysql_fetch_array($result)) 
{
echo '<tr>';
echo '<td>'.$row['date_naissance'].'</td>';
....................

En faisant ainsi, mes dates ne sont pas triées.
Comment faire ?
Merci.
A voir également:

3 réponses

Bonjour,

Moi je vais partir du principe que t'as un attribut Date dans ta base et pas un simple varchar, comme ça t'aura une solution viable. Si jamais ce n'est pas le cas, je ne peux que te conseiller (très fortement) de rectifier le tir.

SELECT date_naissance 
FROM ville_bis 
WHERE lieu LIKE "%'.$village.'%" 
AND date_naissance BETWEEN '01/01/1579' AND '31/12/1854' 
ORDER BY date_naissance ASC; 
1
Utilisateur anonyme
30 oct. 2012 à 21:42
Bonjour

Déjà, tu n'aurais pas ce problème si tes champs date_naissance étaient de type date. Si le type date existe, ce n'est pas pour rien.
Ta table étant ce qu'elle est, la date est dans SUBSTRING(date_naissance, -4). Alors pourquoi faire cet ORDER bizarre au lieu de faire simplement ORDER BY SUBSTRING(date_naissance, -4) ? Une condition d'un WHERE n'a a priori aucun rapport avec un ordre de tri, ce sont deux choses complètement indépendantes.
0
t671 Messages postés 1460 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 2 décembre 2024 11
1 nov. 2012 à 11:43
Merci le père ! En effet, pourquoi chercher les compliquations .......
Si je n'ai pas ma date au format date dans ma bd, c'est qu'elle n'a pas toujours ce format. Elle peut-être écrite "avant date" ou "après date" ....... Mais se termine toujours par l'année !
Merci encore, et à +.
;o)
0