Problème de tri pour une application
Bonsoir a tous:),
Je suis sur la fin d'un programme informatique ou je suis confronte a un probleme de tri,
Voici mon probleme dans php/my admin j'ai pres d'un millier d'heures qui ont ete inserees avec un fichier texte, mes heures sont notees en AM et PM.
Toutes ces heures correspondent a l'heure de debut d'un spectacle et sont proposees dans un menu deroulant dans un formulaire pour les futurs utilisateurs du programme(je tiens a preciser que ce menu n'est pas long une fois les doublons supprimes).
Je voudrais pouvoir trier correctement ce menu deroulant l'ennui c'est que je n'arrive pas a ecrire:"Trie moi d'abord les heures avec des AM puis les heures avec les PM et met le tout dans un menu deroulant"
Voici ma requete qui pour le moment qui ne tri que les AM par ordre croissant:
$q = "SELECT * FROM performance WHERE Start LIKE '%AM' ORDER BY Start ";
Start :etant l'heure de debut du spectacle.
Un grand merci a tous ceux qui se donnent la peine de lire ce message.
;)
Ces solutions ne marchent malheureusement pas
Je viens d'utiliser ce code mais malheureusement cela ne m'affiche plus rien dans mon menu.Auriez vous une autre idee?(et pourtant j'y est cru en voyant ce code);)
$q = "SELECT * FROM performance WHERE Start LIKE '%AM' ORDER BY Start UNION SELECT * FROM performance WHERE Start LIKE '%PM' ORDER BY Start ";
Passer en TIME ne marche pas
J'ai aussi etudie la reponse de Swoög l'ennui c'est que quand j'insere ma base de donnees(ou les heures sont en AM et PM et je voudrais les gardees)dans phpmyadmin et que je les declare en TIME il ne me fait pas la difference entre les AM et PM resultat par defaut mes PM deviennent des AM et aucune heure du coup ne depasse 12:59.
Pouvez vous m'aider a resoudre ce soucis s'il vous plait?;)
Comment se servir de TIME_FORMAT
J'ai bien reussi a convertir toutes mes heures AM et PM en systeme de 24 heures,l'ennui c'est que mes utilisateurs sont americains ils faut donc qu'ils voient les heures sur un systemes de 12 heures,je me suis documente sur la fonction TIME_FORMAT(qui existe) mais je n'arrive pas a m'en servir car je n'ai pas suffisement de connaissances en php et je dois rendre ce projet dans quelques jours et du coup n'est pas le temps d'apprendre, j'ai esseye en vain une requete :
$q = "SELECT time_format(string,%r)* FROM temps ";
mais elle ne marche pas, tout ce que je veux pouvoir faire c'est juste transformer mes heures situees dans le champ "start" de ma table temps qui sont en 24 heures en systeme americain de 12 heures.
Je remercie d'avance tout ceux qui voudraont bien repondre a ce message;)
J'ai esseaye une fois de plus mais sans succes
Je crois que le probleme est ailleurs cependant,je tiens a preciser que j'ai appris le php par experience et non par des cours ou des lecons,il m'annonce un argument non valide pour la ligne en rouge ,ce que je ne comprend pas c'est que j'arrive a faire afficher toutes mes heures si je ne met pas TIME_FORMAT(start, '%r') AS start_12, malheureusement je n'ai pas le temps de suivre des cours,ma base de donnees est tout ce qu'il y a de plus simple il n'y a qu'une table qui s'appelle "time" et un champ "Start"a l'interieur qui est definit en format TIME:
<?php
include ("mysql.php");
?>
<?
$q = "SELECT TIME_FORMAT(start, '%r') AS start_12, * FROM time ";
$r = mysql_query($q);
while ($row=mysql_fetch_array($r)){
$start = $row[Start];
print "$start</td>";
}
?>
Mon programme ne fait que cela pour le moment tout ce que je veux c'est pouvoir afficher mes heures qui sont en systeme de 24h en systeme de 12h.
Dans tout les cas merci pour le temps que vous m'avez deja consacre:P
Excuse moi mais je n'y arrive toujours pas
J'ai change $row[Start] par $row[start_12] et ca me met toujours la meme erreur voici mon code(ou je n'ai change que la partie en rouge):
<?
$q = "SELECT TIME_FORMAT(start, '%r') AS start_12, * FROM time ";
$r = mysql_query($q);
while ($row=mysql_fetch_array($r)){
$start = $row[start_12];
print "$start</td>";
}
?>
courage on y est presque:P