image suivante et précédente dans une page php

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 : image suivante et précédente dans une page php

Photo

par dudu60 » 21 oct. 2005, 00:03

Voila un code qui marche sur mon site
<?php

include("connection.php");
require("config.inc.php");

if (isset($_GET["Pos"]))
	 {$Pos=$_GET["Pos"];}
else
     {$Pos="";}

$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");

$Leg_img=mysql_result($result,0,"Legende_Image");

$Id_Theme=mysql_result($result,0,"Index_Theme");


//infos sur le thème en cours
$chaine="SELECT Legende_Theme FROM tblTheme WHERE Index_Theme=$Id_Theme";

$request = MYSQL_QUERY($chaine);

$nom_themeencours = mysql_result($request,0,"Legende_Theme");

echo "&nbsp;&nbsp&nbsp;&nbsp;<a href=Themes.php><big><big>Themes</big></big></a>&nbsp;&nbsp;<<<&nbsp;&nbsp<a href=Photos.php?theme=$Id_Theme><big><big>$nom_themeencours</big></big></a><BR><BR>";

//RECHERCHE IMAGE DEMANDEE


$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 ORDER by ID DESC";

$list_avant = mysql_query($chaine) or die ("Execution de la reqête impossible AVANT ");

$nb_img_avant = mysql_num_rows($list_avant);

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

//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 APRES");

$nb_img_apres = mysql_num_rows($list_apres);

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


//RECHERCHE NOMBRE PHOTOS TOTALES DU THEME SELECTIONNE

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


$nb_img = mysql_num_rows($list_img);

echo "<center>";

echo" <big><big>$Leg_img</big></big><BR><BR>";


//AFFICHAGE SIGNE IMAGE PRECEDENTE


if ($nb_img_avant>0)
{

echo "<a href=Photos_Vue.php?Pos=$id_img_avant><img border=0 src=prec.png></a>&nbsp&nbsp&nbsp";

}

//AFFICHAGE SIGNE IMAGE SUIVANTE

if ($nb_img_apres>0)

{

echo "&nbsp&nbsp&nbsp<a href=Photos_Vue.php?Pos=$id_img_apres><img border=0 src=suiv.png></a>";

}

//AFFICHAGE PHOTO DEMANDEE

echo "<BR><br><Img border=3 src=Photos/$Ref_img ></center>";

par err747 » 12 oct. 2005, 13:17

moi j'ai fait un truc similaire et j'utilise le javascript pour faire défiler les images, l'idée générale c'est de générer le code javascript avec du php, le code javascript faisant tourner les images avec plusieurs instructions du type document.image[0].src = document.image[1].src, etc...

C'est un peu laborieu mais ça évite d'avoir à recharger la page à chaque fois...

Le code est un peu sale, c'est une de mes toutes premières applications, mais ça marche plutot bien...

demo : http://osakl.free.fr/trombi

par sadeq » 12 oct. 2005, 13:13

voici une solution écrite sous forme objet.
Cette une classe qui définit le comportement d'un paginateur de pages.

Cet objet peut être incrusté n'importe où dans ta page par include.

Comment ça marche?
C'est un petit formulaire contenant des boutons de navigation et un afficheur d'index de pages disponibles.
l'objet dispose d'une mémoire interne qui mémorise les noms des pages à afficher (c'est un simple tableau)

Une fois la mémoire de l'objet est alimentée, il affiche les pages selon le bouton de navigation choisi

Voici le programme :
<?php
class paginateur {
//Mémoire de l'objet
var $page; //liste des pages à afficher
var $sens; //sens de navigation
var $current; //n° page en cours

//Démarre l'objet
function démarrer(){
         //Réception des paramètres
	$this->page = isset($_GET["page"])?$_GET["page"]:$this->page;
	$this->sens = isset($_GET["sens"])?$_GET["sens"]:"";
	$this->current = isset($_GET["current"])&&$_GET["current"]<count($this->page)&&$_GET["current"]>=0?$_GET["current"]:0;

         //Si un index de page est choisi : afficher diretement la page
	if (isset($_GET["page_directe"])&& !empty($_GET["page_directe"])){
	$this->current = $_GET["page_directe"]<count($this->page)&&$_GET["page_directe"]>=0?$_GET["page_directe"]:0;
	}else
                  //sinon : un bouton de navigation est choisi : calculer le n° de la page à afficher
		switch ($this->sens){
			case "|<": $this->current = 0; break;
			case "<": $this->current--; break;
			case ">": $this->current++; break;
			case ">|": $this->current = count($this->page)-1; break; 
		}

	//Affichage de la page ciblée
	echo $this->getPage($this->current);
         //Affichage du paginateur
	echo "<hr>";
	if ($this->page!=null)
	foreach($this->page as $p=>$x)
		echo "<A href='?page_directe=$p'>".($p+1)."</A> <input type=hidden name=page[] value='$p'>";
	
	echo "
		<p><form>
			<input type=submit name=sens value='|".htmlspecialchars("<")."'>";
		    if ($this->current >0)              echo "<input type=submit name=sens value='".htmlspecialchars("<")."'>";
		    if ($this->current <count($this->page)-1) echo "<input type=submit name=sens value='".htmlspecialchars(">")."'>";
            echo "<input type=submit name=sens value='".htmlspecialchars(">")."|'>
            <input type=hidden name=current value='$this->current'>
          </form>
    ";
}
//lecture de la page à afficher
function getPage($page){
	//ceci est un exemple de technique d'affichage de contenu pour le test
	 if (file_exists($this->page[$page])) include ($this->page[$page]); else return "<h1>Erreur: Page non trouvée</h1>";
}
//Alimentation de la memoire des pages
function page_add($fichier_source){
 if (file_exists($fichier_source))$this->page[] = $fichier_source;
}
}//fin de la classe

//Test
$paginateur = new paginateur();
//On ajoute les pages à gérer par le paginateur (dans cette version, il n'est pas possible de spécifier un dossier mais un fichier final)
$paginateur->page_add("p1.htm");
$paginateur->page_add("p2.htm");
$paginateur->page_add("p3.htm");
//Activer le paginateur
$paginateur->démarrer();
?>

par heddicmi » 12 oct. 2005, 12:49

Quand tu cliques sur le lien de l'image suivante, tu recharges la page courante en transmettant un paramètres qui sera le numéro de l'image à afficher...

Du coup tu recharges la page et sur le lien, tu donnes le numéro de l'image suivante...

etc...

image suivante et précédente dans une page php

par garifuna » 12 oct. 2005, 12:11

j'ai un menu qui donne acces a des images chargées comme ça:
<?
if (isset($_GET["imag"])){
$imag = $_GET["imag"];
}
else{
$imag = "0";
}
?> <?
if ($imag=="0"){
?>
<tr>
<td class="texteseries"><? include "01_serie_photos/01_texte/inc_01_serie_texte.php" ; ?></td>
</tr>

<?
}
?>
<?
if ($imag=="1"){
?>
<tr>
<td><img src="01_serie_photos/01_01_i.jpg"></td>
</tr>

<?
}
?>
<!-------------------- fin imag 1 ----------------->
<!-------------------- ici imag 2 ----------------->
<?
if ($imag=="2"){
?>
<tr>
<td><img src="01_serie_photos/01_02_i.jpg"></td>
</tr>
<?
}
?>
<!-------------------- fin imag 2 ----------------->
<!-------------------- ici imag 3 ----------------->
<?
if ($imag=="3"){
?>
<tr>
<td><img src="01_serie_photos/01_03_i.jpg"></td>
</tr>
<?
}
?>[/size]

de plus je voudrais faire défiler ces images a l'aide de flèches droite et gauche pour image suivante et précédente. avez vous une idée?, merci