MySQL requete / affichage d'images
Schiff
-
burnedsyn Messages postés 174 Statut Membre -
burnedsyn Messages postés 174 Statut Membre -
Bonjour,
j'ai créée un site internet pour montrer les quelques trucs que je fais sous photoshop.
J'utilise mySQL et le PHP pour faire le site.
J'utilise une requete mySQL pour selectionner et afficher les images.
Exemple pour les avatars:
$req = "SELECT * FROM avatars order by nom asc";
(...)
echo '<tr><td align=center><img src="./Avatars/'.$donnee['url'].'" alt="'.$donnee['nom'].'" title="'.$donnee['nom'].'" border=0 ></td><td> </td></tr>';
Probleme est que j'aimerais afficher 2 images par ligne (<tr>) au lieu d'une seule.
Exemple:
<tr><td> image 1 </td><td> image 2 </td></tr>
<tr><td> image 3 </td><td> image 4 </td></tr>
Je vois pas comment faire. Mettre le meme code dans l'autre <td> ne ferait qu'afficher la meme image deux fois.
Merci d'avance.
j'ai créée un site internet pour montrer les quelques trucs que je fais sous photoshop.
J'utilise mySQL et le PHP pour faire le site.
J'utilise une requete mySQL pour selectionner et afficher les images.
Exemple pour les avatars:
$req = "SELECT * FROM avatars order by nom asc";
(...)
echo '<tr><td align=center><img src="./Avatars/'.$donnee['url'].'" alt="'.$donnee['nom'].'" title="'.$donnee['nom'].'" border=0 ></td><td> </td></tr>';
Probleme est que j'aimerais afficher 2 images par ligne (<tr>) au lieu d'une seule.
Exemple:
<tr><td> image 1 </td><td> image 2 </td></tr>
<tr><td> image 3 </td><td> image 4 </td></tr>
Je vois pas comment faire. Mettre le meme code dans l'autre <td> ne ferait qu'afficher la meme image deux fois.
Merci d'avance.
Configuration: Windows XP Internet Explorer 7.0
9 réponses
-
un code du style peut t'y aider je ne sais pas si c'est la meilleur manière de proceder mais je n'ai jamais eu de soucis avec cette manière de voir les choses.
$req = "SELECT * FROM avatars order by nom asc";
$a=0;
$res=mysql_query($req);
//declaration de ta tablehtml
while (mysql_fetch_array($res))
{
if($a>1) $a=0;
switch($a)
{
case '0':
echo '<tr><td align=center><img src="./Avatars/'.$donnee['url'].'" alt="'.$donnee['nom'].'" title="'.$donnee['nom'].'" border=0 ></td>';
$a++;
break;
case '1' :
echo 'td a>lign=center><img src="./Avatars/'.$donnee['url'].'" alt="'.$donnee['nom'].'" title="'.$donnee['nom'].'" border=0 ></td></tr>';
$a++;
break;
}//fin case
}//fin while
//fermeture de la tablehtml -
Ca ne marche pas.
J'ai essayé, j'ai fai des echo $a pour verifier sa valeur et ca retournait $a=1 pour case 0, $a=2 pour case 1.
J'ai donc essayé en rajoutant un case 2, mais ca n'a pas marché.
Ca ne changeait rien a l'affichage actuel des avatars.
L'url de la page est http://myperso.net/index.php?page=avatars
Merci.
PS: Schiff c'etait moi, j'avais pas encore enregistré de compte. -
essayes ce code pour te convaincre que cela dois fonctionner :
<?php $a=0; for($i=0;$i<100;$i++) { if($a>1)$a=0; switch($a) { case '0': echo("ici à $a <br>"); $a++; break; case '1': echo("ici a $a <br>"); $a++; break; } } ?>
met ton code ici stp car sans cela je ne vois pas bien comment t'aider aussi ;)
il est normal qu'il t'affiche 1 et 2 si tu as placé ton echo après que l'instruction $a++; ai été effectuée
si tu veux je suis sur msn en ce moment magicbizness@hotmail.com -
Non j'avais placé le $a++ en fin du case.
Voici le code de la page avatars:
<div class="style">
<?
include(******);
if(isset($_GET['limite'])){
$limite=$_GET['limite'];
}
else{
$limite=0;
}
// Nombre de signatures afficher par page
$nombre = 5;
$req = "SELECT * FROM avatars order by nom asc";
$res = mysql_query($req);
$total = mysql_num_rows($res);
// On calcul les limite pour les liens suivant et precedents
$limiteSuivante = $limite + $nombre;
$limitePrecedente = $limite - $nombre;
echo '<table>';
$req = "SELECT * FROM avatars order by nom asc limit ".$limite.",".$nombre;
$res = mysql_query($req);
while ( $donnee = mysql_fetch_assoc($res) ){
echo '<tr><td align=center><img src="./Avatars/'.$donnee['url'].'" alt="'.$donnee['nom'].'" title="'.$donnee['nom'].'" border=0 ></td><td> </td></tr>';
echo '<tr><td colspan=2> </td></tr>';
echo '<tr><td colspan=2><hr></td></tr>';
echo '<tr><td colspan=2> </td></tr>';
}
echo '<tr><td colspan="2" align=right>Page ';
$nb_page = $total/$nombre;
$i = 0;
for( $i = 0 ; $i < $nb_page; $i++ ){
if( (($i*$nombre) == $limite) ) echo ($i+1).' ';
else echo '<a href="index.php?page=avatars&limite='.$i*$nombre.'">'.($i+1).'</a> ';
}
echo '</td></tr>';
echo '</table>';
?>
</div> -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
aussi je viens de remarquer as tu corriger dans le case '1'
echo 'td a>lign=center><img src="./Avatars/'.$donnee['url'].'" alt="'.$donnee['nom'].'" title="'.$donnee['nom'].'" border=0 ></td></tr>';
regarde juste après echo il manque < après l'apostrophe. -
Oui, j'avais pas fait de copier / coller. J'avais taper les commandes a executer et j'ai verifier plusieurs fois.
-
> $req = "SELECT * FROM avatars order by nom asc limit ".$limite.",".$nombre;
> $res = mysql_query($req);
>
>
/*ici ajoute */
$a=0;
while ( $donnee = mysql_fetch_assoc($res) ){
//aussi si je peux te donner un conseil tes echo fais les comme ceci...
if ($a>1) $a=0;
switch($a)
{
case '0':
echo ("<tr><td align=\"center\"><img src=\"./Avatars/".$donnee['url']."\" alt=\"".$donnee['nom']."\" title=\"".$donnee['nom']."\" border=\"0\"></td>");
//si tu veux echo ($a);
$a++;
break;
case '1':
echo ("<td align=\"center\"><img src=\"./Avatars/".$donnee['url']."\" alt=\"".$donnee['nom']."\" title=\"".$donnee['nom']."\" border=\"0\"></td></tr>");
//si tu veux echo ($a);
$a++;
break;
}
/*
encien code
echo '<tr><td align=center><img src="./Avatars/'.$donnee['url'].'" alt="'.$donnee['nom'].'" title="'.$donnee['nom'].'" border=0></td><td> </td></tr>';
echo '<tr><td colspan=2> </td></tr>';
echo '<tr><td colspan=2><hr></td></tr>';
echo '<tr><td colspan=2> </td></tr>';
*/
}
>
>
> echo '<tr><td colspan="2" align=right>Page ';
>
>
> $nb_page = $total/$nombre;
>
> -
Ok en fait ca marche, il semble y avoir un probleme avec le
echo '<tr><td colspan=2> </td></tr>';
echo '<tr><td colspan=2><hr></td></tr>';
echo '<tr><td colspan=2> </td></tr>';
Vais essayer de trouver ce que c'est.
Merci pour l'aide. -
essayes echo("<tr colspan=\"2\"><td> </td></tr>
et de rien si jamais tu as encore des question n'hésite pas tu as mon mail plus haut