MySQL requete / affichage d'images

Schiff -  
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.
Configuration: Windows XP
Internet Explorer 7.0

9 réponses

  1. burnedsyn Messages postés 174 Statut Membre 16
     
    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
    0
  2. Dhomochevski Messages postés 4 Statut Membre
     
    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.
    0
  3. burnedsyn Messages postés 174 Statut Membre 16
     
    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
    0
  4. Dhomochevski Messages postés 4 Statut Membre
     
    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>&nbsp</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>
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. burnedsyn Messages postés 174 Statut Membre 16
     
    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.
    0
  7. Dhomochevski Messages postés 4 Statut Membre
     
    Oui, j'avais pas fait de copier / coller. J'avais taper les commandes a executer et j'ai verifier plusieurs fois.
    0
  8. burnedsyn Messages postés 174 Statut Membre 16
     
    > $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>&nbsp</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;
    >
    >
    0
  9. Dhomochevski Messages postés 4 Statut Membre
     
    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.
    0
  10. burnedsyn Messages postés 174 Statut Membre 16
     
    essayes echo("<tr colspan=\"2\"><td>&nbsp</td></tr>

    et de rien si jamais tu as encore des question n'hésite pas tu as mon mail plus haut
    0