8791 sujets

Développement web côté serveur, CMS

Bonjour,

Dans ma table mysql, la colonne durée est au format time, soit: hh:mm:ss et j'aimerais l'afficher en format mm:ss.
J'utilise donc dans ma requête la fonction time_format mais ça ne marche pas
$query_rsCours = sprintf("SELECT TIME_FORMAT (duree, '%i/%s') FROM cours....


J'obtiens ce message:
Warning: sprintf() [function.sprintf]: Too few arguments in ..... on line 59
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 0, 25' at line 1

Une idée ?
Merci de votre aide.
En fait lorsque je teste la requête elle fonctionne très bien mais c'est l'affichage des résultats qui ne marche pas
<?php do { ?>
<?php echo $row_rsCours['duree']; ?>
<?php } while ($row_rsCours = mysql_fetch_assoc($rsCours)); ?>
Modifié par whynote (27 Oct 2010 - 12:09)
Salut,

si tu enleves ton appel a sprintf ca doit passer.
Ce qu il se passe c' est que sprintf traite ta chaine et remplace ton '%i/%s' par '/' et ta requete devient
"SELECT TIME_FORMAT (duree, '/') FROM cours
ce qui est invalide en SQL...
Je n'obtiens aucun résultat si je fais ça:


mysql_select_db($database_cours, $cours);
$query_rsCours = "SELECT time_format(cours.duree, '%i:%s') FROM cours"...


<?php do { ?>
<?php echo $row_rsCours['duree']; ?>
<?php } while ($row_rsCours = mysql_fetch_assoc($rsCours)); ?>

La requête fonctionne en test, c'est donc la syntaxe de echo qui est mauvaise...
Ok maintenant ta requête doit fonctionner mais c'est en effet le echo qui n'est pas bon. quand tu appliques une fonction SQL a un champ, il perd son nom... et devient ici en l'occurence "time_format(cours.duree, '%i:%s')", il faut donc utiliser ce libellé mais je te le déconseille, la solution propre étant de donner un alias à ton champ transformé ainsi :
"SELECT time_format(cours.duree, '%i:%s') [#red]as duree[/#] FROM cours"

comme cela MySQL te rend bien un champ avec le nom attendu (ou un autre si tu veux par exemple différencier dans ta requete le champ transformé et le champ brut Smiley smile )
merci, ça fonctionne très bien.
J'ai juste eu un problème dans la requête complète qui comprend différentes variables car il prenait le %s du time_format pour une variable. C'est résolu en utilisant %S (en majuscule).