Page 1 sur 1

Affichage des résultats en alterné...

Posté : 15 févr. 2006, 14:24
par Pierre_invité
Bonjour à vous tous.

Suite à une contrainte graphique, je dois afficher des résultats de recherche en alterné...

Je m'explique :

Je fais une recherche dans une table (pas de soucis !), mais je dois les afficher de façon alterné,
Dans un tableau (HTML) dans deux cellules par ligne.
La première ligne doit comporter :
Première cellule : la photo de la personne
Deuxième cellule : Les coordonnées de la personne

La deuxième ligne doit comporter :
Première cellule : Les coordonnées de la personne
Deuxième cellule : la photo de la personne

La troisième ligne doit comporter :
Première cellule : la photo de la personne
Deuxième cellule : Les coordonnées de la personne

etc...

Est ce possible ?
Comment doit procéder
Merci de votre aide

Pierre.

Posté : 15 févr. 2006, 14:28
par fab
http://expreg.com/rex_article.php?art=alternace_coul

c'est un article sur les couleurs mais c'est le meme principe sauf qu'ici a la place de changer les couleurs tu devras changer la disposition de tes TD

Posté : 15 févr. 2006, 16:01
par Pierre_invité
Fab
Merci de ta réponse je vais y jeter un oeil...

Pierre.

Posté : 15 févr. 2006, 19:20
par Pierre_invité
Fab,
J'ai retourné le code, que tu m'as proposé de regarder, dans tous les sens...
Je n'y arrive pas...

J'ai essayé (ce qui donnait le meilleurs résultat!) :
$affich = array('image();', 'coordonnes();'); 
$nb = count($affich); 
$i = 0; 

while ($enr01 = mysql_fetch_array($resultat01)) 
{
echo '<tr>';
echo "<td>";
echo $affich[$i % $nb];
echo "</td><td>";
echo $affich[($i+1) % $nb];  // "+1" sinon il affiche la même chose que dans la cellule précédente...
echo "</td>";
echo "</tr>";
}
$i++
Il affiche bien en altenance "image()" et "coordonnees()"
mais comme "image()" et "coordonnees()" font référence à des fonctions et qu'à ce niveau... le code n'est pas interpreté....

et donc ca affiche :

Code : Tout sélectionner

image(); coordonnes(); coordonnes(); image(); image(); coordonnes(); coordonnes(); image();
Je ne sais pas comment m'y prendre...
Si tu avais une idée... merci de mettre sur la voie.

Pierre.

Posté : 15 févr. 2006, 21:18
par Cyrano
Le principe de base, c'est l'utilisation d'un modulo : pour faire une ligne sur deux, on fera un modulo sur 2, ce qui donne schématiquement la chose suivante :
<table summary="">
<?php
/* Code de requêtes... */
/* On crée le point de départ: */
$p = 0;
while ($enr01 = mysql_fetch_array($resultat01))
{
    if($p % 2)
    {
?>
  <tr>
    <td>Image</td>
    <td>Coordonnées</td>
  </tr>
<?php
    }
    else
    {
?>
  <tr>
    <td>Coordonnées</td>
    <td>Image</td>
  </tr>
<?php
    }
    /* On incrémente le repère servant à alterner les lignes */
    $p++;
}
?>
</table>
En clair, si le pointeur $p est pair, on met l'image à gauche, les coordonnées à droite, sinon, on fait l'inverse.

Posté : 15 févr. 2006, 21:21
par fab
on va faire simple
<?php
$row = "paire"; // la premiere ligne sera paire
while(...)
{
?>
<tr>
  <td>Blabla</td>
  <td>Blabla 2</td>
</tr>
<?php 
if($row == "paire")
{
$row = "impaire"; // pour la prochaine fois
  ?>
<tr>
  <td>Photo</td>
  <td>Nom</td>
</tr>
<?php
}
else
{
  $row = "paire"; // pour la prochaine fois
?>
<tr>
  <td>Nom</td>
  <td>Photo</td>
</tr>
<?php
}
?>

Posté : 15 févr. 2006, 21:22
par fab
non je refuse Cyrano tu postes pas a ma place rho ! c'est quoi ces manieres :p