afficher un 'nouveau' pour les derniers enregistrements... [PHP] - Programmation
Marsh Posté le 14-06-2002 à 18:25:06
afficher le mot "nouveau"
par exemple comme ça:
. Cardigans (the) (39) Nouveau !
. Coolio (1)
. Corrs (the) (38)
. Craig David (11)
. Cramberries (the) (27) Nouveau !
Marsh Posté le 14-06-2002 à 18:27:56
Qu'est ce que tu entends par "nouveau",
- les n derniers enregistrements, même si ils datent de 6 mois ?
- les enregistrement vieux de maxi 1 semaine ?
- les n derniers enregistrements mais vieux d'une semaine maxi ?
Selon la réponse il y a chaque fois une manière de faire.
Marsh Posté le 14-06-2002 à 18:28:36
et c'est "nouveau" par rapport à quoi?
t'es pénible là...
Marsh Posté le 14-06-2002 à 18:35:11
les n derniers enregistrements, même si ils datent de 6 mois ?
oui
rho, desole je peux pas expliquer plus precis... je veux juste qu'au 5 derniers id, il affiche "nouveau" à cote... s'pa possible ?
Marsh Posté le 14-06-2002 à 18:36:52
ludo2604 a écrit a écrit : les n derniers enregistrements, même si ils datent de 6 mois ? oui rho, desole je peux pas expliquer plus precis... je veux juste qu'au 5 derniers id, il affiche "nouveau" à cote... s'pa possible ? |
t'as une colonne dans ta db ou tu indiques la date d'insertion du cd?
Marsh Posté le 14-06-2002 à 18:43:43
non il faut créer une autre table !?
n'y a til pas un autre moyen ?
Marsh Posté le 14-06-2002 à 18:58:34
ludo2604 a écrit a écrit : non il faut créer une autre table !? n'y a til pas un autre moyen ? |
pas une autre table, mais ajouter une colonne pour ça dans ta table avec tes cd...
sinon ben non, comment veux-tu deviner qu'il s'agit d'un nouveau cd si tu ne sais pas quand tu l'as ajouté dans ta base, ou quand il est sorti ou n'importe quelle date qui te servirait de reference pour determiner si c un "nouveau" ou pas quoi.
tu pourrais tjs te connecter a CDDB, ouais (<-- y'a une API en plus, mais j'ai comme l'impression que... ça sera pour plus tard en ce qui te concerne )
Marsh Posté le 14-06-2002 à 19:04:38
ah ok merci de ces explications...
alors,
je crée ma table "date" avec 0000-00-00 00:00:00.
et ensuite il reste à faire le bout de code c'est ça... le prob c'est que je ne sais pas trop comment le faire...
on yé presque
Marsh Posté le 14-06-2002 à 19:37:42
ludo2604 a écrit a écrit : ah ok merci de ces explications... alors, je crée ma table "date" avec 0000-00-00 00:00:00. et ensuite il reste à faire le bout de code c'est ça... le prob c'est que je ne sais pas trop comment le faire... on yé presque |
non, tu ne crées pas de table, tu ajoutes une colonne à ta table de cd's...
par exemple
Code :
|
ensuite qd tu affiche ta liste de cd tu compare la data de cette colonne avec la date du jour... par exemple
Marsh Posté le 14-06-2002 à 19:56:51
oui oui champs je sais scuse...
oky merci bien je vais voir ça ^^
Marsh Posté le 14-06-2002 à 21:15:56
thx
donc voila j'ai bien crée le champ dans ma table de cette maniere:
`date` datetime NOT NULL default '0000-00-00 00:00:00',
là, il me reste à faire le code...
on m'a donné cet exemple:
while ($i=mysql_fetch_array($tarequete)) {
// code
$date=now();
$duree = $i[duree]+ [G]???[/g] ;
if ($date<$duree)
{
echo "Nouveau";
}
// code
le probleme, c'est que je ne sais pas quoi mettre apres le + ??
Marsh Posté le 14-06-2002 à 21:22:18
ludo2604 a écrit a écrit : thx donc voila j'ai bien crée le champ dans ma table de cette maniere: `date` datetime NOT NULL default '0000-00-00 00:00:00', là, il me reste à faire le code... on m'a donné cet exemple: while ($i=mysql_fetch_array($tarequete)) { // code $date=now(); $duree = $i[duree]+ [G]???[/g] ; if ($date<$duree) { echo "Nouveau"; } // code le probleme, c'est que je ne sais pas quoi mettre apres le + ?? |
j'vais essayer de rester calme ...
tu comprends ce bout de code au moins ? ca a pas l'air d'etre le cas sinon la reponse a ta question te paraitrait TRES évidente
Marsh Posté le 14-06-2002 à 21:26:17
arf desole mais c delicat
bon deja oui je comprend...
en fait,
l'exemple qu'on m'a filé c ca:
Code :
|
mais moi, le format de date du champ durée n'est pas en seconde mais comme ça: 0000-00-00 00:00:00
donc bon, forcement ça ne peut pas correspondre !
non ??
sorry detre dnul
Marsh Posté le 14-06-2002 à 22:01:45
ben tu peux utiliser le "timestamp" comme type de colonne au lieu de date
mais t'as essayé au moins? parce que je sais pas ce que retourne php sur un champ datetime de mysql mais si ça se trouve c'est comparable a un timestamp
et si t'as essayé, keske ça donne?
Marsh Posté le 14-06-2002 à 22:54:29
arf en fait jsais pas, ça marche peut etre, je n'ai pas reussi à l'integrer dans mon code !
si kkun pouvait m'aider integrer ça:
Code :
|
dans mon code:
Code :
|
voila il reste plus qu'a faire ça et c nickel !
merciiiiii d'avance
+
PS: dans mon insert pour la date, j'ai utilisé NOW()
Marsh Posté le 14-06-2002 à 22:56:03
TON code?
hahem
Marsh Posté le 14-06-2002 à 23:00:26
ReplyMarsh Posté le 15-06-2002 à 04:19:59
ludo2604 a écrit a écrit : les n derniers enregistrements, même si ils datent de 6 mois ? oui rho, desole je peux pas expliquer plus precis... je veux juste qu'au 5 derniers id, il affiche "nouveau" à cote... s'pa possible ? |
Je vois pas pourquoi vous vous prenez la tête avec les dates... Il veux les 5 derniers enregistrements selon l'ID, quelque soit la date...
Tu peux faire comme ça:
une requete avec une clause LIMIT pour ne sortir que le 5e ID depuis la fin.
SELECT ID FROM ta_table ORDER BY ID DESC LIMIT 5,0 |
Ensuite tu fais ta requete sur tes textes dans l'ordre que tu veux et tu compares l'ID de chaque enregistrement avec l'ID limite. si $ID >= $IDlimit bingo, c'est un des 5 derniers enregistrements.
Edit: pour le 5e enregistrement les valeurs de la clause LIMIT sont 4,1 , l'index commencant a 0... et c'est bien de sortir 1 enregistrement quand même... Allez, dodo
SELECT ID FROM ta_table ORDER BY ID DESC LIMIT 4,1 |
Marsh Posté le 15-06-2002 à 09:48:09
voui merci
donc voila, jsais pas trop si c'est correct:
$req=mysql_query("SELECT id FROM artistes ORDER BY id DESC LIMIT 4,1" )
while ($ligne=mysql_fetch_object($req))
$idlimit = $ligne->id;
if ($id >=$idlimit )
{
echo "Nouveau";
}
Marsh Posté le 15-06-2002 à 11:05:18
ludo2604 a écrit a écrit : voui merci donc voila, jsais pas trop si c'est correct: $req=mysql_query("SELECT id FROM artistes ORDER BY id DESC LIMIT 4,1" ) while ($ligne=mysql_fetch_object($req)) $idlimit = $ligne->id; if ($id >=$idlimit ) { echo "Nouveau"; } |
ça devrais fonctionner comme ça.
n.b. tu n'es pas obligé de metre l'instruction while puisque avec LIMIT 4,1 tu ne sort qu'un seul enregistrement.
$ligne=mysql_fetch_object($req);
$idlimit = $ligne->id;
Marsh Posté le 15-06-2002 à 11:30:54
oui mais il y a quelque chose que je ne comprend pas(decidement !), c'est $id n'est pas defni ici:
if ($id>=$idlimit )
Marsh Posté le 15-06-2002 à 12:20:07
ludo2604 a écrit a écrit : oui mais il y a quelque chose que je ne comprend pas(decidement !), c'est $id n'est pas defni ici: if ($id>=$idlimit ) |
Ha ben vi :-)
Je suis parti du principe que la requete sur tes textes tu l'a connais.
Donc:
1) une requete pour ne connaitre que l'id du 5e enregistrement par la fin, que tu stock dans $idlimit
2) tu sorts tous tes texte avec la requete qui va bien (par exemple celle que tu as utilisé jusqu'a présent sans oublier bien sure l'id de l'enregistrement et là tu pourra faire ton test if.
p.ex.
|
n.b Bien sure j'aurais du le préciser dès le début: ceci ne fonctionne que si dans ta table tu as une colonne id de type INT auto_increment qui est la clef primaire, mais si tu as déjà une colonne id c'est probablement le cas.
Marsh Posté le 15-06-2002 à 21:31:03
yes merci beaucoup ton truc m'a trop aidé, g un peu mieux pigé:
Code :
|
maintenant il reste un tout petit probleme, c'est que maintenant ça n'affiche que les nouveaux *lol*
desole, juiss vraiment nul
Marsh Posté le 15-06-2002 à 21:51:02
c bon desole ca marche javais pas reflechi yavai pas else!
merciiiiiiiiiii beaucoupppppppp c top tout es nickel now
Marsh Posté le 16-06-2002 à 13:50:31
orazur a écrit a écrit : tsss, utilise le timestamp, ca prend 2 lignes |
Comment faire une tartine au miel ?
Ben tu prends du pain et tu étale de la confiture de groseilles dessus.
tsss, relis les données du problème.
Marsh Posté le 14-06-2002 à 18:14:33
salut,
j'ai un script de paroles de chansons dans une liste, et j'aimerai afficher un "nouveau" à coté des derniers enregistrements (logique) mais je ne sais pas comment m'y prendre ...
Merci d'avance
---------------
Make Portraits, Not War!