changer l'affich.date et ne pas afficher valeur dans un tableau - PHP - Programmation
Marsh Posté le 10-10-2008 à 08:55:30
Bonjour,
Pour la première question :
Code :
|
Et tu changes cette ligne :
Code :
|
par :
Code :
|
Pour la deuxième question, exemple :
Code :
|
D'autre part, les multiples 'echo' prennent du temps. Tu pourrais tout simplement mettre :
Code :
|
Marsh Posté le 10-10-2008 à 09:43:45
super, je regarde si ça marche, ça c'est de la réponse, merci mille fois :-)
Marsh Posté le 10-10-2008 à 09:58:30
Bon, ça marche pas :-(
voici le message d'erreur :
Parse error: syntax error, unexpected '%' in /home.36/s/t/a/stalagii/www/blog/test8.php on line 54
Ca correspond à cette ligne :
DATE_FORMAT(naissance_date, '%d/%m/%Y') as date_naissance,
J'ai mis des - à la place des /, mais rien n'y fait
Serait-ce un pb lié à php, qui pense que c'est une fonction php, alors que c'est un appel en base mysql ?
AUtre détail : dans ma base, les dates sont notées de cette façon : 1911-06-17
Marsh Posté le 10-10-2008 à 10:11:42
Désolé, j'ai oublié d'échapper les apostrophes :
DATE_FORMAT(naissance_date, \'%d/%m/%Y\') as date_naissance,
Marsh Posté le 10-10-2008 à 10:14:38
tu peux montrer un peu plus de code ?
surtout la partie autour du DATE_FORMAT
Marsh Posté le 10-10-2008 à 10:23:02
j'ai changé la ligne, je n'ai plus l'erreur, mais la page s'affiche bizarrement, cf. http://www.stalag-iiib.fr/blog/test8.php
la date s'affiche hors du tableau, et les 00/00/0000 s'affichent toujours
Marsh Posté le 10-10-2008 à 10:40:09
un bout de code :
while($row = mysql_fetch_array($result)) {
echo '<tr>';
echo '<td bgcolor="#FFFFFF">'.$row['immat_stalag'].'</td>';
echo '<td bgcolor="#FFFFFF">'.$row['nom'].'</td>';
echo '<td bgcolor="#FFFFFF">'.$row['prenom_premier'].'</td>';
echo '<td bgcolor="#FFFFFF">' . ($row['date_naissance'] != '00/00/0000') ? $row['date_naissance'] : ' ' . '</td>';
echo '<td bgcolor="#FFFFFF">'.$row['naissance_lieu'].'</td>';
echo '<td bgcolor="#FFFFFF">'.$row['naissance_dept'].'</td>';
echo '<td bgcolor="#FFFFFF">'.$row['residence_commune'].'</td>';
echo '<td bgcolor="#FFFFFF">'.$row['residence_dept'].'</td>';
echo '</tr>'."\n";
Marsh Posté le 10-10-2008 à 11:43:08
Mets cette ligne à la place de l'autre :
echo '<td bgcolor="#FFFFFF">' . (($row['date_naissance'] != '00/00/0000') ? $row['date_naissance'] : ' ') . '</td>' ."\n";
Marsh Posté le 10-10-2008 à 11:47:36
YOUPI, ça marche :-)
cf. http://www.stalag-iiib.fr/blog/test13.php
merci, merci, merci !!!!
Marsh Posté le 10-10-2008 à 12:42:51
J'avais oublié de mettre l'expression entre parenthèses. Penses à le faire si tu ajoutes le même test sur d'autre colonnes.
Marsh Posté le 10-10-2008 à 18:06:46
j'ai appliqué la même méthode sur d'autres lignes, ça marche parfaitement, merci encore.
Maintenant, je vais devoir m'attaquer au classement par colonne et à la pagination, ainsi qu'à des formulaires de recherche, car si la base ne contient que 150 noms aujourd'hui, elle en contiendra environ... 20 000 ! mais d'ici 1 an tout de même.
Marsh Posté le 10-10-2008 à 01:05:56
Bonjour à tous,
je débute en php et je tatonne, voici ma question : sur cette page http://www.stalag-iiib.fr/blog/test9.php j'affiche le contenu d'une base (mysql, hébergée chez OVH).
Mes pb :
- j'aimerai afficher la date "à la française" (jj/mm/aaaa)
- quand j'ai une valeur = 0, je voudrais ne rien afficher, plutôt que d'afficher 0
Voici le code, que j'ai trouvé d'ailleurs sur un site :
// requête SQL qui compte le nombre total d'enregistrements dans la table et qui
//récupère tous les enregistrements
$select = 'SELECT immat_stalag,nom,prenom_premier,naissance_date,naissance_lieu,naissance_dept,residence_commune,residence_dept FROM fichierpg';
$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) {
// début du tableau
echo '<table bgcolor="#000000">'."\n";
// première ligne on affiche les titres prénom et surnom dans 2 colonnes
echo '<tr>';
echo '<td bgcolor="#CCCCCC"><b><u>Matricule</u></b></td>';
echo '<td bgcolor="#CCCCCC"><b><u>Nom</u></b></td>';
echo '<td bgcolor="#CCCCCC"><b><u>Prénom</u></b></td>';
echo '<td bgcolor="#CCCCCC"><b><u>Né le</u></b></td>';
echo '<td bgcolor="#CCCCCC"><b><u>à</u></b></td>';
echo '<td bgcolor="#CCCCCC"><b><u>Dept.</u></b></td>';
echo '<td bgcolor="#CCCCCC"><b><u>Résidant à</u></b></td>';
echo '<td bgcolor="#CCCCCC"><b><u>Dept.</u></b></td>';
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="#FFFFFF">'.$row['immat_stalag'].'</td>';
echo '<td bgcolor="#FFFFFF">'.$row['nom'].'</td>';
echo '<td bgcolor="#FFFFFF">'.$row['prenom_premier'].'</td>';
echo '<td bgcolor="#FFFFFF">'.$row['naissance_date'].'</td>';
echo '<td bgcolor="#FFFFFF">'.$row['naissance_lieu'].'</td>';
echo '<td bgcolor="#FFFFFF">'.$row['naissance_dept'].'</td>';
echo '<td bgcolor="#FFFFFF">'.$row['residence_commune'].'</td>';
echo '<td bgcolor="#FFFFFF">'.$row['residence_dept'].'</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);
Pour l'histoire des 0 ou 0000-00-00, je n'arrive pas à éviter ces valeurs dans la base, quand j'importe mon CSV source, et je n'ai pas trouvé comment dire que le champ ne doit rien contenir si il n'y a pas d'infos à importer.
Merci de votre aide :-)