Stopper une incrémentation php

Résolu
Kormyr -  
 Kormyr -
Bonjour,

Je cherchais un script pour une galerie photo, je suis tombé sur celui ci qui à l'air tout frais !! lol

http://www.commentcamarche.net/forum/affich-24358305-galerie-photo-php-mysql

Il fonctionne, il est simple, ça me convient, mais la personne qui a posté n'a pas pensé à stopper l'incrémentation. Ou à reboucler sur la première photo...
Alors du coup une fois la dernière photo passés, on voit les id qui continuent a s'incrémentés dans l'url, mais bon comme il n'y a plus de photos à afficher.. bah c'est tout vide !

N'y aurait il pas quelqu'un qui aurait un éclair de génie pour m'éclairer svp ???

Merci, bonne journée à toutes et à tous !

10 réponses

  1. djflexlive Messages postés 577 Statut Membre 95
     
    Mets le code en question ce sera plus simple
    0
  2. Kormyr
     
    Le code que j'ai trouvé c'est ça :

    <?php
    if(empty($_GET['PHOTO_ID'])){
    $PHOTO_ID=1;
    }else{
    $PHOTO_ID=$_GET['PHOTO_ID'];
    }

    // Sélection de la base
    mysql_select_db("test");
    // Ecriture requête SQL
    $req_photo = "SELECT * FROM galerie_photo WHERE PHOTO_ID ='".$PHOTO_ID."'";
    $nombre_image="SELECT COUNT(PHOTO_ID) FROM galerie_photo";

    // Exécute la requête
    $id_result_photo = mysql_query ($req_photo);
    $nb_photo=mysql_query ($nombre_image);

    // Récupère le résultat de la requête dans le tableau $photo
    $photo = mysql_fetch_assoc($id_result_photo);
    $nb=mysql_fetch_assoc($nb_photo);

    echo "<html>";
    echo "<head>";
    echo "<title>".$photo["PHOTO_NOM"]."</title>";
    echo "</head>";

    echo "<table width='100%'>";
    echo "<tr>";

    if ($photo["PHOTO"]!=1)
    {
    $PHOTO_IDm=$PHOTO_ID-1;
    echo "<td align='left'><a href='affiche.php?PHOTO_ID=".$PHOTO_IDm."' target='_self'><b><font color='#999999' face='Arial, Helvetica, sans-serif'><<</font></b></td>";
    }
    //afficher la photo
    echo "<td ><img src='http://".$photo["PHOTO"]."'></td>";

    if($photo["PHOTO"]<=$nb)
    {
    $PHOTO_IDp=$PHOTO_ID+1;
    echo "<td align='right'><a href='affiche.php?PHOTO_ID=".$PHOTO_IDp."' target='_self'><b><font color='#999999' face='Arial, Helvetica, sans-serif'>>></font></b></td>";
    }

    echo "</tr>";
    echo "</table>";
    echo "</body>";
    echo "</html>";
    ?>

    Après je changerai les noms pour adapter a ma bdd.
    0
  3. djflexlive Messages postés 577 Statut Membre 95
     
    Je vois pas de boucle dans ton code.

    De plus, je te conseilles ceci :

    <?php 
    // Sélection de la base 
    mysql_select_db("test"); 
    
    if(empty($_GET['PHOTO_ID'])){ 
    $PHOTO_ID=1; 
    }else{ 
    $PHOTO_ID= mysql_real_escape_string($_GET['PHOTO_ID']); 
    }
    
    // TON CODE HTML (head, ...)
    
    // Ecriture requête SQL 
    $req_photo = "SELECT * FROM galerie_photo WHERE PHOTO_ID ='".$PHOTO_ID."'";
    
    $query = mysql_query($query);
    
    while ( $row = mysql_fetch_array($query) ) {
    // AFFICHAGE EN BOUCLE DES DONNEES TANT QU'IL Y A DES ENREGISTREMENTS
    }
    ?>
    
    0
  4. Utilisateur anonyme
     
    :) c'est mon code, bien sur qu'il est tout frais lol
    je reconnais que ce code est pourri, mais bon ça répondait à la question demandée.
    il n'y a point d'erreur dans ce code, l'incrémentation est coté serveur donc impossible de voir défiler les id sur l'url.
    Sauf si tu as rajouté un code javascript qui fait des conneries.

    @djflexlive : la boule while ne sert à rien dans ce cas puisque les données transférés ne correspondent qu'a 1 seul enregistrement ( "WHERE" dans la requête )

    @+
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. djflexlive Messages postés 577 Statut Membre 95
     
    Bizarre tout ca ... c'est quoi le but final désiré ?
    0
  7. Utilisateur anonyme
     
    Le problème c'est que les débutants veulent tout faire en php. Un code pareil sur un site ayant des milliers de visiteurs, le serveur tombe en panne en peu temps.
    Pour moi ce n'est qu'un exemple pour montrer en php d'un script qui doit être fait en javascript.
    0
  8. djflexlive Messages postés 577 Statut Membre 95
     
    Hem en général avant d'avoir des milliers de visiteurs, tu as le temps d'optimiser ton site :) Mais je suis d'accord avec toi ;)
    0
  9. Kormyr
     
    Si si eone, promis, ça défile dans l'url. A moins que ce ne soit du au fait que je le teste sur easyphp et non directement sur un serveur, en ligne et tout et tout.
    La ou je suis d'accord avec la personne pour qui tu as fait le code, c'est que à l'école on t'impose parfois des choses pas logiques, mais dans ces cas la tu n'as pas le choix. Perso je n'y connais rien en javascript, je ne savais pas par quoi commencer. Je pense que je vais utiliser ce code dans un premier temps car mon site doit être fait dans les plus brefs délais, et apres j'apprendrai le javascript pour faire quelque chose de mieux.
    0
    1. Utilisateur anonyme
       
      mais je te dis que c'est impossible ou du moins ce n'est pas mon code qui en est la cause. Sinon fait voir le code de ta page pour qu'on puisse savoir où se trouve ce problème.
      0
    2. Kormyr
       
      Le code est le même, j'ai changé le nom des tables de ma bdd pour faire plus simple
      0
  10. vsf90 Messages postés 28 Statut Membre 2
     
    Le javascript est un langage d'événement, il se traite au niveau du navigateur il donne une réponse rapide sans avoir à charger la page à nouveau.

    Et si tu veux aller un peu loin il y a le jquery qui vous facilite les choses. Mais il demande des bases en javascript.
    0
    1. Utilisateur anonyme
       
      malheureusement il s'en fout complètement du javascript et je trouve ça tout à fait normal
      0
    2. vsf90 Messages postés 28 Statut Membre 2
       
      C'est normal pour des débutants, ils ne trouvent de vrai tutoriel à les aider et ça demande un peu d'expérience.
      0