Extraire nombre dans chaîne sql php

Fermé
2b-webdesign - 15 sept. 2010 à 15:08
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 - 15 sept. 2010 à 17:05
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 jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
15 sept. 2010 à 16:19
RegExp :
/ ([0-9]+) /

Mais n'aurais-ce pas été plus facile d'utiliser un champ de type DATE ?
0
2b-webdesign
15 sept. 2010 à 16:42
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 jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
15 sept. 2010 à 17:05
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