Tableau 2 enregistrement sur une ligne puis nouvelle ligne [Résolu]

Messages postés
13
Date d'inscription
mardi 6 février 2007
Dernière intervention
14 novembre 2009
- - Dernière réponse : neigedhiver
Messages postés
2492
Date d'inscription
jeudi 30 novembre 2006
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.
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
Messages postés
2492
Date d'inscription
jeudi 30 novembre 2006
Dernière intervention
14 janvier 2011
13
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 117 internautes nous ont dit merci ce mois-ci

Commenter la réponse de neigedhiver

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.