Besoin d'un petit code source mysql php
Résolu/Fermé
glodybiss
Messages postés
440
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2015
-
21 févr. 2012 à 10:03
glodybiss Messages postés 440 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 29 juillet 2015 - 24 févr. 2012 à 08:22
glodybiss Messages postés 440 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 29 juillet 2015 - 24 févr. 2012 à 08:22
A voir également:
- Besoin d'un petit code source mysql php
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
- Comment créer un qr code - Guide
8 réponses
AssassinTourist
Messages postés
5710
Date d'inscription
lundi 16 janvier 2012
Statut
Contributeur
Dernière intervention
29 février 2024
1 311
Modifié par AssassinTourist le 21/02/2012 à 11:06
Modifié par AssassinTourist le 21/02/2012 à 11:06
Bonjour,
Ca se fera en php (en faisant attention au format des dates !). Je vous mets la structure, à vous de mettre vos champs.
Ca se fera en php (en faisant attention au format des dates !). Je vous mets la structure, à vous de mettre vos champs.
for(tous les utilisateurs affichés){ $style =""; if(datefinactivation > date du jour){ $style = 'color:red'; }else{ $style = 'color:black'; } echo "<p style=' ".$style." >". $nom_utilisateur ."</p>"; }
Mihawk
Messages postés
4315
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
846
Modifié par Mihawk le 21/02/2012 à 11:03
Modifié par Mihawk le 21/02/2012 à 11:03
Hello glodybiss, ça fait un bail ;-)
Rien à ajouter à AssassinTourist : rien à faire au niveau de ta DB ; c'est en PHP que tu vérifieras que cette dernière est antérieure ou non à la date actuelle.
Par contre je diffère avec AssassinTourist sur la méthode de mise en place du rouge. Je déconseille vivement l'utilisation de l'attribut "style" qui a un poids CSS très fort. Mieux vaut faire varier la classe du div et prévoir donc deux classes CSS.
Mihawk
"Tant qu'on ne fait pas, on ne sait pas."
Rien à ajouter à AssassinTourist : rien à faire au niveau de ta DB ; c'est en PHP que tu vérifieras que cette dernière est antérieure ou non à la date actuelle.
Par contre je diffère avec AssassinTourist sur la méthode de mise en place du rouge. Je déconseille vivement l'utilisation de l'attribut "style" qui a un poids CSS très fort. Mieux vaut faire varier la classe du div et prévoir donc deux classes CSS.
for(tous les utilisateurs affichés){ $class ="user"; if(datefinactivation > date du jour){ $class .= " active_user"; } else { $class .= " inactive_user"; } echo '<p class=\"'.$class.'">'. $nom_utilisateur .'</p>'; } <style> .user { /* Tous les attributs communs à tous les utilisateurs */ .inactive_user { color:red; } .active_user { color:green; } </style>
Mihawk
"Tant qu'on ne fait pas, on ne sait pas."
AssassinTourist
Messages postés
5710
Date d'inscription
lundi 16 janvier 2012
Statut
Contributeur
Dernière intervention
29 février 2024
1 311
21 févr. 2012 à 11:08
21 févr. 2012 à 11:08
Je suis d'accord, cette méthode est plus propre. Je voulais donner un exemple simple à comprendre (au niveau du code) Après, je suis d'accord que ce n'était pas la méthode la plus jolie pour mettre le texte en rouge =)
Mihawk
Messages postés
4315
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
846
21 févr. 2012 à 11:12
21 févr. 2012 à 11:12
Pas besoin de simplicité avec glodybiss, il est sur ce forum depuis un bout de temps ^^
glodybiss
Messages postés
440
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2015
9
21 févr. 2012 à 11:57
21 févr. 2012 à 11:57
Merci Mihawk moi je dirai même que ça fait une éternité , c'est gentil et j'suis très content de te revoir (Je voulais dire de revoir tes solutions, lol !)
Assassin ! Jolie comme surnom, uhm! je te remercie aussi, je prends vos sources et je travail dessus je vous donne la suite peut être avant la fin de la journée. Thanks so munch
Assassin ! Jolie comme surnom, uhm! je te remercie aussi, je prends vos sources et je travail dessus je vous donne la suite peut être avant la fin de la journée. Thanks so munch
glodybiss
Messages postés
440
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2015
9
21 févr. 2012 à 11:58
21 févr. 2012 à 11:58
Je suggère qu'on ajoute le bouton j'aime sur Commentçamarche, je voulais aimer ce que vous avez écrit mais dommage.
AssassinTourist
Messages postés
5710
Date d'inscription
lundi 16 janvier 2012
Statut
Contributeur
Dernière intervention
29 février 2024
1 311
21 févr. 2012 à 12:04
21 févr. 2012 à 12:04
Moi aussi, j'aimerai bien m'aimer... =)
Sinon, il y a le bouton +1 lorsqu'un commentaire t'a aidé (mais bon, c'est vrai que ce n'est pas pareil)
Je suis Assassin parce que je tue des gens, pas parce que je suis méchant =) Mais merci !
Sinon, il y a le bouton +1 lorsqu'un commentaire t'a aidé (mais bon, c'est vrai que ce n'est pas pareil)
Je suis Assassin parce que je tue des gens, pas parce que je suis méchant =) Mais merci !
glodybiss
Messages postés
440
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2015
9
21 févr. 2012 à 14:38
21 févr. 2012 à 14:38
Bonjour ! Je reviens à vous
mon code n'a pas fonctionner mais je crois que j'y suis presque
regarder à quoi ressemble ce que j'ai fait, mais je crois que s'il ne fonction pas c'est peut être parce qu'il compare les dates comme des chaines des caractères il n'y a t-il pas un fonction qui peut faire ça ?
Aucune erreur et aucun résultat de ce que j'attends, les dates je la date d'active je la récupère dans la base des données.
mon code n'a pas fonctionner mais je crois que j'y suis presque
regarder à quoi ressemble ce que j'ai fait, mais je crois que s'il ne fonction pas c'est peut être parce qu'il compare les dates comme des chaines des caractères il n'y a t-il pas un fonction qui peut faire ça ?
<?php $host = 'localhost'; $user = 'root'; $pass =''; $db = 'mabase'; $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error()); mysql_select_db($db) or die ('Erreur :'.mysql_error()); //if ($link=0){ //echo "die"; //} else {echo "OK";} $sql = 'SELECT idetatsite, dateactiv FROM cyb_site'; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); while($data=mysql_fetch_assoc($req)) { $class ="user"; if($data['dateactiv'] > date("Y-m-d")){ $class .= "active_user"; } else { $class .= "inactive_user"; } echo '<p class=\"'.$class.'">'.$data['idetatsite'].'';'</p>'; } ?>
Aucune erreur et aucun résultat de ce que j'attends, les dates je la date d'active je la récupère dans la base des données.
Mihawk
Messages postés
4315
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
846
Modifié par Mihawk le 21/02/2012 à 14:44
Modifié par Mihawk le 21/02/2012 à 14:44
Je réitère ma question : sous quelle forme stockes-tu les dates dans ta DB ?
AssassinTourist
Messages postés
5710
Date d'inscription
lundi 16 janvier 2012
Statut
Contributeur
Dernière intervention
29 février 2024
1 311
21 févr. 2012 à 14:45
21 févr. 2012 à 14:45
Tu as rajouté les classes active_user et inactive_user dans ton css ?
Sinon, qu'est-ce qu'il y a dans cette variable $data['dateactiv'] ? Quel format de la date ? C'est 21/02/2012 ou 2012-02-21 ?
Sinon, qu'est-ce qu'il y a dans cette variable $data['dateactiv'] ? Quel format de la date ? C'est 21/02/2012 ou 2012-02-21 ?
glodybiss
Messages postés
440
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2015
9
21 févr. 2012 à 15:56
21 févr. 2012 à 15:56
Mihawk je stocke sous format "Date"
Assassin je j'ai bien ajouter les classses dans mon style
voici le code complet
Assassin je j'ai bien ajouter les classses dans mon style
voici le code complet
<html> <head> <style type="text/css"> <!-- .user {color:#333;} /* Tous les attributs communs à tous les utilisateurs */ .inactive_user { color:#996600;} .active_user {color:#6666;} --> </style> </head> <body> <?php $host = 'localhost'; $user = 'root'; $pass =''; $db = 'mabase'; $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error()); mysql_select_db($db) or die ('Erreur :'.mysql_error()); //if ($link=0){ //echo "mawa"; //} else {echo "OK";} $sql = 'SELECT idetatsite, dateactiv FROM cyb_site'; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); while($data=mysql_fetch_assoc($req)) { $class ="user"; if($data['dateactiv'] > date("Y-m-d")){ $class .= "active_user"; } else { $class .= "inactive_user"; } echo '<p class=\"'.$class.'">'.$data['idetatsite'].'';'</p>'; } ?> </body></html>
Mihawk
Messages postés
4315
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
846
21 févr. 2012 à 16:01
21 févr. 2012 à 16:01
Qu'affiche : echo $data['dateactiv']; ?
glodybiss
Messages postés
440
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2015
9
21 févr. 2012 à 16:06
21 févr. 2012 à 16:06
dateactiv n'affiche rien c'est la variable qui récupère la date d'activation dans la base des données
AssassinTourist
Messages postés
5710
Date d'inscription
lundi 16 janvier 2012
Statut
Contributeur
Dernière intervention
29 février 2024
1 311
21 févr. 2012 à 16:03
21 févr. 2012 à 16:03
Oki, d'après ce lien https://www.commentcamarche.net/contents/1056-sql-creation-de-table ta date, c'est du genre 21/02/2012.
Il faut la convertir en 2012-02-21 avant de la comparer à ta Date("Y-m-d")
J'ai souvenir de faire ça salement avec la fonction split() de php, mais peut-être existe-t-il une autre solution :$
Il faut la convertir en 2012-02-21 avant de la comparer à ta Date("Y-m-d")
J'ai souvenir de faire ça salement avec la fonction split() de php, mais peut-être existe-t-il une autre solution :$
Mihawk
Messages postés
4315
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
846
Modifié par Mihawk le 21/02/2012 à 16:31
Modifié par Mihawk le 21/02/2012 à 16:31
Euhhh oui :-) Bien plus pratique d'ailleurs.
AssassinTourist, 'va falloir te mettre aux expressions régulières !
<?php preg_replace("#-#", "/", $data['dateactiv']); ?>
AssassinTourist, 'va falloir te mettre aux expressions régulières !
glodybiss
Messages postés
440
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2015
9
21 févr. 2012 à 16:36
21 févr. 2012 à 16:36
Il va falloir que j'utilise une expression régulière pour ça ?
Mihawk
Messages postés
4315
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
846
Modifié par Mihawk le 21/02/2012 à 16:39
Modifié par Mihawk le 21/02/2012 à 16:39
glodybiss par pitié écoute-nous (ou plutôt lis-nous) !
Il faut que tu demandes à PHP d'afficher le contenu de ta variable $data['dateactiv'] car dans ton code tu la compares à une date au format "2012-02-21" ; or si ça se trouve ta variable contient quelque chose comme "2012/02/21" donc les chaînes ne seront pas les mêmes, ce qui peut expliquer tes dysfonctionnements.
Dans le cas où ta variable $data['dateactiv'] contiendrait bien une date avec des slashs (et non pas des tirets) il faudrait alors utiliser le petit bout de code que j'ai posté ci-dessus afin de la mettre au bon format.
Tu suis ?
On veut bien te filer le code complet dont tu as besoin, mais ne connaissant pas le format de ta variable $data['dateactiv'], on ne peut rien pour toi.
Il faut que tu demandes à PHP d'afficher le contenu de ta variable $data['dateactiv'] car dans ton code tu la compares à une date au format "2012-02-21" ; or si ça se trouve ta variable contient quelque chose comme "2012/02/21" donc les chaînes ne seront pas les mêmes, ce qui peut expliquer tes dysfonctionnements.
Dans le cas où ta variable $data['dateactiv'] contiendrait bien une date avec des slashs (et non pas des tirets) il faudrait alors utiliser le petit bout de code que j'ai posté ci-dessus afin de la mettre au bon format.
Tu suis ?
On veut bien te filer le code complet dont tu as besoin, mais ne connaissant pas le format de ta variable $data['dateactiv'], on ne peut rien pour toi.
AssassinTourist
Messages postés
5710
Date d'inscription
lundi 16 janvier 2012
Statut
Contributeur
Dernière intervention
29 février 2024
1 311
21 févr. 2012 à 16:40
21 févr. 2012 à 16:40
Mais il faut inverser aussi ! Ca ne suffit pas de remplacer.
(et mes expressions régulières se portent très bien, merci)
(et mes expressions régulières se portent très bien, merci)
Mihawk
Messages postés
4315
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
846
21 févr. 2012 à 16:43
21 févr. 2012 à 16:43
'faut inverser quoi ?!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mihawk
Messages postés
4315
Date d'inscription
mercredi 29 mars 2006
Statut
Contributeur
Dernière intervention
6 janvier 2015
846
Modifié par Mihawk le 21/02/2012 à 16:54
Modifié par Mihawk le 21/02/2012 à 16:54
Essaye ça.
J'ai juste une réserve sur le preg_replace ; si ça ne marche pas on tentera autre chose.
Mihawk
"Tant qu'on ne fait pas, on ne sait pas."
J'ai juste une réserve sur le preg_replace ; si ça ne marche pas on tentera autre chose.
<?php $host = 'localhost'; $user = 'root'; $pass =''; $db = 'mabase'; $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error()); mysql_select_db($db) or die ('Erreur :'.mysql_error()); //if ($link=0){ //echo "die"; //} else {echo "OK";} $sql = 'SELECT idetatsite, dateactiv FROM cyb_site'; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); while($data=mysql_fetch_assoc($req)) { $class ="user"; $dateUser = intval(preg_replace("#^(\d{4})-(\d{2})-(\d{2})$#", "$1$2$3", $data['dateactiv'])); $currentDate = intval(date("Ymd")); if($dateUser > $currentDate){ $class .= "active_user"; } else { $class .= "inactive_user"; } echo '<p class=\"'.$class.'">'.$data['idetatsite'].'';'</p>'; } ?>
Mihawk
"Tant qu'on ne fait pas, on ne sait pas."
AssassinTourist
Messages postés
5710
Date d'inscription
lundi 16 janvier 2012
Statut
Contributeur
Dernière intervention
29 février 2024
1 311
21 févr. 2012 à 16:58
21 févr. 2012 à 16:58
Moi, j'ai soudain une question bête :$
As-tu dans tes résultats de ta base quelqu'un qui nous mettrait dans le rouge à un moment ?
Sinon quand tu disais que ton code ne marchait toujours pas, tu affichais quand même le nom de l'utilisateur (c'est juste qu'il n'était pas de la bonne couleur) ?
As-tu dans tes résultats de ta base quelqu'un qui nous mettrait dans le rouge à un moment ?
Sinon quand tu disais que ton code ne marchait toujours pas, tu affichais quand même le nom de l'utilisateur (c'est juste qu'il n'était pas de la bonne couleur) ?
glodybiss
Messages postés
440
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2015
9
23 févr. 2012 à 14:15
23 févr. 2012 à 14:15
Bonjour vous deux,
ça fait un temps que je vous taquine mais supporter cela s'il vous plait,:-)
Mihawk, j'ai essayé d'étudier le code et maintenant j'ai un résultat sauf que celui-ci ne prend pas en charge la condition pour dire qu'il ne vérifie pas les dates dates, il ne prend que la couleur du style inactive_user même quand la date du jour est supérieur à celle qui se trouve dans la base des données. Est-ce que la condition est bien faite ? essayé de revoir encore s'il vous plait.
ça fait un temps que je vous taquine mais supporter cela s'il vous plait,:-)
Mihawk, j'ai essayé d'étudier le code et maintenant j'ai un résultat sauf que celui-ci ne prend pas en charge la condition pour dire qu'il ne vérifie pas les dates dates, il ne prend que la couleur du style inactive_user même quand la date du jour est supérieur à celle qui se trouve dans la base des données. Est-ce que la condition est bien faite ? essayé de revoir encore s'il vous plait.
<html> <head> <style type="text/css"> <!-- .user {color:#ff0000;background:#333;} /* Tous les attributs communs à tous les utilisateurs */ .inactive_user { color:#fff;background:#074695;} .active_user {color:#000;background:#999;} --> </style> </head> <body> <?php $host = 'localhost'; $user = 'root'; $pass =''; $db = 'mabase'; $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error()); mysql_select_db($db) or die ('Erreur :'.mysql_error()); //if ($link=0){ //echo "die"; //} else {echo "OK";} $sql = 'SELECT idetatsite, dateactiv FROM cyb_site'; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); while($data=mysql_fetch_assoc($req)) { $class ="user"; $dateUser = intval(preg_replace("#^(\d{4})-(\d{2})-(\d{2})$#", "$1$2$3", $data['dateactiv'])); $currentDate = intval(date("YYYY-mm-dd")); if($dateUser > $currentDate){ $class .= " active_user"; } else { $class .= " inactive_user"; } echo '<p class="'.$class.'">'.$data['idetatsite'].'</p>'; } ?> </body></html>
glodybiss
Messages postés
440
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2015
9
23 févr. 2012 à 16:01
23 févr. 2012 à 16:01
Ca y est c'est trouvé!
Je devais utiliser utiliser le STRTOTIME à la place de ceci : $dateUser = intval(preg_replace("#^(\d{4})-(\d{2})-(\d{2})$#", "$1$2$3", $data['dateactiv']));
Voici la correction.
GRAND MERCI à Mihawk et à Assassin qui m'ont beaucoup aider pour et pour les codes sources.
Je devais utiliser utiliser le STRTOTIME à la place de ceci : $dateUser = intval(preg_replace("#^(\d{4})-(\d{2})-(\d{2})$#", "$1$2$3", $data['dateactiv']));
Voici la correction.
$dateUser = strtotime($mysql_date); $currentDate = time(); if ($dateUser < $currentDate) { ... }
GRAND MERCI à Mihawk et à Assassin qui m'ont beaucoup aider pour et pour les codes sources.
AssassinTourist
Messages postés
5710
Date d'inscription
lundi 16 janvier 2012
Statut
Contributeur
Dernière intervention
29 février 2024
1 311
23 févr. 2012 à 16:05
23 févr. 2012 à 16:05
De rien !
Content de voir que tu aies pu trouver la solution finale (sans nous) =)
Content de voir que tu aies pu trouver la solution finale (sans nous) =)
glodybiss
Messages postés
440
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2015
9
24 févr. 2012 à 08:22
24 févr. 2012 à 08:22
Le grand grand travail c'est vous donc je ne peux que dire que moi je ne rien foutu. ^^
21 févr. 2012 à 11:03
Si datefinactivation > date du jour alors l'utilisateur est OK :)
21 févr. 2012 à 11:07
Heureusement que tu es là ;)
21 févr. 2012 à 11:08
Merci pour ton aide
voici ce que j'ai pu faire mais ce n'est pas trop concret je te montre peut être tu auras une idée...
Je n'ai pas bien saisie date du jour, à quoi ressemblera la date du jour dans mon code ?
toute mes dates sont stockée dans la base des données c'est là que je l'ai récupère.
voilà ce que j'ai essayé de faire
21 févr. 2012 à 11:13
Les timestamp sont les plus faciles à manipuler.
21 févr. 2012 à 11:18
plutôt que :
Sous réserve que Mihawk me corrige =)