Page 1 sur 2

Afficher données base mysql

Posté : 12 juil. 2010, 15:33
par ju3979
Je rencontre un problème pour afficher une valeur de ma table mysql

Les autres champs s'affichent correctement par contre le champ "etat" ne s'affiche pas

J'ai dans mon script php définit une valeur par défaut pour ce champ

Voici donc le message d'erreur quand j'essaye d'afficher les données de ma table:Notice: Undefined index: etat in c:\program files\easyphp1-7\www\testaffichage.php on line 57

et voici mon code:

Code : Tout sélectionner

<html> <title>Demandes d'entrée</title> <body> <link href="test.css" rel="stylesheet" type="text/css"> </head> <body bgcolor="#FFFFF0"> <p class="titre"> Suivi Demande D'entrée </p> <? // information pour la connection à la DB $host = 'localhost'; $user = 'root'; $pass = ''; $db = 'formulaire'; // connection à la DB $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); mysql_select_db($db) or die ('Erreur :'.mysql_error()); // requête SQL qui compte le nombre total d'enregistrement dans la table et qui //récupère tous les enregistrements $select = 'SELECT nom,prenom,service,date,demandeur FROM formentree'; $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() ); $total = mysql_num_rows($result); // si on a récupéré un résultat on l'affiche. if($total) { // debut du tableau echo '<table bgcolor="#FFFFFF">'."\n"; // première ligne on affiche les titres prénom et surnom dans 2 colonnes echo '<tr>'; echo '<th WIDTH=180 bgcolor="#669999">NOM</th>'; echo '<th WIDTH=180 bgcolor="#669999">Prenom</th>'; echo '<th WIDTH=180 bgcolor="#669999">Service</th>'; echo '<th WIDTH=180 bgcolor="#669999">Date d entrée</th>'; echo '<th WIDTH=180 bgcolor="#669999">Demandeur</th>'; echo '<th WIDTH=180 bgcolor="#669999">Etat</th>'; echo '</tr>'."\n"; // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne. while($row = mysql_fetch_array($result)) { echo '<tr>'; echo '<td bgcolor="#A4D8EE">'.$row["nom"].'</td>'; echo '<td bgcolor="#A4D8EE">'.$row["prenom"].'</td>'; echo '<td bgcolor="#A4D8EE">'.$row["service"].'</td>'; echo '<td bgcolor="#A4D8EE">'.$row["date"].'</td>'; echo '<td bgcolor="#A4D8EE">'.$row["demandeur"].'</td>'; echo '<td bgcolor="#A4D8EE">'.$row["etat"].'</td>'; echo '</tr>'."\n"; } echo '</table>'."\n"; // fin du tableau. } else echo 'Pas d\'enregistrements dans cette table...'; // on libère le résultat mysql_free_result($result); ?> </body> </html>
D'avance merci pour votre aide

Re: Afficher données base mysql

Posté : 12 juil. 2010, 15:51
par telnes
hello

'SELECT nom,prenom,service,date,demandeur FROM formentree';

il n'y a pas 'etat' dans ta requet

peut etre faire

'SELECT nom,prenom,service,date,demandeur,etat FROM formentree';

++

Re: Afficher données base mysql

Posté : 12 juil. 2010, 20:01
par ju3979
OK merci ça marche

Par contre j'ai un autre problème avec le format de ma date

elle est en us dans ma table sql mais je souhaiterai l'afficher au format FR

Pourriez vous m'aider ?

D'avance merci

Re: Afficher données base mysql

Posté : 12 juil. 2010, 21:32
par Ryle
Le forum FAQ contient des explications détaillées sur ce sujet :
:arrow: Quelques petites manipulations avec les dates &#40;PHP/MySQL)

;)

Re: Afficher données base mysql

Posté : 12 juil. 2010, 22:12
par ju3979
Oui j'avais déja consulté mais ça ne marche pas

Voici mon code ci dessous qui s'inspire de la faq pour convertir lors de l'affichage de la date du format us en fr

Code : Tout sélectionner

// connection à la DB $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); mysql_select_db($db) or die ('Erreur :'.mysql_error()); $dateSQL = '2005-09-01'; list($annee, $mois, $jour) = explode("-", $dateSQL); $dateFR = $jour.'/'.$mois.'/'.$annee; // requête SQL qui compte le nombre total d'enregistrement dans la table et qui //récupère tous les enregistrements $select = 'SELECT nom,prenom,service,DATE_FORMAT(date,'%d/%m/%Y'),demandeur,etat FROM formentree'; $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() ); $total = mysql_num_rows($result);
Et j'ai l'erreur suivante: Parse error: parse error, unexpected '%' in c:\program files\easyphp1-7\www\testaffichage.php on line 32

D'avance merci pour l'aide

Re: Afficher données base mysql

Posté : 12 juil. 2010, 22:19
par stealth35
probleme de quote tu ouvres ta chaine avec ' alors que tu en possèdes a l'intérieur

Re: Afficher données base mysql

Posté : 12 juil. 2010, 22:26
par ju3979
ok mais que dois je donc faire ?

Merci

Re: Afficher données base mysql

Posté : 12 juil. 2010, 22:31
par stealth35
ok mais que dois je donc faire ?

Merci
sois tu echappes les autres quote sois tu changes de quote
$select = 'SELECT nom,prenom,service,DATE_FORMAT(date,\'%d/%m/%Y\'),demandeur,etat FROM formentree';
sois
$select = "SELECT nom,prenom,service,DATE_FORMAT(date,'%d/%m/%Y'),demandeur,etat FROM formentree";

Re: Afficher données base mysql

Posté : 12 juil. 2010, 23:00
par ju3979
Ok j'ai pris ta première solution mais maintenant j'ai un autre message d'erreur:

Notice: Undefined index: date in c:\program files\easyphp1-7\www\testaffichage.php on line 68

D'avance merci pour l'aide

Re: Afficher données base mysql

Posté : 13 juil. 2010, 00:40
par stealth35
Ok j'ai pris ta première solution mais maintenant j'ai un autre message d'erreur:

Notice: Undefined index: date in c:\program files\easyphp1-7\www\testaffichage.php on line 68

D'avance merci pour l'aide

parce que tu na pas de champs date, regarde dans ton phpmyadmin ou en faisant un print_r
il faut que tu crées un alias
$select = "SELECT nom,prenom,service,DATE_FORMAT(date,'%d/%m/%Y') AS date,demandeur,etat FROM formentree";

Re: Afficher données base mysql

Posté : 13 juil. 2010, 10:20
par ju3979
En mettant ta ligne je n'ai plus de message d'erreur mais par contre il n'affiche toujours pas la date corretement

Il affiche 20/07/2028 pour une date saisie 28/07/2010

D'avance merci

Re: Afficher données base mysql

Posté : 13 juil. 2010, 10:27
par stealth35
a quoi est égale ton champs date dans ta base de donnée

Re: Afficher données base mysql

Posté : 13 juil. 2010, 12:03
par ju3979
Champ date de type date valeur défaut 0000-00-00

Merci

Re: Afficher données base mysql

Posté : 13 juil. 2010, 13:17
par stealth35
Champ date de type date valeur défaut 0000-00-00

Merci
oui mais la valeur de ton champs c'est quoi ?

Re: Afficher données base mysql

Posté : 13 juil. 2010, 17:09
par ju3979
je saisie 28/07/2010 et dans ma table dans mon champ il est indiqué 20/07/2028

Merci