8797 sujets

Développement web côté serveur, CMS

Bonsoir,

J'aimerais voir afficher en deux colonnes le resultat d'une requete; mais en utilisatant des DIV au lieu de tableau comme d'habitude.

J'ai ecris ce code, mais sans pas encore arriver :

<?php
	// categories en deux colonnes avec DIV

	//pour chaque categories meres trouvees on les affiche avec leurs X premieres sous-cat
	$i=0; $d1=0 ; $d2=0;
    $r = mysql_nums_row($res_cat);
    echo "resultat r = ".$r."<br />";

	//while ($i<= (mysql_fetch_nums_rows/2))
	while ($une_categorie = mysql_fetch_array($res_cat,MYSQL_ASSOC))
	{
		if ($i%2 == 0) //DIV de gauche et donc nouvelle ligne
		{
			if ($d1==0) // Voir si DIV gauche est deja	ouverte $d1=1 => DIV de gauche ouverte
			{
				//echo "ligne left";
				echo "<div class=\"left_side\">\n";
				$d1=1;
			}
			echo "<p><b><img src=\"images/arrow.gif\" alt=\">\" /><a class=\"title\" href=\"#\">Arts</a></b><br />\n";
			echo "<a href=\"#\">Music</a>, <a href=\"#\">Television</a>, <a href=\"#\">Movies</a>...</p>";

			if ($i == ($r/2))
			{
				echo "</div>\n"; // On ferme le Div gauche
			}
			$i++;
		}
		else // $i%2 est faut
			{
			if ($d2==0)
				{
				echo "<div class=\"right_side\">\n";
				$d2=1;
			}
			echo "<p><b><img src=\"images/arrow.gif\" alt=\">\" /><a class=\"title\" href=\"#\">Arts</a></b><br />\n";
			echo "<a href=\"#\">Music</a>, <a href=\"#\">Television</a>, <a href=\"#\">Movies</a>...</p>";

			if ($i > ($r/2))
				{
				echo "</div>\n"; // On ferme le Div droite
			}
			$i++;

		}
	} // Fin while
?>


Des propositions svp ?

Merci d'avance Smiley smile
apt a écrit :
Des propositions svp ?


Oui, en voilà une, la plus simple !
Pour t'expliquer, je met les styles dans les balises, mais tu peux les mettre dans une css et bien évidement complèter avec un width pas exemple ou des margin, padding...


<?php
$i=0;
while($data=mysql_fetch_assoc($res))
{
echo '<div style="float:left;">
<img src="images/arrow.gif" alt="pouet" />
<br />
<a href="pim">Arts</a>
</div>';
if($i%2==0){ echo '<br style="clear:both;" />'; }
$i++;
}
?>
Bonjour,
Je me débat avec le même problème, j'ai tenté de présenter en 2 colonnes le résultat d'une requête. En tableau ou CSS, je ne réussis pas l'adaptation. Voici le code utilisé, qui affiche le résultat de la requête ligne à ligne:

print "<div id='membres'>";
//----Affichage de la liste des membres par catégories (array)

   for ($ar = 0 ; $ar < count($table_iDmembresArtistes); $ar=$ar+3){
   print "<span><a href='index.php?id=$getId&mid=". $table_iDmembresArtistes[$ar+2]."'>".$table_iDmembresArtistes[$ar].", " . $table_iDmembresArtistes[$ar+1]. "</a></span> <br /> ";
   }
   print "</div>";


Je salive d'avance pour toute proposition!
Ceci dit, ma «démonstration» était prématurée parce que oui, j'aimerais bien avoir de l'aide pour obtenir l'affichage sur 2 colonnes des résultats de la requête exposée dans le code précité (1 février - 01:27). J'ai essayé d'adapter plusieurs solutions, mais je n'y arrive pas.
Lapin a écrit :
Ceci dit, ma «démonstration» était prématurée parce que oui, j'aimerais bien avoir de l'aide pour obtenir l'affichage sur 2 colonnes des résultats de la requête exposée dans le code précité (1 février - 01:27).

Et le code que j'ai donné, il fait quoi à ton avis ? Smiley biggrin

Lapin a écrit :
J'ai essayé d'adapter plusieurs solutions, mais je n'y arrive pas.

Tout est dans l'exemple qui fait exactement ce que tu as besoin.
C'est pas grave, je t'en donne un autre.

<?php
for($i=1;$i<=24;$i++)
{
echo $i,'  ';
if($i%2==0) echo '<br />';
}
?>


Si je peux me permettre un conseil :
a écrit :
print "<span><a href='index.php?id=$getId&mid=". $table_iDmembresArtistes[$ar+2]

utilises :
echo plutôt que print()
utilises des ' plutôt que des " pour l'affichage de chaines
et du coup :
utilises des " plutot que des ' pour entourer tes attributs html
ce qui donnera :

echo  '<span><a href="index.php?id=$getId&mid='. $table_iDmembresArtistes[$ar+2].........'">Pouet</a>';
a écrit :
Bison a écrit :
utilises :
echo plutôt que print()
utilises des ' plutôt que des " pour l'affichage de chaines
et du coup :
utilises des " plutot que des ' pour entourer tes attributs html

Judicieux conseils. J'ai fait les adaptations suggérées. Pour le code, je me lance!
salut;
le code de bison marche pour moi, cependant comment faire pour que les données de la seconde colonne soient affichées correctement de manière verticale ?
Merci
yaz