problème affichage page par page

Mammouth du PHP | 620 Messages

23 févr. 2009, 13:00

bonjour,
j'essai de faire afficher pour ma galerie un page par page afain de ne pas surcharger ma page.

pour faire mon afficgae page par page je fais de la sorte

					    <?PHP
include("../admin/connexion-sql.php");


$nombre = mysql_query("SELECT count(id) FROM galerie");
$donnees = mysql_fetch_array($nombre);
$nbr = $donnees[0];
echo  'Info: <span class="Style4">'.$donnees['0'].'</span> références enregistrées dans la galerie <br/> ';



// Mise  en place du systeme Page par Page
	$page = isset($_GET['page']) ? $_GET['page'] : '';  

// Prepare le requete MySql 
 
	$requete = "SELECT * from galerie"; 
	$ret = mysql_query($requete); 
// Variable nombre d'enreg par page 
	$limit=9; 
	if($debut==""){$debut=0;} 
	$debut=$page*$limit; 
// Compte le nombre de champ 
	$nb_total=mysql_num_rows($ret); 
// Requete 
	$limite=mysql_query("$requete limit $debut,$limit"); 

	//Affichage le contenu de la table
//avec une limite &agrave; 12 

$limit_str = "LIMIT ". $page * $limit .",$limit"; 

$req = mysql_query("SELECT * FROM galerie ORDER BY id DESC $limit_str"); 


while($data = mysql_fetch_array($req)) 
	{ 
	?>
	<?PHP
	$nb = 3;  // Nombre d'affichages souhait&eacute;s sur une ligne

	$sql = "SELECT DISTINCT type FROM galerie"; // requ&ecirc;te SQL 
	$reqtype = mysql_query($sql) or die('<u>Probleme SQL</u> : '.$sql.'<br>'.mysql_error());  // envoie de la requ&ecirc;te
		while($restype = mysql_fetch_array($reqtype)) 
			{
			echo "<a href=\"galerie-evasion2.php?type=".$restype['type']."\">"; 
            echo "Type ".$restype['type'];  
            echo "</a>";
			}

		$type = $_GET['type']; 
			
		$sql = "SELECT * FROM galerie WHERE type='$type' ORDER BY type $limit_str"; // requ&ecirc;te SQL 
		
		$req = mysql_query($sql) or die('<u>Probleme SQL</u> : '.$sql.'<br>'.mysql_error());  // envoie de la requ&ecirc;te
		 
		// affichage des résultats avec $nb résultats par ligne
		echo'<table>';
		$i = 1;

		while($resultat = mysql_fetch_array($req)) 
			{
			if($i == 1) { echo'<tr>'; }
		
       // Suite du traitement
		echo'
			<td align="center">
			<div class="galerie"> 
			<div class="ref">'.$resultat['type'].' </div><div class="type">Réf : ', $resultat['ref'] ,'</div>
			<a href="../images/galerie/', $resultat['photoref'] ,'" target="_blank">
			<img src="mini-galerie.php?f=' , $resultat['photoref'] , '" alt="'.$resultat['type'].' réf ', $resultat['ref'] ,'" width="170" height="115"/>
			</a>
			
			<a href="../images/galerie/', $resultat['photoex'] ,'" target="_blank">
			<img src="../images/exemple.png" alt="Voir l\'exemple pour le référence ', $resultat['ref'] ,'" width="68" height="32""/>
			<img src="mini-galerie.php?f=' , $resultat['photoex'] , '" alt="', $resultat['alt'] ,'" width="48" height="32""/>
			</a>
			</div><div class="clear"></div></div>
			</td>';

			$i++;
			if($i > $nb) { echo'</tr>'; $i = 1; }
			}
	echo'</table>';

?>
		<?PHP
        } 
        ?>
        
        
		<?PHP
		echo "<div class='page'>Page </div>";
		// Affiche le page par page avec ses liens 
		if ($page>0) { 
		$precedent=$page-1; 
		echo "<div class='page'><a href=\"$PHP_SELF?type=".$restype['type']."?page=$precedent\">PRECEDENT</a></div>"; 
		} 
		
		$i=0; 
		$j=1; 
		
		if($nb_total>$limit) { 
		while($i<($nb_total/$limit)) { 
		if($i!=$page){echo "<div class='page'><a href=\"$PHP_SELF?type=".$restype['type']."?page=$i\"> $j</a></div>";} 
		else { echo "<div class='page'><b>$j</b></div>";} 
		$i++;$j++; 
		} 
		} 
		
		if($debut+$limit<$nb_total) { 
		$suivant=$page+1; 
		echo "<div class='page'><a href=\"$PHP_SELF?type=".$restype['type']."?page=$suivant\">SUIVANT</a></div>"; 
		} 
		?>


 
l'ennui est que au lieu davoir en faonction du type
galerie-evasion2.php?type=Plantes?page=1

j'ai : galerie-evasion2.php?type=?page=1

voyez vous une erreur dans ma ligne de code ou un solution a me proposé ?

Mammouth du PHP | 686 Messages

23 févr. 2009, 13:36

Comme je te retrouve !!! :wink:
L'ennui dans ton script c'est que tu es sorti de ta boucle while() de ta requete PHP
mais comme tu as fait precedement
$type = $_GET['type']
fais tout simplement
<?PHP 
        echo "<div class='page'>Page </div>"; 
        // Affiche le page par page avec ses liens  
        if ($page>0) {  
        $precedent=$page-1;  
        echo "<div class='page'><a href=\"$PHP_SELF?type=".$type."?page=$precedent\">PRECEDENT</a></div>";  
        }  
         
        $i=0;  
        $j=1;  
         
        if($nb_total>$limit) {  
        while($i<($nb_total/$limit)) {  
        if($i!=$page){echo "<div class='page'><a href=\"$PHP_SELF?type=".$type."?page=$i\"> $j</a></div>";}  
        else { echo "<div class='page'><b>$j</b></div>";}  
        $i++;$j++;  
        }  
        }  
         
        if($debut+$limit<$nb_total) {  
        $suivant=$page+1;  
        echo "<div class='page'><a href=\"$PHP_SELF?type=".$type."?page=$suivant\">SUIVANT</a></div>";  
        }  
        ?> 

Mammouth du PHP | 620 Messages

23 févr. 2009, 13:55

ah oui effectivement j'ai bien la ligne desiréé.

par contre mon systeme page par page ne fonctionne pas car en fait il compte toutes les données qui sont dans la galerie alors qu'il devrait compter en fonction du type.

actuellement j'ai bien mes differents types qui s'affiche avec un nombre de pages en dessous mais qui correspond au total des données de la base.
de plus si je clique sur page 2 par exemple je change de page mais je n'ai pas la suite de mes images.

Mammouth du PHP | 686 Messages

23 févr. 2009, 14:00

Pour ton total d'enregistrement en debut de code essai comem ca :
$type = $_GET['type'];
$requete = "SELECT * from galerie WHERE type='$type'");

Mammouth du PHP | 620 Messages

23 févr. 2009, 14:15

sa fonctionne en partie dans le sens ou maintenant j'ai bien le bon nombre de page qui s'affiche en dessous des photos. Par contre si je clique sur page 2 ou 3 ... j'arrive sur ma page 2 ou 3 mais le reste des photos ne s'affiche pas.

Mammouth du PHP | 686 Messages

23 févr. 2009, 14:22

Il n'y a rien du tout du tout ?

Mammouth du PHP | 620 Messages

23 févr. 2009, 14:25

et bien il y a juste la structure de ma page et rien d'autre. plus de nombre de page, plus de photo en fonction du type. il ne reste que les differents type avec leur liens.

Mammouth du PHP | 686 Messages

23 févr. 2009, 14:51

<?PHP 
include("../admin/connexion-sql.php"); 


$nombre = mysql_query("SELECT count(id) FROM galerie"); 
$donnees = mysql_fetch_array($nombre); 
$nbr = $donnees[0]; 
echo  'Info: <span class="Style4">'.$donnees['0'].'</span> références enregistrées dans la galerie <br/> '; 



// Mise  en place du systeme Page par Page 
    $page = isset($_GET['page']) ? $_GET['page'] : '';   

// Prepare le requete MySql  
  
    $requete = "SELECT * from galerie WHERE type='$type'";  
    $ret = mysql_query($requete);  
// Variable nombre d'enreg par page  
    $limit=9;  
    if($debut==""){$debut=0;}  
    $debut=$page*$limit;  
// Compte le nombre de champ  
    $nb_total=mysql_num_rows($ret);  
// Requete  
    $limite=mysql_query("$requete limit $debut,$limit");  

    //Affichage le contenu de la table 
//avec une limite &agrave; 12  

$limit_str = "LIMIT ". $page * $limit .",$limit";  

$req = mysql_query("SELECT * FROM galerie WHERE type="$type' ORDER BY id DESC $limit_str");  


while($data = mysql_fetch_array($req))  
    {  
    $nb = 3;  // Nombre d'affichages souhait&eacute;s sur une ligne 

    $sql = "SELECT DISTINCT type FROM galerie"; // requ&ecirc;te SQL  
    $reqtype = mysql_query($sql) or die('<u>Probleme SQL</u> : '.$sql.'<br>'.mysql_error());  // envoie de la requ&ecirc;te 
        while($restype = mysql_fetch_array($reqtype))  
            { 
            echo "<a href=\"galerie-evasion2.php?type=".$restype['type']."\">";  
            echo "Type ".$restype['type'];   
            echo "</a>"; 
            } 

        $type = $_GET['type'];  
             
        $sql = "SELECT * FROM galerie WHERE type='$type' ORDER BY type $limit_str"; // requ&ecirc;te SQL  
         
        $req = mysql_query($sql) or die('<u>Probleme SQL</u> : '.$sql.'<br>'.mysql_error());  // envoie de la requ&ecirc;te 
          
        // affichage des résultats avec $nb résultats par ligne 
        echo'<table>'; 
        $i = 1; 

        while($resultat = mysql_fetch_array($req))  
            { 
            if($i == 1) { echo'<tr>'; } 
         
       // Suite du traitement 
        echo' 
            <td align="center"> 
            <div class="galerie">  
            <div class="ref">'.$resultat['type'].' </div><div class="type">Réf : ', $resultat['ref'] ,'</div> 
            <a href="../images/galerie/', $resultat['photoref'] ,'" target="_blank"> 
            <img src="mini-galerie.php?f=' , $resultat['photoref'] , '" alt="'.$resultat['type'].' réf ', $resultat['ref'] ,'" width="170" height="115"/> 
            </a> 
             
            <a href="../images/galerie/', $resultat['photoex'] ,'" target="_blank"> 
            <img src="../images/exemple.png" alt="Voir l\'exemple pour le référence ', $resultat['ref'] ,'" width="68" height="32""/> 
            <img src="mini-galerie.php?f=' , $resultat['photoex'] , '" alt="', $resultat['alt'] ,'" width="48" height="32""/> 
            </a> 
            </div><div class="clear"></div></div> 
            </td>'; 

            $i++; 
            if($i > $nb) { echo'</tr>'; $i = 1; } 
            } 
    echo'</table>'; 

?> 
        <?PHP 
        }  
        ?> 
         
         
        <?PHP  
        echo "<div class='page'>Page </div>";  
        // Affiche le page par page avec ses liens   
        if ($page>0) {   
        $precedent=$page-1;   
        echo "<div class='page'><a href=\"$PHP_SELF?type=".$type."?page=$precedent\">PRECEDENT</a></div>";   
        }   
          
        $i=0;   
        $j=1;   
          
        if($nb_total>$limit) {   
        while($i<($nb_total/$limit)) {   
        if($i!=$page){echo "<div class='page'><a href=\"$PHP_SELF?type=".$type."?page=$i\"> $j</a></div>";}   
        else { echo "<div class='page'><b>$j</b></div>";}   
        $i++;$j++;   
        }   
        }   
          
        if($debut+$limit<$nb_total) {   
        $suivant=$page+1;   
        echo "<div class='page'><a href=\"$PHP_SELF?type=".$type."?page=$suivant\">SUIVANT</a></div>";   
        }   
        ?>
 


Mammouth du PHP | 620 Messages

23 févr. 2009, 15:26

ah avec ce code je n'ai plsu rien du tout. meme les type ont disparu.

Mammouth du PHP | 686 Messages

23 févr. 2009, 15:32

<?PHP  
include("../admin/connexion-sql.php");  


$nombre = mysql_query("SELECT count(id) FROM galerie");  
$donnees = mysql_fetch_array($nombre);  
$nbr = $donnees[0];  
echo  'Info: <span class="Style4">'.$donnees['0'].'</span> références enregistrées dans la galerie <br/> ';  



// Mise  en place du systeme Page par Page  
    $page = isset($_GET['page']) ? $_GET['page'] : '';    

// Prepare le requete MySql   
   
    $requete = "SELECT * from galerie WHERE type='$type'";   
    $ret = mysql_query($requete);   
// Variable nombre d'enreg par page   
    $limit=9;   
    if($debut==""){$debut=0;}   
    $debut=$page*$limit;   
// Compte le nombre de champ   
    $nb_total=mysql_num_rows($ret);   
// Requete   
    $limite=mysql_query("$requete limit $debut,$limit");   

    //Affichage le contenu de la table  
//avec une limite &agrave; 12   

$limit_str = "LIMIT ". $page * $limit .",$limit";   

$req = mysql_query("SELECT * FROM galerie WHERE type='$type' ORDER BY id DESC $limit_str");   


while($data = mysql_fetch_array($req))   
{  
    ?> 
    <?PHP   
    $nb = 3;  // Nombre d'affichages souhait&eacute;s sur une ligne  

    $sql = "SELECT DISTINCT type FROM galerie"; // requ&ecirc;te SQL   
    $reqtype = mysql_query($sql) or die('<u>Probleme SQL</u> : '.$sql.'<br>'.mysql_error());  // envoie de la requ&ecirc;te  
        while($restype = mysql_fetch_array($reqtype))   
            {  
            echo "<a href=\"galerie-evasion2.php?type=".$restype['type']."\">";   
            echo "Type ".$restype['type'];    
            echo "</a>";  
            }  

        $type = $_GET['type'];   
              
        $sql = "SELECT * FROM galerie WHERE type='$type' ORDER BY type $limit_str"; // requ&ecirc;te SQL   
          
        $req = mysql_query($sql) or die('<u>Probleme SQL</u> : '.$sql.'<br>'.mysql_error());  // envoie de la requ&ecirc;te  
           
        // affichage des résultats avec $nb résultats par ligne  
        echo'<table>';  
        $i = 1;  

        while($resultat = mysql_fetch_array($req))   
            {  
            if($i == 1) { echo'<tr>'; }  
          
       // Suite du traitement  
        echo'  
            <td align="center">  
            <div class="galerie">   
            <div class="ref">'.$resultat['type'].' </div><div class="type">Réf : ', $resultat['ref'] ,'</div>  
            <a href="../images/galerie/', $resultat['photoref'] ,'" target="_blank">  
            <img src="mini-galerie.php?f=' , $resultat['photoref'] , '" alt="'.$resultat['type'].' réf ', $resultat['ref'] ,'" width="170" height="115"/>  
            </a>  
              
            <a href="../images/galerie/', $resultat['photoex'] ,'" target="_blank">  
            <img src="../images/exemple.png" alt="Voir l\'exemple pour le référence ', $resultat['ref'] ,'" width="68" height="32""/>  
            <img src="mini-galerie.php?f=' , $resultat['photoex'] , '" alt="', $resultat['alt'] ,'" width="48" height="32""/>  
            </a>  
            </div><div class="clear"></div></div>  
            </td>';  

            $i++;  
            if($i > $nb) { echo'</tr>'; $i = 1; }  
            }  
    echo'</table>';  

?>  
        <?PHP  
        }   
        ?>  
          
          
        <?PHP   
        echo "<div class='page'>Page </div>";   
        // Affiche le page par page avec ses liens    
        if ($page>0) {    
        $precedent=$page-1;    
        echo "<div class='page'><a href=\"$PHP_SELF?type=".$type."?page=$precedent\">PRECEDENT</a></div>";    
        }    
           
        $i=0;    
        $j=1;    
           
        if($nb_total>$limit) {    
        while($i<($nb_total/$limit)) {    
        if($i!=$page){echo "<div class='page'><a href=\"$PHP_SELF?type=".$type."?page=$i\"> $j</a></div>";}    
        else { echo "<div class='page'><b>$j</b></div>";}    
        $i++;$j++;    
        }    
        }    
           
        if($debut+$limit<$nb_total) {    
        $suivant=$page+1;    
        echo "<div class='page'><a href=\"$PHP_SELF?type=".$type."?page=$suivant\">SUIVANT</a></div>";    
        }    
        ?> 

Mammouth du PHP | 620 Messages

23 févr. 2009, 15:36

toujours rien. :oops:

Mammouth du PHP | 686 Messages

23 févr. 2009, 15:37

J'ai modifié mon code entre temps, rééssaye pour voir stp car j'avais fait un erreur de synthaxe

Mammouth du PHP | 620 Messages

23 févr. 2009, 15:40

non tjs pas. si pour l'erreur c'etait le " a la place du ' je l'avait modifié.
mais je me demande si le probleme du fait que sa n'affiche rien ne viendrait pas d'une requette qui ne collerait pas avec l'affichage ?

Mammouth du PHP | 686 Messages

23 févr. 2009, 15:43

reprend le code ou il marchait le mieux et essaie ainsi, je pense que ton limit est mal definit
// Variable nombre d'enreg par page    
    $limit=9;    
    if($debut==""){$debut=0;}    
    $debut=$page*$limit;    
// Compte le nombre de champ    
    $nb_total=mysql_num_rows($ret);    
// Requete    
    $fin = $debut+$limit;
    $limite=mysql_query("$requete limit $debut,$fin");    

    //Affichage le contenu de la table   
//avec une limite &agrave; 12    
$limit_str = "LIMIT $debut , $fin"; 

Mammouth du PHP | 620 Messages

23 févr. 2009, 15:47

En ayant modifié le limit on est revenu au moment ou si je clique pour voir la page deux, je n'ai plus que le nom des type avec leur lien qui s'affichent.