McGyver59
Messages postés26Date d'inscriptionvendredi 20 novembre 2009StatutMembreDernière intervention 1 décembre 2013
-
18 janv. 2012 à 10:06
McGyver59
Messages postés26Date d'inscriptionvendredi 20 novembre 2009StatutMembreDernière intervention 1 décembre 2013
-
18 janv. 2012 à 19:45
Bonjour
Je reviens vers vous car j'ai un soucis pour faire une pagination. Chaque fois que je met un code de pagination cela m'affiche plus de 5000 pages j'ai tout essayé et pas moyen d'y arriver j'essaie avec ce tuto http://antoine-herault.developpez.com/tutoriels/php/pagination-automatique-en-php/ mais voila cela m'affiche trop de page
Voici mon code
<?php
mysql_connect('localhost','users','mot de passe');
mysql_select_db('base de donnée');
//On determine l'expression a rechercher
if(isset($_GET['search']) && strlen($_GET['search'])>2)
{
$rec = mysql_real_escape_string(htmlspecialchars($_GET['search']));
//On determine le type de recherche
if(isset($_GET['type']))
{
if($_GET['type']=='un')//Un des mots
{
$type = 1;
}
elseif($_GET['type']=='all')//Tout les mots
{
$type = 2;
}
else//L'expression exacte
{
$type = 3;
}
}
else
{
$type = 1;//type par defaut: L'expression exacte
}
//On determine si on doit surligner les mots dans les resultats
if(!isset($_GET['surligner']) or $_GET['surligner']!='true')
{
$surligner = false;
}
else
{
$surligner = true;
}
//On dertermine les identifiants, les noms et les informations des utilisateur
$req = 'SELECT image1, name, keywords FROM download WHERE ';
if($type==1)
{//ayant un des mots dans leurs informations
$mots = explode(' ',$rec);//En separre lexpression en mots cles
foreach($mots as $mot)
{
$req .= ' keywords LIKE "%'.$mot.'%" OR (name LIKE "%'.$mot.'%") OR';
}
$req .= ' 1=0';
}
elseif($type==2)
{//ayant tout des mots dans leurs informations
$mots = explode(' ',$rec);//En separre lexpression en mots cles
foreach($mots as $mot)
{
$req .' (online \'yes\' AND (keywords LIKE "%'.$mot.'%") OR (name LIKE "%'.$mot.'%")) AND';
}
$req .= ' 1=1';
}
else
{//ayant l'expression exacte dans leurs informations
//$req .= 'keywords LIKE "%'.$rec.'%"';
$req .' (online \'yes\' AND (keywords LIKE "%'.$rec.'%") OR (name LIKE "%'.$rec.'%"))';
}
//Les utilisateur seront ranges par identifiant en ordre croissant
$req .= ' order by id asc';
$requete = mysql_query($req);
//Le formulaire de recherche
?>
<form action="" method="get">
Expression à rechercher: " />
Type de recherche: /> Un des mots /> Tout les mots /> Expression exacte
Mettre en gras les mots recherchés: />
</form>
Résultats
Affiche |
Titre |
Mots clefs |
<?php
//On affiche les resultats
while($dnn = mysql_fetch_array($requete))
{
?>
----
<?php echo ''; ?>,
<?php echo $dnn['name']; ?>,
<?php
if($surligner)//Si il faut surligner les mots, on les surligne
{
if($type==3)
{
echo preg_replace('#('.preg_quote($rec).')#i', '$1', $dnn['keywords']);//On surligne l'expression exacte
}
else
{
echo preg_replace('#('.str_replace(' ','|',preg_quote($rec)).')#i', '$1', $dnn['keywords']);//On surligne les mots cles de la recherche
}
}
else
{
echo $dnn['keywords'];//On ne surligne pas
}
?>,
<?php
}
?>
<?php
}else{
?>
<form action="" method="get">
Expression à rechercher: " />
Type de recherche: /> Un des mots /> Tout les mots /> Expression exacte
Mettre en gras les mots recherchés: />
</form>
<?php
}
?>
McGyver59
Messages postés26Date d'inscriptionvendredi 20 novembre 2009StatutMembreDernière intervention 1 décembre 2013 18 janv. 2012 à 11:05
desolé je ne l'ai pas mis voici le code avec la pagination merci de ton aide
<?php
mysql_connect('localhost','users','mot de passe');
mysql_select_db('base de donnée');
//pagination
$messagesParPage= 2; //Nous allons afficher 5 messages par page.
//Une connexion SQL doit être ouverte avant cette ligne...
$retour_total=mysql_query('SELECT COUNT(*) AS total FROM download'); //Nous récupérons le contenu de la requête dans $retour_total
$donnees_total=mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau.
$total=$donnees_total['total']; //On récupère le total pour le placer dans la variable $total.
//Nous allons maintenant compter le nombre de pages.
$nombreDePages=ceil($total/$messagesParPage);
if(isset($_GET['page'])) // Si la variable $_GET['page'] existe...
{
$pageActuelle=intval($_GET['page']);
if($pageActuelle<$nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
{
$pageActuelle=$nombreDePages;
}
}
else // Sinon
{
$pageActuelle=1; // La page actuelle est la n°1
}
$premiereEntree=($pageActuelle-1)*$messagesParPage; // On calcul la première entrée à lire
//On determine l'expression a rechercher
if(isset($_GET['search']) && strlen($_GET['search'])>2)
{
$rec = mysql_real_escape_string(htmlspecialchars($_GET['search']));
//On determine le type de recherche
if(isset($_GET['type']))
{
if($_GET['type']=='un')//Un des mots
{
$type = 1;
}
elseif($_GET['type']=='all')//Tout les mots
{
$type = 2;
}
else//L'expression exacte
{
$type = 3;
}
}
else
{
$type = 1;//type par defaut: L'expression exacte
}
//On determine si on doit surligner les mots dans les resultats
if(!isset($_GET['surligner']) or $_GET['surligner']!='true')
{
$surligner = false;
}
else
{
$surligner = true;
}
//On dertermine les identifiants, les noms et les informations des utilisateur
$req = 'SELECT * FROM download WHERE ';
if($type==1)
{//ayant un des mots dans leurs informations
$mots = explode(' ',$rec);//En separre lexpression en mots cles
foreach($mots as $mot)
{
$req .= ' keywords LIKE "%'.$mot.'%" OR (name LIKE "%'.$mot.'%") OR';
}
$req .= ' 1=0';
}
elseif($type==2)
{//ayant tout des mots dans leurs informations
$mots = explode(' ',$rec);//En separre lexpression en mots cles
foreach($mots as $mot)
{
$req .' (online \'yes\' AND (keywords LIKE "%'.$mot.'%") OR (name LIKE "%'.$mot.'%")) AND';
}
$req .= ' 1=1';
}
else
{//ayant l'expression exacte dans leurs informations
//$req .= 'keywords LIKE "%'.$rec.'%"';
$req .' (online \'yes\' AND (keywords LIKE "%'.$rec.'%") OR (name LIKE "%'.$rec.'%"))';
}
//Les utilisateur seront ranges par identifiant en ordre croissant
$req .= ' order by id asc LIMIT '.$premiereEntree.', '.$messagesParPage.'';
$requete = mysql_query($req);
//Le formulaire de recherche
?>
<form action="" method="get">
Expression à rechercher: " />
Type de recherche: /> Un des mots /> Tout les mots /> Expression exacte
Mettre en gras les mots recherchés: />
</form>
Résultats
Affiche |
Titre |
Mots clefs |
<?php
echo 'Page : '; //Pour l'affichage, on centre la liste des pages
for($i =1; $i<=$nombreDePages; $i++) //On fait notre boucle
{
//On va faire notre condition
if($i==$pageActuelle) //Si il s'agit de la page actuelle...
{
echo ' [ '.$i.' ] ';
}
else //Sinon...
{
echo ' '.$i.' ';
}
}
echo '
';
//On affiche les resultats
while($dnn = mysql_fetch_array($requete))
{
?>
----
<?php echo ''; ?>,
<?php echo $dnn['name']; ?>,
<?php
if($surligner)//Si il faut surligner les mots, on les surligne
{
if($type==3)
{
echo preg_replace('#('.preg_quote($rec).')#i', '$1', $dnn['keywords']);//On surligne l'expression exacte
}
else
{
echo preg_replace('#('.str_replace(' ','|',preg_quote($rec)).')#i', '$1', $dnn['keywords']);//On surligne les mots cles de la recherche
}
}
else
{
echo $dnn['keywords'];//On ne surligne pas
}
?>,
<?php
}
?>
<?php
}else{
?>
<form action="" method="get">
Expression à rechercher: " />
Type de recherche: /> Un des mots /> Tout les mots /> Expression exacte
Mettre en gras les mots recherchés: />
</form>
<?php
}
?>