Problème de date anniversaire

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 : Problème de date anniversaire

Re: Problème de date anniversaire

par Pombela » 13 mars 2012, 02:47

Ok merci de tes infos, je vais regarder ça d'un peu plus près. Si j'ai tout compris, le fait d'avoir un espace attends une date à 2 chiffre du style 04 alors que dans ma base la valeur est 4.
Je vais corriger cela. Merci encore.

Re: Problème de date anniversaire

par Ryle » 13 mars 2012, 01:38

Tu as des espaces en trop lorsque tu fais appel à strftime. Ainsi strftime("%d ") va retourner la chaine "13 " et pas "13". Du coup quand tu utilises cette valeur dans ta requête, la correspondance avec tes enregistrements ne se fait pas.

Pour débugger facilement, tu as intérêt à mettre ta requête dans une variable que tu pourras afficher avec de l'exécuter, ça permet d'éviter pas mal d'erreur :)
$sql = 'SELECT * FROM listing WHERE mois="'.$moisact.'" AND jour="'.$jouract.'" ';
echo $sql;
$res=mysql_query($sql);  
A noter que si tes champ mois et jour sont bien des nombres en base, alors il ne faut pas délimiter les valeurs par des guillemets (tu n'aurais d'ailleurs dans ce cas plus le problème des espaces)
$sql = 'SELECT * FROM listing WHERE mois=' . $moisact . ' AND jour=' . $jouract; 

Problème de date anniversaire

par Pombela » 12 mars 2012, 23:42

Bonjour, je gère un site internet d'un club sportif. Sur ma page de garde, j'ai une DIV dans laquelle je souhaite afficher le nom et prénom des membres du club. J'ai donc une table listing dans ma base de données. Dans cette table j'y ai extrait le numéro de mois ainsi que le numéro de jour. En cherchant un peu sur le net, j'ai utiliser strftime.
Le problème est le suivant : je n'ai rien qui s'affiche dans ma DIV et n'est aucune indication d'erreur. Quelqu'un pourrait il éclairer ma lanterne.

Mon bout de code :

Code : Tout sélectionner

<!--DIV anniversaire--> <div style="width:270px;height:120px;overflow:auto;border:1px solid #98212d;margin-left:10px;margin-right:6px;float:left"> <div style="width:270px;text-align:center;color:#FFFFFF;background-color:#ae4f59"> <b>Anniversaires du jour</b> </div> <br/> <?php $jouract = strftime("%d "); $moisact = strftime("%m "); mysql_connect('**********','***********','*******'); //Connection à la base de donnée mysql_select_db('***********'); //Sélection de la base de travail $res=mysql_query('SELECT * FROM listing WHERE mois="'.$moisact.'" AND jour="'.$jouract.'" '); //Intérrogatiopn de la base : Sélection des enregistrements si date et mois courant correspondent a date de naissance echo mysql_error(); while($enreg=mysql_fetch_assoc($res)){ echo $enreg['nom']; echo " "; echo $enreg['prenom']; echo "<br/>"; } mysql_close(); ?> </div> <!--FIN DIV anniversaire-->
Merci d'avance.