PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 10-02-2010 20:02:02

lanam
Membre
Inscription : 10-02-2010
Messages : 4

probleme pour mettre le resultat de ma table sur 3 colonnes

bonjour,

j'ai un ou plutôt 2 problèmes dans mon code et je n'arrive pas a les résoudre.
Je veux que mes categories s'affichent comme ça :
film.gif
$cat_1['photo_noir']
film.gif
$cat_1['titre']
le tout sur 3 colonnes et autant de fois qu'il y a de ligne dans ma table Mysql.

voici le code de mon tableau :


<table border="0">
 <?php
  while($cat_1=mysql_Fetch_array($resultat)) { ?>
<tr>
<td align="center"><img src="images/film.gif"></td>

</tr>

<tr>
<td align="center"><a href="animal/animal.htm"><img src="images/<?php echo $cat_1['photo_noir']; ?>"  onMouseOver=this.src="images/<?php echo $cat_1['photo_couleur']; ?>"  onMouseOut=this.src="images/<?php echo $cat_1['photo_noir']; ?>" ></a></td>
</tr>

<tr>
<td align="center"><img src="images/film.gif"></td>

</tr>

<tr>
<td align="center"><i><b><?php echo $cat_1['titre']; ?></b></i></td>

</tr>
 <?php } ?>
</table>
 

les photos et le texte s'affiche donc il est bien recupéré dans la base, mais pas la premiere ligne de ma table (c'est mon deuxieme probleme) et ils s'affichent les un en dessous des autres. Pouvez-vous m'aider?

Hors ligne

#2 10-02-2010 20:13:30

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : probleme pour mettre le resultat de ma table sur 3 colonnes

Saluton,
Il faudrait commencer par apprendre à coder proprement le HTML.
A une balise ouvrante <td> doit toujours correspondre une balise fermante </td>.
Et je ne te parle même pas des structures <thead></thead> et <tbody></tbody>
Ensuite si tu utilises les index associatifs de $resultat, autant passer par mysql_fetch_assoc()
Par ailleurs les attributs align="center" sont largement obsolètes, il serait temps de se mettre aux feuilles de style CSS.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 11-02-2010 13:29:27

lanam
Membre
Inscription : 10-02-2010
Messages : 4

Re : probleme pour mettre le resultat de ma table sur 3 colonnes

j'ai repris mon code  et  j'ai trouvé une solution qui n'est peut-être pas la meilleure vu que je débute en codage. voici mon code:


<?php
require_once("connexionMysql.inc.php");
$requete="SELECT * FROM cat_1 ";
$resultat=mysql_query($requete);
$cat_1=mysql_Fetch_array($resultat);

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/url]">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans nom</title>
</head>

<table border="0" align="center">
<?php

for($lig= 1; $lig>0 ; $lig--  )
{

echo"<tr>"; ?>

    <?php for($col=4 ; $col>0 ; $col--  )
      {
       while($cat_1=mysql_Fetch_array($resultat)) {
     
      echo "<td align=\"center\">" ;?>
       
        <img src="images/film.gif"> <br />
  <a href="<?php echo $cat_1['categories']; ?>.htm"><img src="images/<?php echo $cat_1['photo_noir']; ?>"  onMouseOver=this.src="images/<?php echo $cat_1['photo_couleur']; ?>" onMouseOut=this.src="images/<?php echo $cat_1['photo_noir']; ?>" ></a><br />
  <img src="images/film.gif"><br />
  <i><b><?php echo $cat_1['titre']; ?></b></i><br>
      <?php
      echo"</td>";
      }
      }

echo"</tr>";
}

?>
</table>
 

Je sais mon code est simpliste mais comme je l'ai dit, je débute.
Quand à mes <td> ils sont tous fermés par des </td> en fin de  lignes (comme precedament).
Je veux juste savoir, comment faire pour que le nombre de ligne dans mon tableau s'agrandisse en fonction du nombre d'entrer de mon tableau?
Merci de me répondre avec une réponse qui me fait avancé.

Hors ligne

#4 11-02-2010 13:34:46

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : probleme pour mettre le resultat de ma table sur 3 colonnes

en mettant <tr>....</tr>  à l'intérieur de la boucle while et non à l'extérieur.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#5 11-02-2010 15:30:47

lanam
Membre
Inscription : 10-02-2010
Messages : 4

Re : probleme pour mettre le resultat de ma table sur 3 colonnes

Merci pour ta réponse, mais ça ne fonctionne pas. Il me répète les infos de la première cellule 4 fois sur la ligne et quand il change de ligne  il écrit les infos suivante qu'il répète 4 fois aussi.
Si tu as une autre idée, n'hésite pas, je continue a chercher.

Hors ligne

#6 11-02-2010 16:25:33

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : probleme pour mettre le resultat de ma table sur 3 colonnes

salut,

vire les <br />
la structure html n'est pas correcte.

si tu doit avoir trois colonne par ligne => <tr><td>case 1</td><td>case 2</td><td>case 3</td></tr>

c'est ce que dit MK, il te faut cette structure dans la boucle while, et tu met tes donnée au bon endroit dedans.

le code devrait plutot ressembler à sa


   <?php
      require_once("connexionMysql.inc.php");
      $requete="SELECT * FROM cat_1 "; // <= l'étoile c'est la mal !!
      $resultat=mysql_query($requete);
      $cat_1=mysql_Fetch_array($resultat);
      ?>
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/url]">

      <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      <title>Document sans nom</title>

      </head>
      <table border="0" align="center">
     <?php
      for($lig= 1; $lig>0 ; $lig--  ){
          echo'<tr>';
          while($cat_1=mysql_Fetch_array($resultat)) {
              echo "<td align=\"center\">" ;
              ?>
              <img src="images/film.gif" /> </td><td>
              <a href="<?php echo $cat_1['categories']; ?>.htm">
                  <img src="images/<?php echo $cat_1['photo_noir']; ?>"  
                       onMouseOver=this.src="images/<?php echo $cat_1['photo_couleur']; ?>"
                       onMouseOut=this.src="images/<?php echo $cat_1['photo_noir']; ?>" />
              </a>
              </td>
              <td>
              <img src="images/film.gif" /></td>
              <td>
               <i><b><?php echo $cat_1['titre']; ?></b></i>
              </td>
                <?php
            }
            echo '</tr>'
      }
?>
 </table>
 

remarque, le doctype xhtml c'est bien, maintenant opur le respecter il faut virer :
- balise i
- balise b
- le align=
- les onmousse trcu qui mette le brien dans l'image
- Ne pas oublier le / dans img et br

Remplacer ce que tu va enlever par des css.
Pour t'en convraincre http://csszengarden.com/ (joue avec les différents design pour te convaincre l'utilitée des CSS.
Pour apprendre css http://www.alsacreations.com/tutoriels/

@+


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

#7 12-02-2010 21:35:38

lanam
Membre
Inscription : 10-02-2010
Messages : 4

Re : probleme pour mettre le resultat de ma table sur 3 colonnes

Merci a tous ceux qui m'ont répondu, j'ai résolu mon problème. Voici mon code pour si ça intéresse quelqu'un.


<?php
require_once("connexionMysql.inc.php");
$requete="SELECT photo_couleur,photo_noir,titre,categories FROM cat_2";
$resultat=mysql_query($requete);

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/url]">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans nom</title>
</head>


<body bgcolor="#000000" text="#FFFFFF" link="#000000" alink="#000000" vlink="#000000">

<p align=center >

<?php
$c=0;

?>
<table border="0" align="center">
<?php
echo"<tr>";
while($cat_2=mysql_Fetch_array($resultat))
{
      if($c<5)
      {
      echo"<td align=\"center\">";         
       $c++;       
       ?>      
        <img src="images/film.gif"/> <br/>
        <a href="<?php echo $cat_2['categories']; ?>.php"><img src="images/<?php echo $cat_2['photo_noir']; ?>"  onMouseOver=this.src="images/<?php echo $cat_2['photo_couleur']; ?>" onMouseOut=this.src="images/<?php echo $cat_2['photo_noir']; ?>" ></a><br />
        <img src="images/film.gif"/><br />
        <i><b><?php echo $cat_2['titre']; ?></b></i><br/>        
      <?php      
      echo"</td>";
      }
      else
      {
      echo"</tr>";?> </table> <table border="0" align="center">
      <?php
      echo"<tr>";
      $c=0;
      echo"<td align=\"center\">";         
       $c++;       
       ?>      
        <img src="images/film.gif"/> <br/>
        <a href="<?php echo $cat_2['categories']; ?>.php"><img src="images/<?php echo $cat_2['photo_noir']; ?>"  onMouseOver=this.src="images/<?php echo $cat_2['photo_couleur']; ?>" onMouseOut=this.src="images/<?php echo $cat_2['photo_noir']; ?>" /></a><br />
        <img src="images/film.gif"/><br />
        <i><b><?php echo $cat_2['titre']; ?></b></i><br/>        
      <?php      
      echo"</td>";
      }
}
    echo"</tr>";
?>
</table>

</body>
</html>
 
 

Hors ligne

#8 13-02-2010 03:55:04

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : probleme pour mettre le resultat de ma table sur 3 colonnes

Qui pourrait être intéressé par une chose aussi immonde ?

Comme exemple de ce qu'il ne faut pas faire, peut-être...


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

Pied de page des forums