Site Photos

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Site Photos

Site Photos

par Photographiquement Vôtre » 03 mars 2005, 21:20

J'ai pris l'idée d'une réponse du forum parlant de select avec une limite.

C'est ce que j'ai fait mais j'ai un problème quand j'arrive à la dernière page et que j'appuie sur l'image précédente je me retrouve à la première page au lieu de la page précédente.

Où est le bug

Merci d'avance

<HTML>
<HEAD>
<TITLE>ENDELEA PHOTOS </TITLE>
</HEAD>

<BODY>

<?php

include("connection.php");

$Pos=$_GET["Pos"];

//RECHERCHE IMAGE DEMANDEE

$query = "select * from tblphotos where Id=$Pos";

$result = mysql_query($query) or die ("Execution de la reqête impossible");

$Ref_img=mysql_result($result,0,"Ref_Image");

$chaine="select * from tblPhotos where Id=$Pos";

$request= mysql_query($chaine) or die ("Execution de la reqête impossible");
$theme=mysql_result($request,0,"Index_Theme");

//RECHERCHE IMAGE PRECEDENTE

$chaine="select Id from tblPhotos where Index_Theme= $theme AND Id<$Pos";
$list_avant = mysql_query($chaine) or die ("Execution de la reqête impossible");

$nb_img_avant = mysql_num_rows($list_avant);

if($nb_img_avant>0) {$id_img_avant=mysql_result($list_avant,0,"Id");}

//echo "$id_img_avant";

//IMAGE AFFICHEE

$num_img_current=$nb_img_avant+1;


//RECHERCHE IMAGE SUIVANTE

$chaine="select Id from tblPhotos where Index_Theme= $theme AND Id>$Pos";
$list_apres = mysql_query($chaine) or die ("Execution de la reqête impossible");

$nb_img_apres = mysql_num_rows($list_apres);

if($nb_img_apres>0) {$id_img_apres=mysql_result($list_apres,0,"Id");}

echo "$id_img_apres";


//RECHERCHE NOMBRE PHOTOS TOTALES DU THEME SELECTIONNE

$chaine="select * from tblPhotos where Index_Theme= $theme ";
$list_img = mysql_query($chaine) or die ("Execution de la reqête impossible");

$nb_img = mysql_num_rows($list_img);


//AFFICHAGE SIGNE IMAGE PRECEDENTE

if ($nb_img_avant>0)
{

echo "<a href=Photos_Vue.php?Pos=$id_img_avant>
<img src=prec.png>";

}

//AFFICHAGE SIGNE IMAGE SUIVANTE

if ($nb_img_apres>0)

{

echo "<a href=Photos_Vue.php?Pos=$id_img_apres>
<img src=suiv.png>";

}

//AFFICHAGE PHOTO DEMANDEE


echo "<Img src=Photos/$Ref_img >" ;


?>

</BODY>
</HTML>

par mere-teresa » 01 mars 2005, 00:32

Les blancs sont pas forcément gênants. Tu peux bien dire à ton programme, de chercher le numéro +1
s'il ne trouve rien -> chercher le numéro +2, etc...
s'il trouve qqch -> il exécute une autre partie de code

Site Photos

par Photographiquement Vôtre » 28 févr. 2005, 16:59

Les images sont en ordre croissant mais avec des blancs

Par exemple, je passe de Isl03_10 à Isl03_15 puis Isl03_25.

Je vais de toute façon devoir rajouter un numéro d'ordre numérique en ordre croissant mais avec des blancs (par exemple 10 puis 40 puis 80) de façon à pouvoir intercaler d'autres images

Je ne sais pas si cela simplifie la programmation

Encore merci

Re: Site Photos

par albat » 28 févr. 2005, 16:42

Mais peut être je devrais mettre un numero incrémenté ?
Cela n'a rien d'obligatoire, mais cela peut simplifier... :wink:
Cependant, si tu souhaites afficher une sélection de photos et non la collection complète, ça n'apportera pas grand-chose.

Avant d'aller plus loin, il me faudrait une précision supplémentaire :
Même si les numéros de tes photos ne se suivent pas un à un (cad : ta liste contient des "blancs"),
les numéros des photos à afficher suivent-ils un ordre croissant ?

Site Photos

par Photographiquement Vôtre » 28 févr. 2005, 16:26

Merci mais le problème est que la photo choisie n'est pas la première dans la table et que les références des photos ne se suivent pas (ex Isl03_01 puis Isl03_20 ...)

Ce qu'il faudrait c'est pouvoir récupérer le rang de la photo dans la table
(exemple 3 ème photo) et ensuite jouer avec la fonction limite ?

Mais peut être je devrais mettre un numero incrémenté ?

Encore merci

par albat » 28 févr. 2005, 16:08

Tu peux gérer cela de 2 façons :
- en Javascript
- en PHP

Le principe est le même, seul le langage change :
- Tes images sont stockées dans un même répertoire sur le serveur, et s'appellent : photo_001.jpg, photo_002.jpg, photo_003.jpg, etc.
- Tu utilises un compteur (cad une variable de type entier) que tu incrémentes (resp. décrémentes) à chaque clic sur le bouton "photo suivante" (resp. "photo précédente").
- Tu appelles et affiches le fichier dont le nom est obtenu par concaténation (ci-dessous, 2 exemples, au choix):
fichier  = "photo_" + (compteur<100 ? "0" : "") + (compteur<10 ? "0" : "") + compteur + ".jpg"; // JavaScript
$fichier = "photo_".($compteur<100 ? "0" : "").($compteur<10 ? "0" : "").$compteur.".jpg"; // PHP
PS : Peux-tu mettre un [Résolu] sur ton précédent topic ? Merci. :wink:

Site Photos

par Photographiquement Vôtre » 28 févr. 2005, 15:57

Rebonjour,

J'ai affiché dans une page la photo sélectionnée dans une table

Maintenant je souhaite faire défiler en avant ou en arrière les autres photos de la table avec les mots Suivant et Précédent.

Comment je peux procéder.

Merci pour votre précieuse aide