sortie photo ligne colonne

Eléphant du PHP | 257 Messages

25 janv. 2017, 18:15

bonjour j''essaye un script qui fonctionne mysql classique et en pdo rien , je n'est qu'une seule photo

voilà
<?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();
      $photo = $connection->prepare('SELECT `chemin` FROM photo_profil WHERE id_membre=:id_membre');
      $photo->execute(array(':id_membre'=>$detail));
	  $nbr_photo = 0;	  
	  while($data = $photo->fetch(PDO::FETCH_OBJ)){	
	  $im = $data->chemin;
	  }
	  if(!empty($im)){
      vignette('image_profil/'.$im.'',185, 135);
      redim('image_profil/'.$im.'', 600, 450);
      if( $nbr_photo%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
      }
      $nbr_photo++;
	  }
      }else{
	  echo '<img src="design/imdesign/no_photo.png" width="185" height="135" border="0" />';  
	  }	  
      echo'</td>
      </tr>
      </table></div>';
       ?>

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

25 janv. 2017, 19:44

Bonjour,

Il faut que tu sois + précis dans ta question et que tu fasses un petit peu de debug au préalable pour savoir à quel endroit de ton script ça ne fonctionne pas comme prévu
Quand tout le reste a échoué, lisez le mode d'emploi...

Mammouth du PHP | 2703 Messages

25 janv. 2017, 19:56

while($data = $photo->fetch(PDO::FETCH_OBJ)){
$im = $data->chemin;
}
cela ne va prendre en compte que la dernière photo, alors que tu voudrais faire quelque chose pour chaque photo, il faut en faire plus dans le while.

Eléphant du PHP | 257 Messages

26 janv. 2017, 14:09

Oui sa prends en compte une seule photo alors que j'en'aie dix que faudrait il changer dans ma boucle svp?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

26 janv. 2017, 15:36

salut,

ne faire qu'une seule requête pour prendre les photos du membre c'est amplement suffisant.
si tu veux conditionner l'affichage en fonction qu'il y ai ou pas des données utilises la méthode rowCount() sur le PDOStatement ($photo).

avec ton code si tu enlèves les deux lignes suivante cela devrait fonctionner
}
    if(!empty($im)){
@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 257 Messages

26 janv. 2017, 17:13

je viens de retirez empty cela fonction pas

Eléphant du PHP | 257 Messages

26 janv. 2017, 18:32

j'ai testé cela une seule photo aussi qui a la solutions je cherche
<?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>';
       ?>

Eléphant du PHP | 257 Messages

26 janv. 2017, 18:58

voilà je viens de faire un test
$photo_1 = $connection->prepare('SELECT `chemin` FROM photo_profil WHERE id_membre=:id_membre');
      $photo_1->execute(array(':id_membre'=>$detail));
	  $i=0;	
	  if($data_1 = $photo_1->fetchAll(PDO::FETCH_COLUMN)){
		
	  var_dump($data_1);
il trouve mais photos avec var_dump comment les affiché svp?

Eléphant du PHP | 257 Messages

26 janv. 2017, 20:52

encore une autre façon mais aucun ne fonction je demande votre aide svp?
<?PHP
include_once'function_mini.php';

      $photo_1 = $connection->prepare('SELECT * FROM photo_profil WHERE id_membre=:id_membre');
      $photo_1->execute(array(':id_membre'=>$detail));
	  while($data_1 = $photo_1->fetch()){
?>
<table> 
<?php 
$counter = 0; 
foreach($data_1 as $ligne) 
{ 
$id_photo_profil = $ligne['id_photo_profil']; 
if($counter == 0) echo '<tr>'; 
var_dump($ligne['chemin']);
vignette('image_profil/'.$ligne['chemin'].'',185, 135);
?> 

<td> 
<img src="<?php echo 'MINIimage_profil/'.$ligne['chemin'].''; ?>" border="0"></td> 
<td>&nbsp;</td> 

<?php 
$counter++; 
if($counter == 4) 
{ 
echo '</tr>'; 
$counter = 0; 
} 
}
}
?> 
</table>

Eléphant du PHP | 257 Messages

27 janv. 2017, 21:47

la j'ai toute les photos sur une seule ligne Grrrrrrrrrrrrr
<?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>';
       ?>