primaire, j'ai une table qui est est triée 1er par Rappel Date de puis IDForward Retour enregistrements dans MySQL avec les mêmes données dans le
Table On dirait:
ID | remind_date
1 2011-01-23
2 2010-02-21
4 2011-04-04
5 2011-04-04
6 2009-05-04
J'utilise un front PHP fin d'aller de l'avant et revenir les dossiers. Je veux avoir des boutons avant et arrière, mais je rencontre un problème avec les 2 dates de rappel qui sont les mêmes.
Juste pour noter les numéros d'identification ne sont pas en ordre, ils sont ici, mais dans la base de données réelle, ils sont mélangés lors du tri par reminder_date
L'instruction select j'utilise est: (iid $ est l'enregistrement en cours i suis sur)
SELECT id FROM myDB.reminders where remind_date > (SELECT remind_date FROM myDB.reminders where id=$iid) order by remind_date ASC LIMIT 1
Alors, que se passe quand je reçois les dates qui sont les mêmes ses skips plus d'un parce que sa demande de remind_date>.
Si j'utilise remind_date> =, il renvoie l'enregistrement en cours. Ma solution était alors d'utiliser la limite 2 et de vérifier via PHP si le 1er enregistrement = mon identifiant actuel, s'il utilisait le suivant. mais il y a 3 dates identiques ou 4 etc.
J'ai aussi pensé à utiliser le champ ID mais comme ils sont hors service je ne peux pas ajouter un ID> $ iid.
Des idées? ça marche super sauf 2 dates qui sont les mêmes.
J'ai un ensemble de données comme ceci: [45 | 2011-01-14] [23 | 2011-01-22] [48 | 2011-01-23] [25 | 2011-01-23] [63 | 2011-02-19] Il va 45,23,25 .. saute plus de 48. D'autres idées ?? – Phil
@Phil: Je l'ai testé sur les données de test que vous avez fournies dans votre commentaire avec $ iid = 25 et ça marche bien, en retournant l'enregistrement avec id = 48. Essayez d'exécuter le code de test fourni dans ma réponse mise à jour. Vous pouvez l'exécuter dans MySQL Query Browser pour voir que cela fonctionne pour vous-même. Je pense que votre problème doit se trouver ailleurs dans votre code. –
Mark, Vous avez raison! ça marche. Merci beaucoup! tu as sauvé beaucoup de cheveux qui resteront maintenant sur ma tête;) – Phil