problème affichage sql sur plusieurs pages

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 : problème affichage sql sur plusieurs pages

Re: problème affichage sql sur plusieurs pages

par ouckileou » 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

Re: problème affichage sql sur plusieurs pages

par zenso » 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						
					}

Re: problème affichage sql sur plusieurs pages

par zenso » 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 !

Re: problème affichage sql sur plusieurs pages

par ouckileou » 29 juil. 2010, 11:55

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

problème affichage sql sur plusieurs pages

par zenso » 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