PAGINATION DES RESULTATS D'UNE REQUETE MULTICRITERE [Résolu]

armelkoudou 3 Messages postés lundi 19 avril 2010Date d'inscription 6 décembre 2011 Dernière intervention - 3 déc. 2011 à 14:20 - Dernière réponse : NHenry 14179 Messages postés vendredi 14 mars 2003Date d'inscription 23 mai 2018 Dernière intervention
- 9 déc. 2011 à 22:00
Je sollicite l'aide de personne plus avancées que moi pour m' apporter un solution .
je n' arrive pas à paginer les resultats de ma recherche multicritère.
La pagination que j' ai adapté marche lorsqu' il sagit d'afficher toutes les info , mais ne marche pas losque j'aplique la requete sql en rouge
voici ci dessous le code de la page .


http://www.africonnexion.com/default.php?page= repertoire_tri



<?php require_once('Connections/req.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue "", $theNotDefinedValue "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}

$currentPage = $_SERVER["PHP_SELF"];

$maxRows_repert = 10;
$pageNum_repert = 0;
if (isset($_GET['pageNum_repert'])) {
$pageNum_repert = $_GET['pageNum_repert'];
}
$startRow_repert = $pageNum_repert * $maxRows_repert;

mysql_select_db($database_req, $req);
$query_repert = "SELECT * FROM afriwork09 WHERE secteur='$_REQUEST[secteur]' AND pays='$_REQUEST[pays]' AND ville LIKE '%$_POST[ville]%' ORDER BY secteur ASC";
$query_limit_repert = sprintf("%s LIMIT %d, %d", $query_repert, $startRow_repert, $maxRows_repert);
$repert = mysql_query($query_limit_repert, $req) or die(mysql_error());
$row_repert = mysql_fetch_assoc($repert);

if (isset($_GET['totalRows_repert'])) {
$totalRows_repert = $_GET['totalRows_repert'];
} else {
$all_repert = mysql_query($query_repert);
$totalRows_repert = mysql_num_rows($all_repert);
}
$totalPages_repert = ceil($totalRows_repert/$maxRows_repert)-1;

mysql_select_db($database_req, $req);
$query_sect = "SELECT DISTINCT secteur FROM afriwork09 ORDER BY secteur ASC";
$sect = mysql_query($query_sect, $req) or die(mysql_error());
$row_sect = mysql_fetch_assoc($sect);
$totalRows_sect = mysql_num_rows($sect);

mysql_select_db($database_req, $req);
$query_pays = "SELECT DISTINCT pays FROM afriwork09 ORDER BY pays ASC";
$pays = mysql_query($query_pays, $req) or die(mysql_error());
$row_pays = mysql_fetch_assoc($pays);
$totalRows_pays = mysql_num_rows($pays);

mysql_select_db($database_req, $req);
$query_ville = "SELECT DISTINCT ville FROM afriwork09 ORDER BY ville ASC";
$ville = mysql_query($query_ville, $req) or die(mysql_error());
$row_ville = mysql_fetch_assoc($ville);
$totalRows_ville = mysql_num_rows($ville);

mysql_select_db($database_req, $req);
$query_commune = "SELECT DISTINCT commune FROM afriwork09 ORDER BY commune ASC";
$commune = mysql_query($query_commune, $req) or die(mysql_error());
$row_commune = mysql_fetch_assoc($commune);
$totalRows_commune = mysql_num_rows($commune);

$queryString_repert = "";
if (!empty($_SERVER['QUERY_STRING'])) {
$params = explode("&", $_SERVER['QUERY_STRING']);
$newParams = array();
foreach ($params as $param) {
if (stristr($param, "pageNum_repert") == false &&
stristr($param, "totalRows_repert") == false) {
array_push($newParams, $param);
}
}
if (count($newParams) != 0) {
$queryString_repert = "&" . htmlentities(implode("&", $newParams));
}
}
$queryString_repert = sprintf("&totalRows_repert=%d%s", $totalRows_repert, $queryString_repert);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
<style type="text/css">
<!--
.Style12 {color: #000000}
.Style2 { font-size: 10px;
color: #FF0000;
}
.pibrepert {
background-color: #FFF;
background-image: url(arrierepubrep.jpg);
background-position: left top;
}
-->
</style>
</head>


,

----

<form id="form1" name="form1" method="post" action="default.php?page=repertoire_tri">
<table width="722" border="0" align="center" cellpadding="0" cellspacing="0">
----, </td>
secteur,
,
,
pays,
,
,
Saisir la ville sans faute,
,

----

,
<label for="secteur"></label>
<select name="secteur" id="secteur">
<?php
do {
?>
<option value="<?php echo $row_sect['secteur']?>"<?php if (!(strcmp($row_sect['secteur'], ucfirst($row_sect['secteur'])))) {echo "selected=\"selected\"";} ?>><?php echo $row_sect['secteur']?></option>
<?php
} while ($row_sect = mysql_fetch_assoc($sect));
$rows = mysql_num_rows($sect);
if($rows > 0) {
mysql_data_seek($sect, 0);
$row_sect = mysql_fetch_assoc($sect);
}
?>
</select>,
,
,
<label for="pays"></label>
<select name="pays" id="pays">
<?php
do {
?>
<option value="<?php echo $row_pays['pays']?>"<?php if (!(strcmp($row_pays['pays'], $row_pays['pays']))) {echo "selected=\"selected\"";} ?>><?php echo $row_pays['pays']?></option>
<?php
} while ($row_pays = mysql_fetch_assoc($pays));
$rows = mysql_num_rows($pays);
if($rows > 0) {
mysql_data_seek($pays, 0);
$row_pays = mysql_fetch_assoc($pays);
}
?>
</select>,
,
,
<label for="ville"></label>
,


</form></td>
</tr>
</table>
<table width="579" border="0" align="center" cellpadding="0" cellspacing="0">
---- |

<?php do { ?>
<table width =\"459\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
----

<table width="580" border="0" align="center" cellpadding="0" cellspacing="0">
<!-- fwtable fwsrc="Sans titre" fwbase="repert.jpg" fwstyle="Dreamweaver" fwdocid = "1764264203" fwnested="0" -->
----, </td>
,
,

----

<table width="499" height="149" border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#86D1F1">
----, <?php
$img = $row_repert['image'];
if ($img == \"\") // le prenom est vide
echo '';
else // le prenom est pas vide
echo '';
?></td>
,
<?php echo $row_repert['entreprise']; ?>

<?php echo $row_repert['secteur']; ?>

<?php echo $row_repert['pays']; ?>

<?php echo $row_repert['ville']; ?> <?php echo $row_repert['commune']; ?>

<?php echo $row_repert['telephone']; ?>

<table width="100" border="0" align="right" cellpadding="0" cellspacing="0">
----, [<?php printf( "><?php echo $i;?>]<?php echo " | "; ?>
<?php
}
}
?></th>
<th width="10" align="left" valign="top" scope="col"> </th>
</tr>
</table>

</html>
<?php
mysql_free_result($repert);

mysql_free_result($sect);

mysql_free_result($pays);

mysql_free_result($ville);

mysql_free_result($commune);
?>


javascript:void(0);
Afficher la suite 

Votre réponse

3 réponses

NHenry 14179 Messages postés vendredi 14 mars 2003Date d'inscription 23 mai 2018 Dernière intervention - 3 déc. 2011 à 14:44
+3
Utile
Bonjour,

Tu peux utiliser la clause LIMIT pour induire un Offset ainsi que le nombre d'enregistrement à retourner.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de NHenry
armelkoudou 3 Messages postés lundi 19 avril 2010Date d'inscription 6 décembre 2011 Dernière intervention - 6 déc. 2011 à 11:11
0
Utile
merci bien pour les conseils .
A ce stade de mes recherche je suis vraiment busy je souhaiterai avoir plus ample éclairci sur la manipulation et ml' adaptation d'un code de pagination des résultat d' une requête multicritère comme celle ci :

mysql_select_db($database_req, $req);
$query_repert = "SELECT * FROM afriwork09 WHERE secteur='$_REQUEST[secteur]' AND pays='$_REQUEST[pays]' AND ville LIKE '%$_POST[ville]%' ORDER BY secteur ASC";

merci encore de m' aider a résoudre se problème qui perdure


javascript:void(0);
Commenter la réponse de armelkoudou
NHenry 14179 Messages postés vendredi 14 mars 2003Date d'inscription 23 mai 2018 Dernière intervention - 9 déc. 2011 à 22:00
0
Utile
Bonjour,

Regardes la documentation de la clause LIMIT.
Il te faudra faire une requête à chaque page.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Commenter la réponse de NHenry

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.