Album photos 3

Résolu/Fermé
papyclic Messages postés 446 Date d'inscription mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 - 12 juin 2015 à 13:41
papyclic Messages postés 446 Date d'inscription mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 - 13 juin 2015 à 08:59
Bonjour
Je souhaiterai pouvoir afficher le nombre d'images par Album.
Je vous met ce que j'ai fait si vous pouvez me donner votre avis s'ils vous plait car je ne vois pas pourquoi cela ne fonctionne pas.
Merci beaucoup

mes 2 tables concernées


ma fonction qui devrait afficher le nombre d'images
function NombreImages($id_photo) {

	global $bdd;
    
	$sql = "SELECT *
			FROM tb_photo
			WHERE rid_album = :id_photo";
	$requete = $bdd->prepare($sql);
	$requete->execute(array('id_photo' => $id_photo,));
    $donnees = $requete->fetch();
    $total = $requete->rowCount();
    
    if ($total > 0) {
        return $total;
    } else {
        return "0";
    }
}

lien pour afficher le formulaire afin d'afficher le formulaire ajout_photo et l'appel de la fonction"NombreImages()"
<?php
	$sql = "SELECT *
			FROM tb_album
			ORDER BY annee_album";
	$requete = $bdd->prepare($sql);
	$requete->execute();
	$donnees = $requete->fetch();
	$total = $requete->rowCount();

	if ($total > 0) {
?>

<div id="NbImage">
	<table cellpadding="0" cellspacing="0" border="0">
		<tr class="titre">
			<th>Année Album</th>
			<th>Ajouter Images</th>
			<th>Supprimer</th>
			<th>Modifier</th>
		</tr>
		<?php do { ?>
		<tr>
			<td><?php echo $donnees['annee_album']; ?></td>
			<td>
				<a href="./index.php?body=ajout_photo&type=ajouter&id_album=<?php echo $donnees['id_album']; ?>">
				(<?php echo NombreImages(isset($donnees['id_photo'])); ?>) Images</a>
			</td>
		</tr>
		<?php } while($donnees = $requete->fetch()) ?>
	</table>
	
	<?php } else { echo "<p class='erreur'>Il n'y a pas d'Albums de définis.</p>"; } ?>
</div>

Merci beaucoup
A voir également:

5 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
12 juin 2015 à 16:03
Salut,

echo NombreImages(isset($donnees['id_photo']));

-> ta fonction NombreImages() attend en paramètre l'identifiant de la photo, or tu lui passes un booléen avec le retour de la fonction isset().
Pas besoin d'utiliser isset() ici car $donnees['id_photo'] sera toujours défini.

Soit tout simplement :
echo NombreImages($donnees['id_photo']);


Petite optimisation : la requête de ta fonction NombreImage pourrait être simplifier comme ceci :
SELECT count(*) FROM tb_album

Tu peux ainsi récupérer directement le nombre d'album uniquement avec le fetch sans devoir utiliser rowCount().

Bonne journée
0
papyclic Messages postés 446 Date d'inscription mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 3
13 juin 2015 à 00:02
Bonjour,
Merci de ton retour, en fait je ne comprends pas très bien si je met pas le isset j'ai un message en disant:
Notice: Undefined index: id_photo in C:

C'est bizarre en fait, c'est pour cela que j'avais rajouté isset.
Par contre je me demande pourquoi ça n'affiche pas le nombre d'images par Album, ma fonction est-elle bonne?
pourquoi dis-tu que je passe un booléen en paramètre, je passe bien id_photo.
Merci pour ton aide et excuse moi de mon ignorance j'essaie de comprendre.
Merci
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
Modifié par jordane45 le 13/06/2015 à 00:19
Bonjour,

<?php
 $sql = "SELECT *
   FROM tb_album
   ORDER BY annee_album";
 $requete = $bdd->prepare($sql);
 $requete->execute();
 $donnees = $requete->fetchall();

  $total = count($donnees);
  
 if ($total > 0) {
?>

<div id="NbImage">
 <table cellpadding="0" cellspacing="0" border="0">
  <tr class="titre">
   <th>Année Album</th>
   <th>Ajouter Images</th>
   <th>Supprimer</th>
   <th>Modifier</th>
  </tr>
  <?php foreach( $donnees as $R){
    $id_photo = $R['id_photo'];
    $id_album = $R['id_album'];
    $annee_album= $R['annee_album'];
   ?>
 
  <tr>
   <td><?php echo $annee_album; ?></td>
   <td>
    <a href="./index.php?body=ajout_photo&type=ajouter&id_album=<?php echo $id_album; ?>">
    (<?php echo NombreImages($id_photo); ?>) Images</a>
   </td>
  </tr>
  <?php } ?>
 </table>
 
 <?php } else { echo "<p class='erreur'>Il n'y a pas d'Albums de définis.</p>"; } ?>
</div>




function NombreImages($id_photo) {
 global $bdd;
    
 $sql = "SELECT count(*) as NB
   FROM tb_photo
   WHERE rid_album = :id_photo";
   
 $params = array('id_photo' => $id_photo);
 
 $requete = $bdd->prepare($sql);
 $requete->execute($params);
  $donnees = $requete->fetchall();
  $total = $donnees[0]['NB'];
   
  return $total ? $total : 0;
}


Cordialement,
Jordane
0
papyclic Messages postés 446 Date d'inscription mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 3
13 juin 2015 à 08:02
Bonjour
Merci pour v0tre aide.
Malheureusement j'ai des erreurs, variables non définie
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
papyclic Messages postés 446 Date d'inscription mercredi 5 novembre 2014 Statut Membre Dernière intervention 18 octobre 2016 3
13 juin 2015 à 08:59
Bonjour
Merci pour tout en fait j'ai trouvé la solution.
Merci encore
0