Vous n'êtes pas identifié(e).
Bonjour,
J'ai créé un album photo en php. Une première table contient le titre et sous-titre de l'album. Une deuxième table contient les photos, qui ont pour identifiant unique "idph", et sont reliées à la première table par le champ "idliaison". Donc, toutes les photos du même album (même titre et même sous-titre) ont la même valeur pour le champ "idliaison".
Je visionne les photos une par une à l'écran pour le même album. J'ai placé au-dessus de chaque photo des flèches qui mènent à la photo suivante ou précédente. Mais après la dernière photo de l'album, là où l' "idliaison" change (car la photo qui suit ne fais pas parti du même album), je voudrais rester affiché sur cette dernière photo, ou afficher la dernière photo de l’album sans la flèche « suivant ». Et je ne sais pas comment faire …. Comment repérer qu’on lit de dernier élément d’une série choisie, et modifier sa présentation ?
Là, j’affiche mes photos une par une :
while($row = mysql_fetch_array($result))
{
echo '<center><b><u>'. $row['titre_album'] .'</u></b><p>';
echo '<i>'. $row['soustitre'] .'</i><p>';
echo '<a href = "photo_prec.php?idph='.$row['idph']. ' & idliaison='. $row['idliaison'] .'"><IMG src="images/back.gif" border=0 alt="Photo Précédente" width="27" height="30"></A>' ;
echo '<a href = "alb_photos.php"><IMG src="images/retour.gif" border=0 alt="Retour Album Photos" width="28" height="30"></A>' ;
echo '<a href ="photo_suiv.php?idph='. $row['idph'] .' & idliaison='. $row['idliaison'] .'"><IMG src="images/next.gif" border=0 alt="Photo Suivante" width="27" height="30"><br></a></td>';
echo '<img border=0 height="350" src="images/photos_alb/' . $row['photo'] . '"><p><h3>'. $row['commentaire'] .'</h3>';
}
echo("<p><h2>FIN DE L'ALBUM</h2></center>") ;
Avec le script tel qu’il est, arrivé sur la dernière photo de la série, j’affiche en bas, sous la photo : « FIN DE L'ALBUM ». Et si je clique sur la flèche « suivant », j’affiche uniquement (et encore) « FIN DE L'ALBUM ».
A la place d’afficher « FIN DE L'ALBUM » (le premier), je souhaiterais afficher la dernière photo sans la flèche « suivant ».
Merci.
Dernière modification par t14 (23-01-2010 18:25:08)
Hors ligne
Ce que tu cherches à faire est comparable à un affichage page par page sauf que tu n'affiche qu'un élément par page.
Je te renvoie au cours du site : http://phpdebutant.org/article84.php
Hors ligne
Ce que tu cherches à faire est comparable à un affichage page par page sauf que tu n'affiche qu'un élément par page.
Je te renvoie au cours du site : http://phpdebutant.org/article84.php
Bonjour et merci xTG. Intéressant, mais compliqué ........
J'ai tenté de l'arranger pour moi :
$requete="SELECT alb_photos.id, alb_photos.titre_album, alb_photos.soustitre, photos.idph, photos.idliaison, photos.numero, photos.photo, photos.commentaire
FROM alb_photos LEFT JOIN photos ON alb_photos.id=photos.idliaison
WHERE idph='$idph'";
$nombre = 1; // on va afficher 1 résultats par page.
if (!isset($limite)) $limite = 0; // si on arrive sur la page pour la première fois on met limite à 0.
// permet de récupérer le nom de la page qui sera utilisé dans les liens.
$path_parts = pathinfo($_SERVER['PHP_SELF']);
$page = $path_parts['basename'];
// Compte le nombre d'enregistrements total de la table.
$select = 'SELECT count(idph) FROM photos ORDER BY idph DESC '.$limite.','.$nombre;
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$row = mysql_fetch_row($result);
$total = $row[0]; // contient le nombre d'enregistrement à afficher au total
// Calcul des limites précédente et suivante
$limitesuivante = $limite + $nombre;
$limiteprecedente = $limite - $nombre;
// Affichage du lien précedent si besoin
if($limite != 0) {
echo '<a href="'.$page.'?limite='.$limiteprecedente.'">Page précédente</a>';
}
// Affichage du lien suivant si besoin
if($limitesuivante < $total) {
echo '<a href="'.$page.'?limite='.$limitesuivante.'">Page Suivante</a>';
}
Et j'ai un message d'erreur :
Erreur : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '0,1' at line 1
Hors ligne
Saluton,
Et si l'erreur était dans la première requête ?
La colonne idph semble être une primary key numérique, les quotes autour de $idph y sont donc contreproductives :
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Merci à vous, mais rien à faire .....
J'ai ajouter ou enlever des ", des ', des ( ) ..... que dalle ..........
Le problème vient de $limite et $nombre. Si je les enlève, j'ai uniquement sur ma page "Page suivante".
Faudrait que j'essaye de me bidouiller un script moi même ! Mais alors là ..........
Hors ligne
J'ai trouvé ......
Je commence par récupérer les éléments de la photos à afficher par une requête.
Puis je teste si une photo suivante existe par une autre requête. Je met le résultat dans une variable.
Ensuite je teste si une photo précédente existe par une autre requête. Je met le résultat dans une autre variable.
Et selon le résultat des varkiablers, j'affiche ou pas les flèches suivante et précédente !
Encore merci à xTG et Maljuna Kris pour leur intervention .....
A ++
Hors ligne