PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Re : Forum Général PHP » affichage des images d'un dossier - ordre par nom » 04-08-2010 15:10:22

oui, en effet,
j'avais recupéré la variable $i dans la page suivante
afin d'afficher la photo en grande taille ... et afficher p.ex.
1/20
-et je ne voulais pas afficher 0/20 ..

mais maintenant j'ai compris comment faire
avec un tableau sans trou !!

merci beaucoup
maria

#2 Re : Forum Général PHP » affichage des images d'un dossier - ordre par nom » 04-08-2010 15:10:22

MERCI !

VOICI DONC MON NOUVEAU CODE :
----------------------------------------------------------------------------------------------------
$dossier = opendir ('../images/vig_photo/'.$data["conti"].'/'.$data["trip"]);
        $liste_fichier = array(1 =>"");
        while (false !==($fichier = readdir ($dossier))){
        if ($fichier != "." && $fichier != ".." && $fichier != ".BridgeSort") {   
        $liste_fichier[] = $fichier;        
    }
    }
    sort($liste_fichier);
    for($i=1;$i<sizeof($liste_fichier);$i++)
        {
<a href="photo3.php?i=<?php echo $i;?>&conti=<?php echo $data["conti"]?>&trip=<?php echo $data["trip"]; ?>&photo=<?php echo $liste_fichier[$i];?>">
<img src="../images/vig_photo/<?php echo $data["conti"].'/'.$data["trip"]; ?>/<?php echo $liste_fichier[$i]; ?>" alt="<?php echo $i; ?>" border="0"/></a>
<?php } ?>
----------------------------------------------------------------------------------------------------
d'abbord je n'avais pas trop compris et je pensais que je n'arriverai jamais !
mais maintenant ... ça marche ...

comme je voulais que la première image est attribuée à 1 et non à 0
j'ai écrit :

$liste_fichier = array(1 =>"");

est-ce que c'est correcte ?? ou est-ce qu'il y a une manière d'écriture plus propre ???

bon, au moins ça marche ...


merci
maria

#3 Re : Forum Général PHP » affichage des images d'un dossier - ordre par nom » 04-08-2010 15:10:22

merci pour la réponse,
mais je ne l'arrive pas à appliquer ..

comment afficher les images ?

et pourquoi sort($liste_fichier); est hors de la boucle ???
vue qu' il ya aussi ce code à ne pas oulier :


       $num = array("$i" => "$fichier");
        $i++;


(d'abord je veux afficher toutes les images (vignettes) d'un dossier,
chaque image est attribuée à un numéro et en cliquant sur l'image
une nouvelle page est affichée avec cette image en taille plus grande
et avec un compteur "next / back" pour afficher l'image suivante ou précedente ..)

désolée, mais je n'ai pas beaucoup d'expérience ..

merci pour tout soutien
maria

#4 Forum Général PHP » affichage des images d'un dossier - ordre par nom » 04-08-2010 15:10:22

maria
Réponses : 7

Bonjour,

j'avais testé le code suivant avec ZAZOU MINIWEBSERVER,
et l'affichage de images était comme il fallait,
c'est-à-dire, listé par ordre alphabetique.

Maintenant, je viens de publier le site,
et avec ce server la suite des images est entièrement accidentelle ...
Je ne le comprends pas du tout.
C'est la première fois que je mets une site sur un server ...
Est-ce que je dois faire des configurations du server ??

Merci d'avance
Maria


<?php while($data = mysql_fetch_array($req)) {
        $trip= str_replace("_"," ",$data["trip"]);?>
<div class="title"><?php echo $trip; ?></div>
<div class="text"><?php echo ($data['text']); ?></div>
</div> 
<div class="photo">
    <?php
    //AFFICHER LES PHOTOS DU DOSSIER IMAGES / VIG_PHOTO
     $dossier = opendir ('../images/vig_photo/'.$data["conti"].'/'.$data["trip"]);
        while (false !==($fichier = readdir ($dossier))){
        if ($fichier != "." && $fichier != ".." && $fichier != ".BridgeSort") {
        $num = array("$i" => "$fichier");
        $i++;
        $tailleimg=getimagesize('../images/vig_photo/'.$data["conti"].'/'.$data["trip"].'/'.$fichier);?>
    <a href="photo3.php?i=<?php echo $i;?>&conti=<?php echo $data["conti"]?>&trip=<?php echo $data["trip"]; ?>&photo=<?php echo $fichier;?>">
        <img src="../images/vig_photo/<?php echo $data["conti"].'/'.$data["trip"]; ?>/<?php echo $fichier; ?>"
        alt="<?php echo $fichier; ?>" border="0"/></a>
<?php
    }
    }
} ?>

#5 Re : Forum Général PHP » afficher une image d'un dossier - puis l'image suivante ou précedente » 31-08-2009 10:31:01

ah désolé mais là, je me suis trompé et j'ai copié la mauvaise ligne !
ca doit être :

$req2 = mysql_query($sql2) or die("Error SQL 2!");
$req4 = mysql_query($sql4) or die("Error SQL 4!");

et aussi je n'ai pas copié
$photoreq = $_GET['photo'];
$trip = $_GET['trip'];

la première requète c'est pour afficher la grande photo (la variable $photoreq je recupère de la page avant)

les requètes ne sont pas le problème ....

#6 Forum Général PHP » afficher une image d'un dossier - puis l'image suivante ou précedente » 31-08-2009 10:31:01

maria
Réponses : 3

bonjour,

j'ai un problème de calcul - ou de logique - je ne sais pas ..

alors, j'ai une galerie de photos  (photo de voyages)
- toutes les photos sont stockées dans une base de donnée (car il y a  des description pour chaque photo)
- mon client peut ajouter ou effacer des photos lui-meme - toutes les photos d'un voyage (p.ex : "France") sont stockées dan un dossier avec le nom du voyage (le script cree lui-meme le dossier si mon client ajoute un nouveau voyage)

dans mon site :
- on clique sur le voyage : des vignettes s'affichent
- on clique sur une photo : la photo s'affiche en grand, avec la description
sous la grande photo j'ai afficher les autres photos de ce meme voyage en plus petite (et alor on peut cliquer sur la mini-vignette et cette photo-là va s'afficher)

mais maintenant mon client vuex que s'affiche quelque chose comme ça :

<précedente  5/15  suivante> 


j'ai réussit d'afficher les chiffre au lieu de vignette
mais d´jà je n'arrive pas afficher que le chiffre de l'image qui est affichée en grande

je pensais que je travailler avec des code d'array : next($array) ou prev($array)
(au moins j'ai réussit de faire un lien qui va afficher la dernière image avec end($array)

mais je ne comprends pas du tout comment ça marche ....
quelqu'un peux m'aider ???


voici mon code qui affiche : la grande photo avec la description puis en dessous :
- les mini-vignettes
- les chiffres
- "end" (liens qui va afficher la dernière image)

tout fonctionne ! mais ce n'est pas ce que je veux afficher ..... sad
merci !!

<?php
$sql2 = "SELECT * FROM t_photo where photo='$photoreq' and trip ='$trip'";
$sql4 = "SELECT photo FROM t_photo where trip ='$trip' order by photo";
$req3 = mysql_query($sql3) or die("Error SQL 3!");
$req4 = mysql_query($sql4) or die("Error SQL 4!");
?>
------------------------------------------------------------------------------------------------
//IMAGE GRANDE AVEC DESCRIPTION
<?php while($data2 = mysql_fetch_array($req2)) { ?>
<a href='javascript:history.go(-1);'>
    <img src="../images/photos/<?php echo $data2['trip'] ?>/<?php echo $data2['photo']; ?>" alt="photo 1" border="0"/>
</a>
    <?php $trip= str_replace("_"," ",$data2["trip"]);?>
    <div class="subtitle"><span class="bold"><?php echo $trip; ?> – <?php echo $data2["bold"]; ?></span><br/>
    <span class="descript"><?php echo $data2["descript"]; ?></span>
<br/><br/>
   
<?php
//AFFICHER LE MINI-VIGNETTE DU DOSSIER IMAGES / VIG_PHOTO
$dossier = opendir ('../images/vig_photo/'.$data2["trip"]);
  while ($fichier = readdir ($dossier))
  {
    if ($fichier != "." && $fichier != "..")
    {
    $tailleimg=getimagesize('../images/vig_photo/'.$data2["trip"].'/'.$fichier);?>
    <a href="photo3.php?photo=<?php echo $fichier;?>&trip=<?php echo $data2["trip"]; ?>">        
        <img src="../images/vig_photo/<?php echo $data2["trip"]; ?>/<?php echo $fichier; ?>"
    alt=<?php echo $fichier; ?> border="0" height="30"/>
        </a>
<?php }
  }
  }
  ?>
<br /><br />

<?php
//AFFICHER DES CHIFFRES ATTRIBUÉS À DES PHOTOS
    $i=1;
    while ($data4 = mysql_fetch_array($req4))
      {
    $link= str_replace(" ","_",$trip);
                $num = array("$i" => "$data4[photo]");
    $i++;
                foreach ($num as $key => $val)
      {?>
      <a href="photo3.php?photo=<?php echo $val;?>&trip=<?php echo $link;?>">
      <?php echo $key ;?></a>
      <?php }
        }
?>[/color]
<br />

<?php
           end($num);
                 while ( !is_null($key = key($num)) )
{
               $val = current($num);?>
         <a href="photo3.php?photo=<?php echo $val;?>&trip=<?php echo $link;?>">end</a>
<?php      prev($num);
}                                                  
?>

#7 Re : Forum Général PHP » include / include($pageOK[$_GET['page']]) » 03-09-2009 16:02:41

ahh ok ! maintenant j'ai compris ! merci !!

- j'aurais encore une question : j'ai une page : functions.php et je l'inclure dans la page index.php, tout en haut :

<?php
include ("php/functions.php");
?>

je N'ai PAS définit cette page dans le array('news => news.php', .....) mais ça fonctionne .

c'est correct comme ça, non ?


merci encore une fois !
maria

#8 Re : Forum Général PHP » include / include($pageOK[$_GET['page']]) » 03-09-2009 16:02:41

salut,

merci beaucoup pour la réponse immédiate !!
c'est génial ! ça marche !!

juste : si je teste avec :<? print_r($_GET['page']);?> il affiche toujours seulment : news et non pas : news&debut=1&compteur=3   - c'est normal ??

et je dois alors VRAIMENT lister dans array(page => page.php)  TOUS mes liens de mon site ??


merci !

c'était ma première question dans votre forum et je suis bien contente !!!

maria

#9 Forum Général PHP » include / include($pageOK[$_GET['page']]) » 03-09-2009 16:02:41

maria
Réponses : 6

bonjour, (je suis débutant en php)

j'ai lu l'article : http://www.phpdebutant.org/article68.php

________________________________________________________________________________________________________
  // On définit le tableau contenant les pages autorisées
  // ----------------------------------------------------
  $pageOK = array('news' => 'news.php',
                  'accueil' => 'accueil.php');

  // On teste que le paramètre d'url existe et qu'il est bien autorisé
  // -----------------------------------------------------------------
  if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) {
    include($pageOK[$_GET['page']]);   // Nous appelons le contenu central de la page
  } else {
    include('accueil.php');   // Page par défaut quant elle n'existe pas dans le tableau
  }

____________________________________________________________________________________________________________
et ma question :
-d'abord : alors il faut vraiment lister tous les liens possible de tout mon site dans $pageOK ??
et si on travaille avec des variables dans le url ?

comment inclurer des variables dans ce code ? c'est possible ?

mon problème : je ne veux pas afficher tous les NEWS -
alors j'appelle seulment les trois premiers et puis j'ai un lien qui va motrer la suite :

<?php
echo '<a href="index.php?page=news.php?debut='.($debut-3).'&compteur='.($compteur-6).'">retour</a>
<a href="index.php?page=news.php?debut='.($debut+3).'&compteur='.$compteur.'">Suite</a>'
?>

je n'arrive pas à mettre ces liens dans $pageOK.....
comment écrire la première partie ? j'imagine que news.php?debut c'est faux ?? (à cause du .php)
________________________________________________________________________________________________________

  $pageOK = array('news' => 'news.php',

'news.php?debut='.($debut-3).'&compteur='.($compteur-6).''=>'news.php?debut='.($debut-3).'&compteur='.($compteur-6).'',
'news.php?debut='.($debut+3).'&compteur='.($compteur).'' => 'news.php?debut='.($debut+3).'&compteur='.($compteur).'',

                  'accueil' => 'accueil.php');
_______________________________________________________________________________________________________
 

merci beaucoup pour une réponse
maria

Pied de page des forums

Propulsé par FluxBB