Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1346 connectés 

  FORUM HardWare.fr
  Programmation

  [PHP] afficher un 'nouveau' pour les derniers enregistrements...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] afficher un 'nouveau' pour les derniers enregistrements...

n°159607
ludo2604
kitsch' me if u can
Posté le 14-06-2002 à 18:14:33  profilanswer
 

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  :hello:


---------------
Make Portraits, Not War!  
mood
Publicité
Posté le 14-06-2002 à 18:14:33  profilanswer
 

n°159608
greg@frees​tarthu
Posté le 14-06-2002 à 18:15:48  profilanswer
 

un nouveau QUOI?

n°159611
ludo2604
kitsch' me if u can
Posté le 14-06-2002 à 18:25:06  profilanswer
 

afficher le mot "nouveau"
 
par exemple comme ça:
 
. Cardigans (the) (39) Nouveau !
. Coolio (1)
. Corrs (the) (38)
. Craig David (11)
. Cramberries (the) (27) Nouveau !


---------------
Make Portraits, Not War!  
n°159612
hum hum
Posté le 14-06-2002 à 18:27:56  profilanswer
 

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.

n°159613
greg@frees​tarthu
Posté le 14-06-2002 à 18:28:36  profilanswer
 

et c'est "nouveau" par rapport à quoi?
t'es pénible là...

n°159616
ludo2604
kitsch' me if u can
Posté le 14-06-2002 à 18:35:11  profilanswer
 

les n derniers enregistrements, même si ils datent de 6 mois ?  
oui  :sarcastic:  
 
rho, desole je peux pas expliquer plus precis... je veux juste qu'au 5 derniers id, il affiche "nouveau" à cote... s'pa possible ?


---------------
Make Portraits, Not War!  
n°159617
greg@frees​tarthu
Posté le 14-06-2002 à 18:36:52  profilanswer
 

ludo2604 a écrit a écrit :

les n derniers enregistrements, même si ils datent de 6 mois ?  
oui  :sarcastic:  
 
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?

n°159620
ludo2604
kitsch' me if u can
Posté le 14-06-2002 à 18:43:43  profilanswer
 

non :/ il faut créer une autre table !?
 
n'y a til pas un autre moyen ?


---------------
Make Portraits, Not War!  
n°159628
greg@frees​tarthu
Posté le 14-06-2002 à 18:58:34  profilanswer
 

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 ;))

n°159633
ludo2604
kitsch' me if u can
Posté le 14-06-2002 à 19:04:38  profilanswer
 

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  :)


---------------
Make Portraits, Not War!  
mood
Publicité
Posté le 14-06-2002 à 19:04:38  profilanswer
 

n°159649
greg@frees​tarthu
Posté le 14-06-2002 à 19:37:42  profilanswer
 

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 :
  1. alter table disques add column date_sortie date


 
ensuite qd tu affiche ta liste de cd tu compare la data de cette colonne avec la date du jour... par exemple


---------------
\^o^/ Libérez HotShot \^o^/
n°159657
ludo2604
kitsch' me if u can
Posté le 14-06-2002 à 19:56:51  profilanswer
 

oui oui champs je sais scuse...
 
oky merci bien je vais voir ça ^^


---------------
Make Portraits, Not War!  
n°159658
greg@frees​tarthu
Posté le 14-06-2002 à 19:58:43  profilanswer
 

bonne chance:)


---------------
\^o^/ Libérez HotShot \^o^/
n°159679
ludo2604
kitsch' me if u can
Posté le 14-06-2002 à 21:15:56  profilanswer
 

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 + ??


Message édité par ludo2604 le 14-06-2002 à 21:17:16

---------------
Make Portraits, Not War!  
n°159680
HappyHarry
Posté le 14-06-2002 à 21:22:18  profilanswer
 

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

n°159685
ludo2604
kitsch' me if u can
Posté le 14-06-2002 à 21:26:17  profilanswer
 

arf desole mais c delicat
bon deja oui je comprend...
 
en fait,
l'exemple qu'on m'a filé c ca:
 

Code :
  1. while ($i=mysql_fetch_array($tarequete)) {
  2. // code  
  3. $date=time();
  4. // 432000 correspond à 5 jours en secondes  
  5. $duree = $i[duree]+432000 ;
  6. if ($date<$duree) {
  7. echo "Nouveau";
  8. }
  9. // 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 :/


---------------
Make Portraits, Not War!  
n°159692
greg@frees​tarthu
Posté le 14-06-2002 à 22:01:45  profilanswer
 

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?


---------------
\^o^/ Libérez HotShot \^o^/
n°159713
ludo2604
kitsch' me if u can
Posté le 14-06-2002 à 22:54:29  profilanswer
 

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 :
  1. $date=time(); 
  2.     $duree = $ligne_artiste->duree+432000 ; 
  3.     if ($date<$duree)
  4.     { 
  5.       echo "Nouveau"; 
  6.     }


 
dans mon code:
 

Code :
  1. <?
  2. $req_artiste=mysql_query("Select DISTINCT t1.nom,id, count(t2.id_artistes) As nbr FROM artistes As t1 LEFT join chansons As t2 On t1.id=t2.id_artistes WHERE UPPER(SUBSTRING(nom,1,1) BETWEEN 'A' AND 'G') group by t1.nom" );
  3. while ($ligne_artiste=mysql_fetch_object($req_artiste))
  4. {
  5. $var=substr($ligne_artiste->nom,0,1);
  6. if($var!=$var2)
  7.   echo '<br>'.'- '.'<font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#FFD16F"> '.'<B>'.substr($ligne_artiste->nom,0,1).'</B>'.'<BR>'.'<BR>';
  8.   $var2=$var; 
  9. echo '  '.'<font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#C6BFE8">'.("<B>.</B>  <a href=\"index.php?p=scriptsphp3/lyrics/artistes&id=$ligne_artiste->id\">$ligne_artiste->nom</a> ($ligne_artiste->nbr)" ).'<BR>';
  10. }
  11. ?>


 
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()


Message édité par ludo2604 le 14-06-2002 à 22:55:28

---------------
Make Portraits, Not War!  
n°159714
greg@frees​tarthu
Posté le 14-06-2002 à 22:56:03  profilanswer
 

TON code?
hahem


---------------
\^o^/ Libérez HotShot \^o^/
n°159716
ludo2604
kitsch' me if u can
Posté le 14-06-2002 à 23:00:26  profilanswer
 

???


Message édité par ludo2604 le 14-06-2002 à 23:01:11

---------------
Make Portraits, Not War!  
n°159751
hum hum
Posté le 15-06-2002 à 04:19:59  profilanswer
 

ludo2604 a écrit a écrit :

les n derniers enregistrements, même si ils datent de 6 mois ?  
oui  :sarcastic:  
 
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


Message édité par hum hum le 15-06-2002 à 04:27:54
n°159756
ludo2604
kitsch' me if u can
Posté le 15-06-2002 à 09:48:09  profilanswer
 

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";  
}


---------------
Make Portraits, Not War!  
n°159777
hum hum
Posté le 15-06-2002 à 11:05:18  profilanswer
 

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;

n°159785
ludo2604
kitsch' me if u can
Posté le 15-06-2002 à 11:30:54  profilanswer
 

oui mais il y a quelque chose que je ne comprend pas(decidement !), c'est $id n'est pas defni ici:  
if ($id>=$idlimit )


Message édité par ludo2604 le 15-06-2002 à 11:31:09

---------------
Make Portraits, Not War!  
n°159796
hum hum
Posté le 15-06-2002 à 12:20:07  profilanswer
 

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.


$requete="SELECT id, artiste FROM ta_table ORDER BY artiste";
$resultat = mysql_query($requete, $connexion);
while ($ligne = mysql_fetch_object($resultat)) {
$id = $ligne->id;
$artiste = $ligne->artiste;
if($id>=$idlimit) $txtNouveau ="nouveau !";
echo "$artiste $txtNouveau <br>";
}


 
 
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.

n°160035
ludo2604
kitsch' me if u can
Posté le 15-06-2002 à 21:31:03  profilanswer
 

yes merci beaucoup ton truc m'a trop aidé, g un peu mieux pigé:
 

Code :
  1. <?
  2. $req=mysql_query("SELECT id FROM artistes ORDER BY id DESC LIMIT 4,1" );
  3. $ligne=mysql_fetch_object($req);
  4. $idlimit = $ligne->id;
  5. $req_artiste=mysql_query("Select DISTINCT t1.nom,id, count(t2.id_artistes) As nbr FROM artistes As t1 LEFT join chansons As t2 On t1.id=t2.id_artistes WHERE UPPER(SUBSTRING(nom,1,1) BETWEEN 'A' AND 'G') group by t1.nom" );
  6. while ($ligne_artiste=mysql_fetch_object($req_artiste))
  7. {
  8. $var=substr($ligne_artiste->nom,0,1);
  9. if($var!=$var2)
  10. if
  11. ($ligne_artiste->id>=$idlimit)
  12. {
  13. echo '<br>'.'- '.'<font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#FFD16F"> '.'<B>'.substr($ligne_artiste->nom,0,1).'</B>'.'<BR>'.'<BR>';
  14. $var2=$var;
  15. echo ' '.'<font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#C6BFE8">'.("<B>.</B> <a href=\"index.php?p=scriptsphp3/lyrics/artistes&id=$ligne_artiste->id\">$ligne_artiste->nom</a> ($ligne_artiste->nbr)" ).' Nouveau!';
  16. }
  17. }
  18. ?>


 
maintenant il reste un tout petit probleme, c'est que maintenant ça n'affiche que les nouveaux *lol*
 
desole, juiss vraiment nul :/


Message édité par ludo2604 le 15-06-2002 à 21:32:16

---------------
Make Portraits, Not War!  
n°160041
ludo2604
kitsch' me if u can
Posté le 15-06-2002 à 21:51:02  profilanswer
 

c bon desole ca marche javais pas reflechi yavai pas else!
 
merciiiiiiiiiii beaucoupppppppp c top tout es nickel now :)
 
 :hello:


---------------
Make Portraits, Not War!  
n°160140
orazur
Posté le 16-06-2002 à 02:33:18  profilanswer
 

tsss, utilise le timestamp, ca prend 2 lignes

n°160199
hum hum
Posté le 16-06-2002 à 13:50:31  profilanswer
 

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.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [PHP] afficher un 'nouveau' pour les derniers enregistrements...

 

Sujets relatifs
Decouper une chaine de char en Php[PHP] generer un log sur un repertoire protege en htaccess.
[PHP] $GLOBALS("NAME") = $myObj; Comment faire ?Sous Process avec Apache-PHP...
[PHP/HTM] Retour a la ligne dans un textareaun petit nouveau aller voire : www........fr.st
pb avec un site en PHP[php]top 5 des enregistrements... les numeroter...
fonction mail() en PHP[PHP] Comment inserer la date courante dans MySQL
Plus de sujets relatifs à : [PHP] afficher un 'nouveau' pour les derniers enregistrements...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR