Aller au contenu

Comment ne pas afficher une info


Sujets conseillés

Posté

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..

Posté (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é par Light_at_the_end
Posté (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é par bouffon3000
Posté
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

Posté

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 ;) !

Posté

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

Posté

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>
           <?php
if (empty($folder)==true)
{
$i=0;
// liste des matchs
print ("<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();
}
?>

Posté

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 ;)

Posté

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é.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...