Liste sauf ... ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Liste sauf ... ?

par Sebe » 01 févr. 2008, 14:00

Salut,
De mémoire, date_format ne prend que deux arguments, la valeur et le format... et toi tu lui en passe 4 ;)
Non non ... j'ai trouvé ce lien ici

Après avoir essayé 'DATEDIFF' sans résultat, j'ai trouvé la bonne façon de faire
$today = date('Y-m-d');
$query = "SELECT course.id as course_id, course.course, course.date as days, course.pat_chal,  course.kilometrage, course.nbre_part, course.epreuve_id, course.published, " 
	. "\n epreuve.id, epreuve.epreuve"
	. "\n FROM #__classement_course AS course"
	. "\n INNER JOIN #__classement_epreuve AS epreuve ON epreuve.id = course.epreuve_id"
	. "\n WHERE epreuve_id ='" . $id. "' AND DATE_FORMAT(course.date,'%Y-%m-%d') < '" . $today . "'" //AND DATEDIFF('" . $today . "', 'course.date' ) > '0'	"
	. "\n ORDER BY days DESC";
Merci à tous

par Ryle » 01 févr. 2008, 13:06

De mémoire, date_format ne prend que deux arguments, la valeur et le format... et toi tu lui en passe 4 ;)

Code : Tout sélectionner

DATE_FORMAT(course.date, '%Y %m %d')

par Sebe » 01 févr. 2008, 12:01

La réponse avec le pourquoi ... un grand merci

EDIT:

Me suis planté quelque part:
$today = date('Y m d');
$query = "SELECT course.id as course_id, course.course, course.date as days, course.pat_chal,  course.kilometrage, course.nbre_part, course.epreuve_id, course.published, " 
	. "\n epreuve.id, epreuve.epreuve"
	. "\n FROM #__classement_course AS course"
	. "\n INNER JOIN #__classement_epreuve AS epreuve ON epreuve.id = course.epreuve_id"
	. "\n WHERE epreuve_id ='" . $id. "' AND DATE_FORMAT(course.date,'%Y', '%m', '%d') < '" . $today . "'"
	
	. "\n ORDER BY days DESC";
Voici le jolie message d'erreur:
DB function failed with error number 1064
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 ' '%m', '%d') < '2008 02 01' ORDER BY days DESC' at line 5 SQL=SELECT course.id as course_id, course.course, course.date as days, course.pat_chal, course.kilometrage, course.nbre_part, course.epreuve_id, course.published, epreuve.id, epreuve.epreuve FROM jos_classement_course AS course INNER JOIN jos_classement_epreuve AS epreuve ON epreuve.id = course.epreuve_id WHERE epreuve_id ='2' AND DATE_FORMAT(course.date,'%Y', '%m', '%d') < '2008 02 01' ORDER BY days DESC
Bon j'ai bien compris que c'était dans la saisie de ma date mais ... ????

par zeus » 01 févr. 2008, 11:40

Je te conseillerais la requête car tu éviteras de transporter des données inutiles et que le PHP sera surement plus lent que le SQL à trier tes résultats. ;)

Liste sauf ... ?

par Sebe » 01 févr. 2008, 11:28

Bonjour,

J'aurai une question pour vous ... !

J'aimerai lister une série d'événement passés et je voudrais savoir où il est le mieux de faire le tri et ne pas afficher les événements à venir :
- soit dans ma requête

Code : Tout sélectionner

$query = "SELECT course.id as course_id, course.course, course.date as days, course.pat_chal, course.kilometrage, course.nbre_part, course.epreuve_id, course.published, " . "\n epreuve.id, epreuve.epreuve" . "\n FROM #__classement_course AS course" . "\n INNER JOIN #__classement_epreuve AS epreuve ON epreuve.id = course.epreuve_id" . "\n WHERE epreuve_id ='" . $id. "'"// AND course.published = '1'" . "\n ORDER BY days DESC"; $database->setQuery( $query ); $courselist = $database->loadObjectList();
- soit dans mon code

Code : Tout sélectionner

<?php foreach ($courselist as $course){?> <tr> <td> <div align="center"> <?php if ($mosConfig_lang == 'french') { setlocale(LC_TIME, "fr"); $jour = strftime("%d %B %Y",strtotime($course->days)); }else{ $jour = strftime("%Y-%m-%d",strtotime($course->days)); } echo $jour; ?> </div> </td> <td> <div align="center"> <input name="course_id" id="course_id" type="hidden" value="<?php echo $course->course_id;?>" /> <?php $id = $course->course_id; if (($class_Config['link_edition'] == '1') || ($class_Config['link_edition'] == '2' && $course->published == '1')) { echo '<a href="' . $link . $id . '" title ="' . $course->epreuve .'">' . $course->course . '</a>'; } else { echo $course->course; } ?> </div> </td> <td><div align="center"><?php echo $course->pat_chal; ?></div></td> <td><div align="center"><?php echo $course->kilometrage; ?></div></td> <td><div align="center"><?php echo $course->nbre_part; ?></div></td> </tr> <?php } // Fin du foreach (); ?>
Merci pour l'éventuelle info