bouffon3000 Posté 17 Septembre 2005 Posté 17 Septembre 2005 Bonjour, J'aimerais savoir comment faire si je veus que lorsque qu'un champs dans ma base de donnée mysql a une valeur zéro, toute la ligne ne s'affiche pas dans mon documents php. Puisque je ne sais pas si j'ai été assez clair, je vous explique en pratique ce que j'aimerais : Sur http://www.avli.ch/album.php tout les matchs s'affiche automatiquement mais j'aimerais pouvoir faire en sorte que certain ne s'affiche pas sans pour autant les suprimer de la base de donnée. Une solution ? Merci bcp d'avance..
Light_at_the_end Posté 17 Septembre 2005 Posté 17 Septembre 2005 (modifié) Salut Sur quels critères ne veux-tu pas afficher les matchs ? Si c'est arbitraire, tu peux par exemple créer un nouveau champ dans ta base de donnée intitulé 'Voir', et le mettre à 1 pour les matchs que tu souhaites montrer, et le mettre à 0 pour le reste des matchs à cacher. Admettons que tes matchs soient stockés dans la table Matchs Il suffit de faire la requête SQL suivante pour afficher que les matchs dont le champ Voir est à 1 : SELECT * FROM Matchs WHERE Voir='1' Si c'est seulement parce que ta liste est trop grande et que tu veux afficher seulement les 10 derniers matchs, tu peux mettre LIMIT 10 à la fin de ta requête. Modifié 17 Septembre 2005 par Light_at_the_end
bouffon3000 Posté 17 Septembre 2005 Auteur Posté 17 Septembre 2005 (modifié) Mais je veus que les matchs s'affiche dans les autres rubriques mais que juste dans la page "album.php" certain ne s'affiche pas... Modifié 17 Septembre 2005 par bouffon3000
xpatval Posté 18 Septembre 2005 Posté 18 Septembre 2005 Mais je veus que les matchs s'affiche dans les autres rubriques mais que juste dans la page "album.php" certain ne s'affiche pas... <{POST_SNAPBACK}> Peux-tu être plus clair ? xpatval
Boo2M0rs0 Posté 18 Septembre 2005 Posté 18 Septembre 2005 Comme l'explique Light_at_the_end il faut utiliser une clause WHERE. Mais pour savoir ce qu'il faut mettre dans cette clause, il faut déjà avoir une idée des critères qui vont determiner si tel ou tel match sera affiché ou pas !
bouffon3000 Posté 18 Septembre 2005 Auteur Posté 18 Septembre 2005 Enfait, ce que j'aimerai c'est que les matchs pour lesquels aucune photos n'a été prise ne s'affiche pas. Sans pour autant les suprimer de la base de données...
xpatval Posté 18 Septembre 2005 Posté 18 Septembre 2005 Soit comme indiqué, avec une clause where, soit tu testes la valeur retournée par ton champ "image". Si vide, ou égal à 0, on n'affiche pas, si non-vide, ou égal à 1, on affiche. xpatval
bouffon3000 Posté 18 Septembre 2005 Auteur Posté 18 Septembre 2005 Et je place ça où et comment ? dsl, vous l'aurez certainement remarqué mais avec mysql je suis vraiment un noob... voici mon script : <?php if (empty($folder)==true) { print ("Album photos de la saison 2003 2004"); } else { $match_info=match_info($folder); $mat=mysql_fetch_object($match_info); $mt_id=$mat->MT_ID; $date=convert_date($mat->MA_DATE); $type=type($mt_id); $ty=mysql_fetch_object($type); $mt_name=$ty->MT_NAME; $equ=equipes($folder); while($equipes=mysql_fetch_object($equ)) { if (empty($equipe_1)==true) { $te_id_1=$equipes->TE_ID; $nom=mysql_fetch_object(nom_equipe($te_id_1)); $equipe_1=$nom->TE_NAME; } else { $te_id_2=$equipes->TE_ID; $nom=mysql_fetch_object(nom_equipe($te_id_2)); $equipe_2=$nom->TE_NAME; } } $rencontre=$equipe_1." - ".$equipe_2; print ("$mt_name $rencontre du $date"); } ?> </font></div></td> </tr> </table></td> </tr> <tr> <td height="85"></td> <td width="11"> </td> <td width="675" rowspan="3" valign="top"><table width="98%" border="0" cellpadding="0" cellspacing="0"> <!--DWLayoutTable--> <tr> <td width="675" height="541" align="center" valign="top"><br> <?phpif (empty($folder)==true){$i=0;// liste des matchsprint ("<table width=\"95%\" border=\"0\" bordercolor=\"#000000\"> <tr class=\"base\"> <td width=\"15%\" align=\"center\"><b>Date</b></td> <td width=\"50%\" align=\"center\"><b>Match</b></td> <td width=\"15%\" align=\"center\"><b>Ligue</b></td> <td width=\"15%\" align=\"center\"> </td> </tr>");$ma=matchs_photo();while ($matchs=mysql_fetch_object($ma)) { $ma_id=$matchs->MA_ID; $ma_date=$matchs->MA_DATE; $ma_time=convert_heure($matchs->MA_TIME); $mt_id=$matchs->MT_ID; $ca_id=$matchs->CA_ID; $date=convert_date($ma_date); $ligue=ligue($ca_id); $ca=mysql_fetch_object($ligue); $ca_name=$ca->CA_NAME; $type=type($mt_id); $ty=mysql_fetch_object($type); $mt_name=$ty->MT_NAME; $equ=equipes($ma_id); while($equipes=mysql_fetch_object($equ)) { if (empty($equipe_1)==true) { $te_id_1=$equipes->TE_ID; $nom=mysql_fetch_object(nom_equipe($te_id_1)); $equipe_1=$nom->TE_NAME; } else { $te_id_2=$equipes->TE_ID; $nom=mysql_fetch_object(nom_equipe($te_id_2)); $equipe_2=$nom->TE_NAME; } } $rencontre=$equipe_1." - ".$equipe_2; $equipe_1=""; $equipe_2=""; $checked=check_date($ma_date); if ($checked<>1)// 1 pour qu'il affiche uniquement les matchs qui on eut lieu { if ($i==0) { print ("<tr class=\"base\" bgcolor=\"#FFFF99\">"); $i=1; } else { print ("<tr class=\"base\">"); $i=0; } print (" <td align=\"center\">$date</td> <td>$mt_name $rencontre </td> <td align=\"center\">$ca_name</td> <td align=\"center\"><a href=\"album.php?folder=$ma_id\" class=\"menu\">> > Photos</a></td> </tr>"); } }print ("</table>");}else{print ("<a href=\"album.php\" class=\"menu\"><b>: : : Liste des albums : : :</b></a>");echo $currentAlbum->buildBody();}?>
Anonymus Posté 19 Septembre 2005 Posté 19 Septembre 2005 Je dirais : Au lieu de : if ($checked<>1)// 1 pour qu'il affiche uniquement les matchs qui on eut lieu Mettre : if (($checked<>1)&&!empty($ma_id))// 1 pour qu'il affiche uniquement les matchs qui on eut lieu et qui ont des photos. ps : Tu auras remarqué la taille de ton code, lors de l'utilisation de la balise codebox
bouffon3000 Posté 22 Septembre 2005 Auteur Posté 22 Septembre 2005 ok merci je crois que cette fois ça marche, je finis les tests et je vous en donne des nouvelles
bouffon3000 Posté 22 Septembre 2005 Auteur Posté 22 Septembre 2005 euh ça ne marche pas.... La preuve : www.avli.ch/album.php Le premier matchs n'a pas de photos et pourtant il s'affiche quand même...
Anonymus Posté 22 Septembre 2005 Posté 22 Septembre 2005 Oui.. Cela vient peut être du fait que, bien qu'il n'y ait aucune photo, il y ait tout de même une valeur par défaut (style '0'), qui fasse que le lien s'affiche. Le test est clair : Si le champ est vide, alors ...etc. Autrement dit, s'il y a, ne serait ce, qu'un espace, alors le test n'est pas confirmé.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant