affichage page par page

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 : affichage page par page

par Invité » 08 mars 2005, 19:46

Bonjour,

ok merci effectivement je n'avais pas vu cela.

maintenant il subsite encore un petit problème à regler.

en fait j'affiche 5 enregistrement par page mais je veux récupérer un maximum de 150 enregistrements soit 30 pages maxi

y a t'il possibilité de faire cela et surtout comment le faire car j'ai cherché toute l'apres midi sans succes.

par Hubert Roksor » 08 mars 2005, 04:42

Si tu fais un "echo $select" tu devrais remarquer qu'il manque un espace avant "ORDER BY".

J'en profite pour distiller deux conseils:
  • si une requête ne fonctionne pas utilise "echo $requete" pour vérifier qu'elle est correcte
  • ne poste pas autant de code, personne ne le lira. Essaie de ne poster que ce qui est le plus en rapport avec le message d'erreur. Si cela ne suffit pas quelqu'un te dira sûrement ce qu'il manque.

affichage page par page

par Invité » 08 mars 2005, 03:37

bonjour,

je viens de créer un script d'affichage page par page qui fonctionne tres bien sur la premiere page mais dès que je veux passer à la suivante ça bug.

voici le script:
<?
//=========================================
// includes du fichier fonctions
//=========================================
require 'fonctions.php';
//=========================================
// information pour la connection à la DB
//=========================================
$host = '***';
$user = '***';
$pass = '***';
$db = '***';
//=========================================
// initialisation des variables 
//=========================================
// on va afficher 5 résultats par page.
$nombre = 5;  
// si limite n'existe pas on l'initialise à zéro
if (!$limite) $limite = 0; 
// on cherche le nom de la page.    
$path_parts = pathinfo($_SERVER['PHP_SELF']);
$page = $path_parts["basename"];
//=========================================    
// connection à la DB
//=========================================
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
//=========================================    
// recupération des données nécessaire 
// à l'affichage
//=========================================
if ($_POST['countryCode']!='')
{
$sql1 = mysql_query("SELECT nom FROM pays WHERE id='".$_POST['countryCode']."'") or die (mysql_error());
list($pays) = mysql_fetch_row($sql1);
}
if ($_POST['regionCode']!='')
{
$sql2 = mysql_query("SELECT nom FROM region WHERE id='".$_POST['regionCode']."'") or die (mysql_error());
list($region) = mysql_fetch_row($sql2);
}
if ($_POST['areaCode']!='')
{
$sql3 = mysql_query("SELECT nom FROM departement WHERE id='".$_POST['areaCode']."'") or die (mysql_error());
list($departement) = mysql_fetch_row($sql3);
}


$aujourdhui = date("Y-m-d");
$annee = date("Y");
$annee2 = $annee-$_POST['rech_age_maxi'];

if ($_POST['rech_age_maxi']!='')
{
$age_maxi = ''.$annee2.'-01-01';
}
if ($_POST['rech_age_mini']!='')
{
$age_mini = date ( 'Y-m-d' , mktime ( 0,0,0, substr( $aujourdhui , 5 , 2 ) ,substr( $aujourdhui , 8 , 2 ) ,substr( $aujourdhui , 0 , 4 ) -$_POST['rech_age_mini'] ));
}
//=========================================    
// requête SQL qui compte le nombre total 
// d'enregistrements dans la table.
//=========================================
$select = 'SELECT count(pseudo) FROM membres';
$where = array(); 
$fields1 = array('pseudo','sexe','sexe_recherche','type_relation','pays','region','departement','ville','silhouette','couleur_cheveux','type_cheveux','couleur_yeux','style','fumeur'); 

foreach ($fields1 as $field) { 

    if (isset($_POST[$field]) && !empty($_POST[$field])) { 
        $where[] = "" .  $field . "='" . mysql_escape_string($_POST[$field]) . "'"; 
    }
	}

if (isset($pays) && !empty($pays)) { 
        $where[] = "`pays`='" . mysql_escape_string($pays) . "'"; 
    }
if (isset($region) && !empty($region)) { 
        $where[] = "`region`='" . mysql_escape_string($region) . "'"; 
    }
if (isset($departement) && !empty($departement)) { 
        $where[] = "`departement`='" . mysql_escape_string($departement) . "'"; 
    }	
	
if (isset($age_maxi) && !empty($age_maxi)) { 
        $where[] = "`naissance`>='" . mysql_escape_string($age_maxi) . "'"; 
    }
	
if (isset($age_mini) && !empty($age_mini)) { 
        $where[] = "`naissance`<='" . mysql_escape_string($age_mini) . "'"; 
    }	
	
if (isset($_POST['taille_maxi_rech']) && !empty($_POST['taille_maxi_rech'])) { 
        $where[] = "`taille`<='" . mysql_escape_string($_POST['taille_maxi_rech']) . "'"; 
    }
	
if (isset($_POST['taille_mini_rech']) && !empty($_POST['taille_mini_rech'])) { 
        $where[] = "`taille`>='" . mysql_escape_string($_POST['taille_mini_rech']) . "'"; 
    }
	
if (count($where) > 0){ 
    $select .= " WHERE " . implode(' AND ', $where); 
	
} 
$result = mysql_query($select,$link)  or die ('Erreur : '.mysql_error() );
$row = mysql_fetch_row($result);
$total = $row[0];
//=========================================
// vérifier la validité de notre variable 
// $limite;
//=========================================
$verifLimite= verifLimite($limite,$total,$nombre);
// si la limite passée n'est pas valide on la remet à zéro
if(!$verifLimite)  {
    $limite = 0;
}
//=========================================
// requête SQL qui ne prend que le nombre 
// d'enregistrement necessaire à l'affichage.
//=========================================
$select = 'select pseudo,DATE_FORMAT(naissance,"%d-%m-%Y") as  naissance,taille,ville,departement,region,description FROM membres';
$where = array(); 
$fields1 = array('pseudo','sexe','sexe_recherche','type_relation','pays','region','departement','ville','silhouette','couleur_cheveux','type_cheveux','couleur_yeux','style','fumeur'); 

foreach ($fields1 as $field) { 

    if (isset($_POST[$field]) && !empty($_POST[$field])) { 
        $where[] = "" .  $field . "='" . mysql_escape_string($_POST[$field]) . "'"; 
    }
	}

if (isset($pays) && !empty($pays)) { 
        $where[] = "`pays`='" . mysql_escape_string($pays) . "'"; 
    }
if (isset($region) && !empty($region)) { 
        $where[] = "`region`='" . mysql_escape_string($region) . "'"; 
    }
if (isset($departement) && !empty($departement)) { 
        $where[] = "`departement`='" . mysql_escape_string($departement) . "'"; 
    }	
	
if (isset($age_maxi) && !empty($age_maxi)) { 
        $where[] = "`naissance`>='" . mysql_escape_string($age_maxi) . "'"; 
    }
	
if (isset($age_mini) && !empty($age_mini)) { 
        $where[] = "`naissance`<='" . mysql_escape_string($age_mini) . "'"; 
    }	
	
if (isset($_POST['taille_maxi_rech']) && !empty($_POST['taille_maxi_rech'])) { 
        $where[] = "`taille`<='" . mysql_escape_string($_POST['taille_maxi_rech']) . "'"; 
    }
	
if (isset($_POST['taille_mini_rech']) && !empty($_POST['taille_mini_rech'])) { 
        $where[] = "`taille`>='" . mysql_escape_string($_POST['taille_mini_rech']) . "'"; 
    }
	
if (count($where) > 0){ 
    $select .= " WHERE " . implode(' AND ', $where); 
	
} 
$select .= 'ORDER BY pseudo ASC limit '.$limite.','.$nombre.'';
$result = mysql_query($select,$link)  or die ('Erreur : '.mysql_error() );
//=========================================    
// si on a récupéré un resultat on l'affiche.
//=========================================
if($total) {
    // début du tableau
include "".$_SERVER['DOCUMENT_ROOT']."/include/header.php";
echo '<TABLE width="100%" align="center" cellpadding="0" cellspacing="0" border="0">';
echo '<TR><TD height="20" valign="top>&nbsp;</TD></TR><TR><TD valign="top">';        
    while($row = mysql_fetch_array($result)) {

//=========================================    
// On calcul l'age.
//=========================================
$date_de_naissance = $row['naissance'];	
$chiffre = explode('-',$date_de_naissance);	
$time_naissance = mktime(0,0,0,$chiffre[1],$chiffre[0],$chiffre[2]);	
$seconde_vecu = time() - $time_naissance;	
$seconde_par_an = (1461*24*60*60)/4;
$age = floor(($seconde_vecu / $seconde_par_an) +1);

echo '<TABLE bgcolor="#FFC097" width="90%" align="center" cellpadding="0" cellspacing="0" border="0">';
echo '<TR><TD>';
echo '<TABLE width="100%" align="center" cellpadding="1" cellspacing="0" border="0" bgcolor="#FFC097">';
echo '<TR><TD>';
echo '<TABLE valign="top" width="100%" align="center" cellpadding="0" cellspacing="0" border="0" bgcolor="#F7F7F7">';
echo '<TR><TD height="120" bgcolor="#FFFFFF" valign="center" align="center">';

echo '<B>Pas de photo</B>';

echo '</TD><TD width="1" bgcolor="#FFC097">';
echo '<TD valign="top" width="430">';
echo '<TABLE width="100%" align="center" cellpadding="0" cellspacing="0" border="0">';
echo '<TR><TD height="20">';
echo '<TABLE valign="top" width="95%" align="center" cellpadding="0" cellspacing="0" border="0">';
echo '<TR><TD><B>'.$row['pseudo'].'</B>&nbsp;&nbsp;<B>'.$age.' ans</B>&nbsp;&nbsp;<B>'.$row['taille'].'</B></TD></TR>';
echo '</TABLE></TD></TR>';
echo '<TR><TD height="1" bgcolor="#FFC097"></TR>';
echo '<TR><TD height="20">';
echo '<TABLE width="95%" align="center" cellpadding="0" cellspacing="0" border="0">';
echo '<TR><TD><B>'.$row['ville'].'</B>&nbsp;&nbsp;<B>'.$row['departement'].'</B>&nbsp;&nbsp;<B>'.$row['region'].'</B></TD></TR>';
echo '</TABLE></TD></TR>';
echo '<TR><TD height="1" bgcolor="#FFC097"></TR>';
echo '<TR><TD valign="center" height="80">';
echo '<TABLE width="95%" align="center" cellpadding="0" cellspacing="0" border="0">';
echo '<TR><TD ><B>'.$row['description'].'</B></TD></TR>';
echo '</TABLE></TD></TR></TABLE></TD></TR></TABLE></TD></TR></TABLE>';
echo '<TR><TD colspan="3" height="20">';
echo '<TABLE width="100%" align="center" cellpadding="0" cellspacing="0" border="0">';
echo '<TR><TD><B>&nbsp;Derniere visite: 07 mars 14:00</B></TD><TD align="right"><B>';
echo '<IMG src="http://www.monsite.com/img/maison.gif">';
echo '&nbsp;&nbsp;';
echo '<IMG src="http://www.monsite.com/img/courrier.gif">';
echo '&nbsp;</B></TD></TR></TABLE></TD></TR><BR><BR></TD></TR></TABLE>';


	
}    
}
$limitesuivante = $limite + $nombre;
$limiteprecedente = $limite - $nombre;
if($limite != 0) {
    echo '<a href="'.$page.'?limite='.$limiteprecedente.'">Page précédente</a>';
}
echo '&nbsp;&nbsp;';
if($limitesuivante < $total) {
    echo '<a href="'.$page.'?limite='.$limitesuivante.'">Page Suivante</a>';
}
echo '</TD></TR></TABLE>';
include "".$_SERVER['DOCUMENT_ROOT']."/include/footer.php";
?>
en fait dès que je passe à la seconde page, voici le message d'erreur qu'il m'est affiché:
Erreur : You have an error in your SQL syntax near 'BY pseudo ASC limit 5,5' at line 1