IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

sortie de photo ligne + colonne [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 514
    Points : 107
    Points
    107
    Par défaut sortie de photo ligne + colonne
    Bonjour, j'ai un soucis pour afficher les photos?

    je fait un test var_dump à image_plus ok mais dans la boucle K rien, je comprends pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <?PHP
    include_once'function_mini.php';
     
    $NbrLigne = 4;
     
          $photo = $connection->prepare('SELECT * FROM photo_profil WHERE id_membre=:id_membre');
          $photo->execute(array(':id_membre'=>$detail));
    	  // ------------------------------------------------------- 
          // creation d'un seul array avec toutes les donnees
          $k=0;	  
    	  while($data = $photo->fetch()){
          $image_plus = $data['chemin'];
          $imge[$k] = $image_plus;
          $k++;
    }
     
    // -------------------------------------------------------
    // affichage
         if(!empty($imge[$k])){
          vignette('image_profil/'.$imge[$k].'',185, 135);
          redim('image_profil/'.$imge[$k].'', 600, 450);
             // -------------------------
             // DONNEES A AFFICHER dans la cellule
             $k = ($i+($j*$NbrLigne));
         ?>
          <a class="fancybox" rel="gallery1" href="<?php echo'MINI1image_profil/'.$imge[$k].''; ?>" title="">
          <img src="<?php echo'MINIimage_profil/'.$imge[$k].''; ?>" border="0" alt="" class="blanc" />
          <?PHP
     
       echo '<br/>';
     
             // -------------------------
          }else{
         echo '<img src="imdesign/no_photo.png" width="185" height="135" border="0" />';  
         }   
    ?>

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    avec ce test je n'est que une seule photo

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    <?PHP
    include_once'function_mini.php';
     
     
     
         echo'<div style="margin-left:auto;margin-right:auto;"><table style="width:100%;">
          <tr>
          <td>'; 
          $photo_1 = $connection->prepare('SELECT * FROM photo_profil WHERE id_membre=:id_membre');
          $photo_1->execute(array(':id_membre'=>$detail));
    	  $i=0;	
    	  if($data_1 = $photo_1->fetch(PDO::FETCH_OBJ)){	
    	  $im = $data_1->chemin;	
    	  if(!empty($im)){
          vignette('image_profil/'.$im.'',185, 135);
          redim('image_profil/'.$im.'', 600, 450);
          if( $i%4==3 ){
    	  ?>
          <a class="fancybox" rel="gallery1" href="<?php echo'MINI1image_profil/'.$im.''; ?>" title="">
          <img src="<?php echo'MINIimage_profil//'.$im.''; ?>" border="0" alt="" class="blanc" />
          <?php
          echo'<br /><br />';
          }else{
          ?>
          <a class="fancybox" rel="gallery1" href="<?php echo'MINI1image_profil/'.$im.''; ?>" title="">
          <img src="<?php echo'MINIimage_profil/'.$im.''; ?>" border="0" alt="" class="blanc" />
          <?php
          }
          $i++;
          }
          }else{
    	  echo '<img src="design/nophoto.jpg" width="185" height="135" border="0" />';  
    	  }	  
          echo'</td>
          </tr>
          </table></div>';
           ?>

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if($data_1 = $photo_1->fetch(PDO::FETCH_OBJ)){
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     while($data_1 = $photo_1->fetch(PDO::FETCH_OBJ)){
    A+.

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    Bonjour le premier est avec la boucle while et l'autre avec if le même résultat une seule photo sur 10

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    As tu vérifié en lançant la requête dans la base avec la valeur de id_membre?

    A+.

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    oui cela sort une seule photo et j'ai testé var_dump

  7. #7
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    bonjour cette versions ici j'arrive a sortir tout les photos mais elle sont sur une seule ligne?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    <?PHP
    include_once'function_mini.php';
     
         echo'<div style="margin-left:auto;margin-right:auto;"><table style="width:100%;">
          <tr>
          <td>'; 
          $requete_nombre_photo = $connection->prepare('SELECT COUNT(*) id_photo_profil FROM photo_profil  WHERE id_membre=:id_membre');
          if($requete_nombre_photo->execute(array(':id_membre'=>$detail))){
          $nbr_photo= $requete_nombre_photo->fetchColumn();
    	  	  $i=$nbr_photo;
          $photo = $connection->prepare('SELECT * FROM photo_profil WHERE id_membre=:id_membre');
          $photo->execute(array(':id_membre'=>$detail));  
          while($data = $photo->fetch(PDO::FETCH_OBJ)){	
          $im = $data->chemin;
     
          redim('image_profil/'.$im.'', 600, 450);
          if( $i%4==3 ){
    $im_src = ( !empty($im) )? ''.vignette('image_profil/'.$im.'',185, 135) : 'imdesign/no_photo.png';echo'<img src="'.$im_src.'" style="max-width:150px; max-height:100px;border:0" alt="" />';
     
          }else{
          ?>
          <a class="fancybox" rel="gallery1" href="<?php echo'MINI1image_profil/'.$im.''; ?>" title="">
          <img src="<?php echo'MINIimage_profil/'.$im.''; ?>" border="0" alt="" class="blanc" />
          <?php
          }
          $i++;
        }
    }	  
          echo'</td>
          </tr>
          </table></div>';
           ?>

  8. #8
    Invité
    Invité(e)
    Par défaut
    Vu le code, c'est normal*.




    * OK, j'explique :
    les balises <tr><td> sont en dehors de la boucle.
    Donc les images sont sont la même ligne (<tr>)
    Dernière modification par Invité ; 28/01/2017 à 15h33.

  9. #9
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    c'est un ancien code en mysql que j'essaie de faire passé en PDO mais j'avoue je suis perdu avec le PDO . j'avance avec vous et comprends de mieux en mieux. Merci a tous de votre aide

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Citation Envoyé par speedylol Voir le message
    ...j'ai testé var_dump
    Ca nous fait une belle jambe.....
    Surtout NE MONTRE PAS le résultat !
    On risquerait de trouver.... re-

    Jusqu'ici, tu n'as toujours PAS regarder - ni MONTRER - le CODE HTML GENERE* par :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
          <a class="fancybox" rel="gallery1" href="<?php echo'MINI1image_profil/'.$im.''; ?>" title="">
          <img src="<?php echo'MINIimage_profil/'.$im.''; ?>" border="0" alt="" class="blanc" />
    Ni expliqué pourquoi c'est tantôt "image_profil", tantôt "MINIimage_profil"...

    * CODE HTML GENERE :
    • soit "Ctrl"+"U",
    • soit clic droit -> "afficher le code source"



    Bref : on ne risque pas de pouvoir t'en dire plus....

  11. #11
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    bonsoir voilà j'ai repris un des mais ancien code qui lui fonction encore en local et que j'ai voulus faire passé en PDO la je rame complétement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <?PHP
     
         echo'<div style="margin-left:auto;margin-right:auto;"><table style="width:100%;">
          <tr>
          <td>'; 
          $select_photo=mysql_query("SELECT * FROM im_annonce WHERE id_gal='".$_SESSION['detail'] ."'") or die (mysql_error());
          $i=0;
    	  if($result = mysql_fetch_object($select_photo)){	
          $im = $select_photo->gal;
    	  if(!empty($im)){
          vignette('image_annonce/'.$im.'',185, 135);
          redim('image_annonce/'.$im.'', 600, 450);
          if( $i%4==3 ){
    	  ?>
          <a class="fancybox" rel="gallery1" href="<?php echo'MINI1image_annonce/'.$im.''; ?>" title="">
          <img src="<?php echo'MINIimage_annonce/'.$im.''; ?>" border="0" alt="" class="blanc" />
          <?php
          echo'<br /><br />';
          }else{
          ?>
          <a class="fancybox" rel="gallery1" href="<?php echo'MINI1image_annonce/'.$im.''; ?>" title="">
          <img src="<?php echo'MINIimage_annonce/'.$im.''; ?>" border="0" alt="" class="blanc" />
          <?php
          }
          $i++;
          }
          }else{
    	  echo '<img src="design/nophoto.jpg" width="185" height="135" border="0" />';  
    	  }	  
          echo'</td>
          </tr>
          </table></div>';
           ?>

  12. #12
    Membre régulier
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    Bonjour solutions voilà

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    <?php 
    $nbCols = 5; // nombre de colonnes du tableau 
    $cpt = 0; // compteur d'éléments 
    ?>
     
    <table> 
      <tr>
        <th style="width:<?php echo round(100/$nbCols);?>%;"></th> 
        <th style="width:<?php echo round(100/$nbCols);?>%;"></th> 
        <th style="width:<?php echo round(100/$nbCols);?>%;"></th> 
        <th style="width:<?php echo round(100/$nbCols);?>%;"></th>
        <th style="width:<?php echo round(100/$nbCols);?>%;"></th> 
      </tr>
    <?php
          $photo_1 = $connection->prepare('SELECT * FROM photo_profil WHERE id_membre=:id_membre');
          $photo_1->execute(array(':id_membre'=>$detail));
     
          while($data = $photo_1->fetch(PDO::FETCH_ASSOC)){ // parcours des résultats 
     
        // début d'une ligne 
        if ($cpt%$nbCols==0) // on divise le nb d'élément par le nb de colonnes. Si le reste est de 0 ... 
            echo '<tr>'; // ..., alors on est sur le premier élément d'une ligne 
     
     
        // On place chaque élément dans une cellule du tableau 
        echo '<td>';
          vignette('image_profil/'.$data['chemin'].'',185, 135);
          redim('image_profil/'.$data['chemin'].'', 600, 450);	
    	  ?>
          <a class="fancybox" rel="gallery1" href="<?php echo'MINI1image_profil/'.$data['chemin'].''; ?>" title="">
          <img src="<?php echo'MINIimage_profil/'.$data['chemin'].''; ?>" border="0" alt="" class="blanc" />
          <?PHP // affichage de tout ce qu'on veut dans la cellule 
        echo '</td>'; 
     
     
        // fin d'une ligne
        if ($cpt%$nbCols==($nbCols-1)) // on divise le nb d'élément par le nb de colonnes. Si le reste est de ($nbCols-1) ... 
            echo '</tr>'; // ..., on est sur le dernier élément d'une ligne
     
        $cpt++; // on incrémente le compteur pour savoir où on en est
    } 
     
    // Au cas où ...
    if ($cpt!=0 && $cpt%$nbCols!=0) { // S'il n'y a pas eu assez de cellules dans la boucle pour finir la ligne ...
        echo '<td colspan="'.($nbCols - ($cpt%$nbCols) ).'">&nbsp;</td>'; // ... on complète avec une cellule vide de la bonne taille...
        echo '</tr>'; // ... et on ferme la ligne
    }
     
    ?>
     
    </table>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Coller en conservant la mise en forme ligne/colonne
    Par lucarno dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/04/2007, 12h52
  2. [VB6] Manipuler des cellules/lignes/colonne d'un Flexgrid
    Par zako dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 08/06/2006, 18h34
  3. [VBA-E]refedit nb ligne colonnes
    Par attavus dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/05/2006, 12h49
  4. [VBA] Masquer les sélecteurs de ligne/colonnes (1,2..,A,B,C)
    Par skual dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/03/2006, 08h52
  5. est il possible d'inverser ligne/colonne ?
    Par kiki26 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 25/01/2005, 15h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo