problème affichage sql sur plusieurs pages

Petit nouveau ! | 6 Messages

29 juil. 2010, 11:19

Bonjour à tous !

J'ai un soucis avec mon affichage sql sur plusieurs pages qui fonctionne très bien sur mon site Free mais ne fonctionne pas sur mon nouvel hébergeur (OVH) alors qu'il s'agit d'exactement les mêmes pages et la même BDD.
Il m'affiche bien mes 5 premiers résultats, les liens existent bien en dessous des résultats par contre dès que je clique sur l'un d'entre eux, les résultats restent toujours les 5 premiers alors que l'url affiche :
"http://www.***.com/***.php?limite=5&PHPSESSID=b5c5eb49fec3bb893999b23214ef8a77" lors de la première visite du site par le navigateur ou bien "http://www.***.com/***.php?limite=5" par la suite.
En début de chaque page j'ai un :
<?php
session_start();
?>
Voici mon code qui me pose maintenant soucis : :oops:
mysql_free_result($result);


$limitesuivante = $limite + $nombre;
$limiteprecedente = $limite - $nombre;

function affichePages($nombre,$page,$total) {
        $nbpages=ceil($total/$nombre);// 5 est le résultat par page
        $numeroPages = 1;
        $compteurPages = 1;
        $limite  = 0;
        while($numeroPages <= $nbpages) {
        echo '<span class="numPage"><a href = "'.$page.'?limite='.$limite.'">'.$numeroPages.'</a></span>';
		echo '<style type="text/css">.numPage a{color:blue;font-weight:bold;margin:5px;}</style>';
		echo '<style type="text/css">.numPage a:hover{background-color:gray;}</style>';
        $limite = $limite + 5;// 5 est le résultat par page
        $numeroPages = $numeroPages + 1;
        $compteurPages = $compteurPages + 1;
            if($compteurPages == 10) {
            $compteurPages = 1;
            }
        }
        
}
echo "<center>";
if($limite != 0) {
	echo '<span class="enLigne"><a href="'.$page.'?limite='.$limiteprecedente.'">Page précédente</a></span>';
	echo '<style type="text/css">.enLigne a{color:blue;display:inline;padding:10px;}</style>';
	
}
affichePages($nombre,$page,$total);
if($limitesuivante < $total) {
	echo '<span class="enLigne"><a href="'.$page.'?limite='.$limitesuivante.'">Page Suivante</a></span>';
	echo '<style type="text/css">.enLigne a{color:blue;display:inline; padding:10px;}</style>';
}
echo "</center>";

Quelqu'un aurait-il une réponse pour moi s'il vous plaît, vous l'aurez certainement compris, je suis débutant ! :D

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

29 juil. 2010, 11:55

Fait afficher la requête SQL exécutée à chaque fois, et teste la.

Petit nouveau ! | 6 Messages

30 juil. 2010, 18:17

Fait afficher la requête SQL exécutée à chaque fois, et teste la.

Que veux-tu dire par teste-la ! L'afficher avec des echo y'a pas de soucis, mais tester ??? Merci de ton aide !

Petit nouveau ! | 6 Messages

30 juil. 2010, 18:21

Le code qui précède est le suivant :
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());

$nombre = 5;  // on va afficher 5 résultats par page.
if (!isset($limite)) $limite = 0; // si on arrive sur la page pour la première fois 
               // on met limite à 0.
    
$path_parts = pathinfo($_SERVER['PHP_SELF']);
$page = $path_parts['basename'];

$select = 'SELECT count(*) FROM film';

$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );

$row = mysql_fetch_row($result);

$total = $row[0];

// requête SQL qui ne prend que le nombre d'enregistrements nécessaire à l'affichage.

$select = 'select * from film limit '.$limite.','.$nombre;

$result = mysql_query($select,$link)  or die ('Erreur : '.mysql_error() );

// si on a récupéré un résultat on l'affiche.
if($total) {
	
	while($row = mysql_fetch_array($result))
					{
						echo "<div id='annon'>";
							echo "<div id='annonH'>";
							echo "<center>&nbsp; &nbsp; &nbsp; N&#176; :".$row['nofilm'];
							echo "&nbsp; &nbsp; &nbsp; &nbsp; Titre :".$row['titre'];
							echo "</center>";
							echo "</div>"; // fin annonH
							echo "<div id='annonB'>";
							echo "<center>&nbsp; &nbsp; &nbsp;Ann&eacute;e :".$row['annee'];
							echo "&nbsp; &nbsp; &nbsp; &nbsp;<a href=\" reserv02.php?nofilm='".$row['nofilm']."'&titre='".$row['titre']."'&annee='".$row['annee']."'&nogenre='".$row['nogenre']."'&affiche='".$row['affiche']."' \">R&eacute;server</a></center>";
							echo "</div>"; //fin annonB
						echo "</div>"; //fin annon						
					}

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

30 juil. 2010, 20:03

Ah je voulais dire directement sur la base, phpMyAdmin par exemple, pour controler facilement si déjà elle est construite correctement à chaque fois