Code : Tout sélectionner
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("maBDD");
$reponse = mysql_query("SELECT * FROM maTable ORDER BY date");
while ($donnee = mysql_fetch_array($reponse) )
{
?>
<?php echo $donnee['date'];?>
<?php
}
mysql_close();
?>
// localisation pour utilisation des fonctions strftime() et strptime()
setlocale (LC_TIME, 'fr_FR','fra');
// transformation d'une date "écrite" en date pour mysql suivant la configuration locale
// Attention la fonction strptime ne fonctionne pas sous windows
$date = 'vendredi 30 janvier 2009';
$date_tab = strptime($date, '%A %d %B %Y');
$date_for_sql[] = $date_tab['tm_year'] + 1900;
$date_for_sql[] = $date_tab['tm_mon'] + 1;
$date_for_sql[] = $date_tab['tm_mday'];
$date_sql = vsprintf("%04d-%02d-%02d", $date_for_sql);
echo 'date_sql = '.$date_sql.'<br />';
// affiche : date_sql = 2009-01-30
// Transforme une date sql en date écrite selon la configuration locale
$date = strtotime($date_sql);
$date_format = strftime("%A %d %B %Y",$date);
echo 'date = '.$date_format.'<br />';
// affiche : date = vendredi 30 janvier 2009
La première transformation fonctionne pour les années >= 1900 et la seconde pour >= 1970
mysql_connect("localhost", "root", "");
//n'hesite pas à utiliser mysqli plutôt que mysql, c'est plus performant : seulement mysqli est dispo à partir de PHP 5
mysql_select_db("maBDD");
$reponse = mysql_query("SELECT * FROM maTable ORDER BY date");
// select * c'est pas bien :)
// n'appelle pas tes champs date, mot réservé, source de bazar, préfère date_inscr ou date_insertion ou je ne sais quelle autre description
$reponse = mysql_query("SELECT DATE_FORMAT('date', '%d %M %Y') FROM maTable ORDER BY maDate");
// attention tu vas l'avoir en anglais
while ($donnee = mysql_fetch_array($reponse) )
{
$maDate = $donnee['date'];
}
mysql_close();
Exemple
Code : Tout sélectionner
mysql> SELECT DATE_FORMAT('2009-10-04 22:23:00', '%W %M %Y');
-> 'Sunday October 2009'
Eviter le " SELECT * " :
Précisez le nom des champs que vous souhaitez récupérer pour éviter les risques d'erreur (lorsqu'un même nom se trouve dans plusieurs table), avoir des requêtes plus optimisées et un code php facilement maintenable.
Lister les champs en détail permet d'une part de ne récupérer que ce qui est nécessaire (inutile de ramener 12 champs mediumtext de 500Ko quand tout ce qui nous interesse c'est un id et un titre). De plus, le nombre de colonnes et l'ordre des champs pouvant avoir un impact sur le traitement qui va suivre (si l'on utilise mysql_fetch_row() par exemple), il est préférable de pouvoir les maîtriser.
Cela permet aussi de connaître les noms des colonnes retournés par la requête, et donc le noms des index utilisables.
Do's and don't : les bonnes pratiques en SQL[/url]
Bien sûr elles sont indépendantes.Merci pour ta réponse.
Cependant, au risque de paraître stupide, j'ai du mal à comprendre ce code et la façon de l'intégrer de manière à ce que chaque date appelée de mysql soit formatée correctement.
Si j'en crois ta réponse il y a deux transformations, mais je ne sais pas si elles sont successives ou indépendantes. Pourrais-tu m'apporter quelques précisions ?
Merci d'avance !
Dans le cas ou tous les champs d'une table sont "appelés", que préférer?Eviter le " SELECT * " :
Précisez le nom des champs que vous souhaitez récupérer pour éviter les risques d'erreur (lorsqu'un même nom se trouve dans plusieurs table), avoir des requêtes plus optimisées et un code php facilement maintenable.
Dans l'absolu lister tous les champs est un peu plus performant mais il est évident que dans ce cas la différence sera beaucoup moins significative et que pour des raisons pratiques on puisse préférer un select *Petite question au sujet deDans le cas ou tous les champs d'une table sont "appelés", que préférer?Eviter le " SELECT * " :
Précisez le nom des champs que vous souhaitez récupérer pour éviter les risques d'erreur (lorsqu'un même nom se trouve dans plusieurs table), avoir des requêtes plus optimisées et un code php facilement maintenable.
un select (et lister tous les champs) ou un select * ?