Afficher des enregistremment avec php et mysq

Fermé
isgt Messages postés 43 Date d'inscription samedi 29 mars 2008 Statut Membre Dernière intervention 15 mai 2012 - 29 juil. 2009 à 18:35
Airmanbzh Messages postés 119 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 27 avril 2010 - 30 juil. 2009 à 13:57
bonjour,
je travaille avec musql et php
dans mysql j'ai un tableau (date)contient deux champs de type date(jour,jourr)
je veux afficher les enregistrement qui contiennent de date de type 0000-00-00
voila mon code mais il m'affiche rien :??:
***********************************************************************
<table>
<tr>
<td>date1</td>
<td>date2</td>
</tr>
</table>

<?php

$user="root"; // nom de l'utilisateur autorisé à se connecter à la base de données
$password=""; // son mot de passe
$machine="localhost"; // la machine contenent l'SGBD
$base="essai";// nom de la base de données
mysql_connect($machine,$user,$password) or die ("impossible de se connecter à l'SGBD");
mysql_select_db($base) or die ("impossible de selectionner la base");
$requete= "select * from date where jour like'0000-00-00'";
$resultat= mysql_query($requete);
$ligne= mysql_fetch_row($resultat);
while ($ligne= mysql_fetch_row($resultat))
{
echo "<tr>";

echo "<td>".$ligne[1]."</td>";
echo "<td>".$ligne[2]."</td>";

echo "</tr>";
}
?>

</table>
************************************************************
a bientot merciiiii
A voir également:

3 réponses

Airmanbzh Messages postés 119 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 27 avril 2010 9
30 juil. 2009 à 09:49
A ce qu'il me semble tu m'as l'air assez débutant en programmation (ce n'est pas un reproche, on a tous débuté ^^).

Je préfère t'indiquer 2 ou 3 petites choses avant de passer plus en profondeur dans ton problème.

La première chose : 'date' est un mot réservé, je te conseille donc de changer le nom de ta table par (par exemple) 'ma_date'.
Seconde chose : lorsque tu fais un 'LIKE' dans une requête SQL, ce n'est pas pour comparer un texte à un modèle (ou du moins pas de la façon dont tu l'utilises). Là tu essayes de trouver toutes les dates qui ont pour valeures '0000-00-00', donc aucunes à moins que tu ai cette date en particulier dans ta base de données.

Dernière chose :
SELECT DATE_FORMAT(jour,'%Y-%m-%d') FROM ta_table
devrait répondre à tes attentes. Je te conseille de te renseigner sur cette fonction "DATE_FORMAT" à cette adresse : http://dev.mysql.com/doc/refman/5.0/fr/date-and-time-functions.html

Bon courage pour la suite.

Cdt
0
isgt Messages postés 43 Date d'inscription samedi 29 mars 2008 Statut Membre Dernière intervention 15 mai 2012 3
30 juil. 2009 à 13:43
bonjour Airmanbzh,
merci pour tes conseilles mais j'essaye votre solution
elle mafiche tous les enregistrement de champ jour mais moi je veux que les enregistrement qui contiennent '0000-00-00' pour ca j'ai pensé a LIKE OU == mais les deux ne marche pas
alors koi la solution
0
Airmanbzh Messages postés 119 Date d'inscription mardi 28 juillet 2009 Statut Membre Dernière intervention 27 avril 2010 9
30 juil. 2009 à 13:57
Si ta date est bien au format (YYYY-MM-DD) ton LIKE devrait fonctionner.

Si ce n'est pas le cas, essaye de cette façon :
SELECT * FROM date WHERE DATE_FORMAT(jour,'%Y-%m-%d') LIKE '0000-00-00';

ou

SELECT * FROM date WHERE DATE_FORMAT(jour,'%Y-%m-%d') = STR_TO_DATE('0000-00-00', '%Y-%m-%d');

0