Extraire nombre dans chaîne sql php

2b-webdesign -  
Zep3k!GnO Messages postés 2025 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je vous expose mon souci, j'ai une table "programme", avec un champ nommé "Date", où je stocke des chaînes (VARCHAR) de type :
Mardi 2 septembre
Jeudi 14 septembre

je voudrais trier mes données sur le numéro du jour, peut être avec une expression régulière ?

A voir également:

3 réponses

Zep3k!GnO Messages postés 2025 Date d'inscription   Statut Membre Dernière intervention   200
 
RegExp :
/ ([0-9]+) /

Mais n'aurais-ce pas été plus facile d'utiliser un champ de type DATE ?
0
2b-webdesign
 
merci mais comment l'inclure dans le ORDER BY ?

Le type DATE ne convenait pas pour diverses raisons, mais j'aurais du le préférer au type varchar c'est vrai
0
Zep3k!GnO Messages postés 2025 Date d'inscription   Statut Membre Dernière intervention   200
 
La il faut passer par PhP,
je t'ai fait un petit script d'exemple à adapter et a compléter ( ne pas oublier de gérer les accents par exemple). En gros l'idée c'est d'utiliser un timestamp pour faire ton tri.
Voici donc le petit bout de code que j'ai fait vite fait :
<?php
$aInput = Array("Mardi 2 septembre 2000", "Jeudi 14 septembre 2000", "Mardi 15 Janvier 2000");

$sTranslateMonth    = Array(    "janvier"   =>  "January",
                                "septembre" =>  "September"  
                            );

echo "<pre>".print_r($aInput, true)."</pre>";

$aOuput = Array();
foreach($aInput as $sCurrentDate){
    $aDateData              = explode(' ', $sCurrentDate);
    $iTimeStamp             = strtotime($aDateData[1]." ".$sTranslateMonth[strtolower($aDateData[2])]." ".$aDateData[3]);
    $aOuput[$iTimeStamp]    = $sCurrentDate;
}
ksort($aOuput);
foreach($aOuput as $key => $sValue){
    echo "<br/>Valeur (".$key.") : ".$sValue;
}

?>

0