Tableau 2 enregistrement sur une ligne puis nouvelle ligne

Résolu
math567
Messages postés
13
Date d'inscription
mardi 6 février 2007
Statut
Membre
Dernière intervention
14 novembre 2009
- 15 oct. 2009 à 17:35
neigedhiver
Messages postés
2480
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
- 15 oct. 2009 à 20:03
Bonjour, je fais appel à votre bonté.
Je bloque sur un de mes script que voici:
   $query 'SELECT * FROM t_etablissement WHERE cat_id 1';
          $result = mysql_query($query)
          or die ('Impossible d\'exécuter la requête');
          $row = mysql_fetch_array($result);
          $nb_records = mysql_num_rows($result);
          $nb_ligne = ceil($nb_records/2);
          $k = 0;
            echo '';
for ($i = 1; $i <= $nb_ligne; $i++)
{
echo '----
';
for ($j = 1; $j <= 2; $j++)
{
if($k >= $nb_records)
{echo', ';}
else
{
echo',

<li style="padding-left:5px;">'.$row['nom_etablissement'].'
</li>
<li style="padding-left:5px;">'.$row['adresse_etablissement'].'</li>

';
$query_type = 'SELECT * FROM t_etablissement
LEFT JOIN t_souscat ON t_etablissement.souscat_id = t_souscat.id_souscat
WHERE t_etablissement.cat_id = 1';
$result_type = mysql_query($query_type)
or die ('Impossible d\'exécuter la requête');
$row_type = mysql_fetch_array($result_type);
echo'<li style="padding-left:5px;">Type: '.$row_type['nom_souscat'].'</li>
, ';
$k++;
}
}
echo '';
}
            echo '
';

J'aimerai avoir un tableau de ce genre là:
img_enr1, data_enr1, img_enr2, data_enr2,

...




Avec mon script, J'arrive plutôt à un tableau comme:
img_enr1, data_enr1, img_enr1, data_enr1,

...



Il faut sans doute bouclé sur chaque enregistrement mais je ne vois pas du tout ou mettre cette boucle...
Merci d'avance pour votre aide.

1 réponse

neigedhiver
Messages postés
2480
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
18
15 oct. 2009 à 20:03
Salut,

Effectivement, il faut boucler sur chaque ligne du résultat. Il faut considérer que chaque ligne va aller dans une cellule de ton tableau. Il faut donc commencer la boucle juste avant le <td> et la finir jsute après le </td>
Mais comme tu veux 2 éléments par ligne, il faut que tu rajoutes </tr><tr> une fois sur deux. Pour ça, il faut une variable que tu initialises à 0, puis que tu incrémentes au début de ta boucle : il te suffit de vérifier si la valeur est paire, auquel cas, tu passe à une nouvelle ligne en fermant la ligne courante et en ouvrant une autre :
Un truc dans ce genre :

echo '';
$i = 0;while (FALSE !($row mysql_fetch_array($result))) {
// Affichage des données de cet enregistrement
if (0 == $i % 2) {
echo '----
';
}
}
echo '
';


Voilà en gros sur le principe, je te laisse adapter plus précisément à ton cas.

--
Neige

N'hésitez pas à lire la doc
3