23-05-2014, 12:22 PM
J’hésite à vous poster mon code car c'est un sacré morceau, mais si c'est le seul moyens pour m’aider je le fais, je vais tenter de le mettre d'une façon clair, seulement certains noms de variable n'ont rien avoir avec le réelle sens car je réutilise beaucoup mon code:
Code pagination avec requête en dur (qui fonctionne ):
------------------------------------------------------
Début code pagination:
-------------------------------------------------------------------------------------
Code affichage résultats :
-----------------------------------------------------------------
Suite code pagination:
--------------------------------------------------------------------------
--------------------------------------------------------------------------
Maintenant code pagination de ma fonction de recherche requête en dynamique (qui fonctionne pas ) :
//Dans le cas ou l'utilisateur a déjà posté une recherche on garde sa requête en session sous $_SESSION['req1']//
----------------------------------------------------------------
//Dans le cas ou l’utilisateur envoi sa recherche pour la première fois//
Code pagination avec requête en dur (qui fonctionne ):
------------------------------------------------------
Début code pagination:
Code :
$articleParPage=9;
$req_utilisateurs = mysql_query('SELECT COUNT(*) AS total FROM article WHERE categorie = "pinceaux_accessoires" AND sous_categorie = "levres_pa" AND disponible = 1');
$rep_utilisateurs = mysql_fetch_assoc($req_utilisateurs);
$total_utilisateurs = $rep_utilisateurs['total'];
$nombreDePages=ceil($total_utilisateurs/$articleParPage);
if(isset($_GET['page']))
{
$pageActuelle=intval($_GET['page']);
if($pageActuelle>$nombreDePages)
{
$pageActuelle=$nombreDePages;
}
}
else
{
$pageActuelle=1;
}
$premiereEntree=($pageActuelle-1)*$articleParPage;
if($premiereEntree <= 1)
{
$premiereEntree = 0;
}
$retour_utilisateurs = mysql_query('SELECT * FROM article WHERE categorie = "pinceaux_accessoires" AND sous_categorie = "levres_pa" AND disponible = 1 ORDER BY article_ID DESC LIMIT '.$premiereEntree.', '.$articleParPage.'') or die (mysql_error());
-------------------------------------------------------------------------------------
Code affichage résultats :
Code :
while($donnees_utilisateurs = mysql_fetch_assoc($retour_utilisateurs)) {
$utilisateur_id = $donnees_utilisateurs["utilisateur_ID"];
$id = $donnees_utilisateurs["article_ID"];
echo '<div id="affichage_article_utilisateur">';
echo '<a href="page_utilisateur.php?id='.$utilisateur_id.'">'.$donnees_utilisateurs["pseudo_createur_article"].'</a>';
echo '<a href="article.php?id='.$id.'"><img src="' . $donnees_utilisateurs["lien_article"] . '" /></a>';
echo ''.$donnees_utilisateurs["prix"].' €';
echo '</div>';
}
echo '<div id="pagination">';
echo '<div class="pagination">';
echo '<p align="center">';
echo '<center><ul>';
-----------------------------------------------------------------
Suite code pagination:
Code :
$Ncom = $total_utilisateurs; // Nombre de commentaires au total (modifiable)
$Nmax = 9; // Nombre de commentaires par page (modifiable)
$nbre_cle = 5; // Nombre de clés que l'on veut afficher (modifiable)
$pagin_pas = 5; // Taille du pas du défilement rapide (modifiable)
if(isset($_GET['page']))
{
$pagin_pos = $ID_message_supprime = intval($_GET['page']);
}
else{
$pagin_pos = 1;
}
if($pagin_pos == 0 or $pagin_pos == null)
{
$pagin_pos = 1;
}
$pagin_last = ((int)(($Ncom + $Nmax - 1) / $Nmax ));
if ($pagin_pos > 1) //Si l'on se trouve au début
{
$debut = '<li><a href="levres_pa.php?page=1">««</a></li> ';
$page33 = $pagin_pos - 1;
$pp = '<li><a href="levres_pa.php?page=' . $page33 . '">«</a></li> ';
}
else
{
$debut = '<li><a href="levres_pa.php?page=1">««</a></li>';
$pp = '<li><a href="levres_pa.php?page=1">«</a></li>';
};
if ($pagin_pos > $pagin_pas) //Si l'on se trouve à plus de 5 pages
{
$pp5 = '<li><a href="levres_pa.php?page=" . ('.$pagin_pos.' - '.$pagin_pas.') . "">Précédent5</a></li> ';
}
else
{
$pp5 = "Précédent5 ";
};
if ($pagin_pos < $pagin_last) //Si l'on se trouve à la fin
{
$fin = ' <li><a href="levres_pa.php?page='.$pagin_last.'">»»</a></li>';
$pagin_posf = $pagin_pos + 1;
$ps = '<li><a href="levres_pa.php?page='.$pagin_posf.'">»</a></li> ';
}
else
{
$fin = ' <li><a href="levres_pa.php?page='.$pagin_last.'">»»</a></li>';
$ps = '<li><a href="levres_pa.php?page='.$pagin_last.'">»</a></li>';
};
if ($pagin_pos < ($pagin_last - $pagin_pas + 1)) //Si l'on se trouve à moins de 5 pages de la fin
{
$ps5 = '<a href="levres_pa.php?page=" . ('.$pagin_pos.' + '.$pagin_pas.') . "">suivant5</a> ';
}
else
{
$ps5 = " suivant5 ";
};
if (($pagin_pos > ((int)($nbre_cle / 2) + 1))) //Si besoin des "..." de droite
{
$sepg = '<li> <li><a href="levres_pa.php?page='.$pagin_pos.'">...</a></li>';
} else
{
$sepg = " ";
}
if (($pagin_pos < ($pagin_last - ((int)($nbre_cle / 2))))) //Si besoin des "..." de gauche
{
$sepd = '<li> <li><a href="levres_pa.php?page='.$pagin_pos.'">...</a></li>';
} else
{
$sepd = " ";
}
if ($pagin_pos > ((int)($nbre_cle / 2))) // Arret du défilement quand on arrive aux bornes
{
if ($pagin_pos < ($pagin_last - ((int)($nbre_cle / 2))))
{
$i=($pagin_pos-((int)($nbre_cle / 2)));
}
else
{
$i=$pagin_last - $nbre_cle + 1;
}
}
else
{
$i=1;
}
$liste = "";
$j = $i + $nbre_cle;
while ($i < $j)
{
if (($i <= $pagin_last) and ($i >= 1))
{
$cle = ' <li><a href="levres_pa.php?page='.$i.'">'.$i.'</a></li>';
if ($i == $pagin_pos)
{
$liste = $liste . "<li>$cle</li>";
} else
{
$liste = $liste . $cle . " ";
}
}
++$i;
}
if($total_utilisateurs == 0){
}else{
echo ''.$debut.''.$pp.''.$sepg.''.$liste.''.$sepd.''.$ps.''.$fin.'<br/>';
}
echo '</ul></center></p></div>';
--------------------------------------------------------------------------
--------------------------------------------------------------------------
Maintenant code pagination de ma fonction de recherche requête en dynamique (qui fonctionne pas ) :
//Dans le cas ou l'utilisateur a déjà posté une recherche on garde sa requête en session sous $_SESSION['req1']//
Code :
if(isset( $_SESSION['req1']))
{
$r = $_SESSION['req1'];
$total_utilisateurs = $_SESSION['tot_ut'];
echo $r."<br/>";
$d= mysql_query($r) or die(mysql_error());
echo '<br/><br/><br/>';
$re = mysql_num_rows($d);
//[b]On affiche les résultats[/b]//
echo '<div id="contenair_article">';
while($donnees_utilisateurs = mysql_fetch_assoc($d)) {
$id = $donnees_utilisateurs["article_ID"];
$utilisateur_id = $donnees_utilisateurs["utilisateur_ID"];
echo '<div id="affichage_article_utilisateur">';
echo '<a href="page_utilisateur.php?id='.$utilisateur_id.'">'.$donnees_utilisateurs["pseudo_createur_article"].'</a>';
echo '<a href="article.php?id='.$id.'"><img src="' . $donnees_utilisateurs["lien_article"] . '" /></a>';
echo ''.$donnees_utilisateurs["prix"].' €';
echo '</div>';
}
//[b]Code pagination[/b]//
echo '<div id="pagination">';
echo '<div class="pagination">';
echo '<center><ul>';
$Ncom = $total_utilisateurs; // Nombre de commentaires au total (modifiable)
$Nmax = 9; // Nombre de commentaires par page (modifiable)
$nbre_cle = 5; // Nombre de clés que l'on veut afficher (modifiable)
$pagin_pas = 5; // Taille du pas du défilement rapide (modifiable)
if(isset($_GET['page']))
{
$pagin_pos = $ID_message_supprime = intval($_GET['page']);
}
else{
$pagin_pos = 1;
}
if($pagin_pos == 0 or $pagin_pos == null)
{
$pagin_pos = 1;
}
$pagin_last = ((int)(($Ncom + $Nmax - 1) / $Nmax ));
if ($pagin_pos > 1) //Si l'on se trouve au début
{
$debut = '<li><a href="recherche.php?page=1">««</a></li> ';
$page33 = $pagin_pos - 1;
$pp = '<li><a href="recherche.php?page=' . $page33 . '">«</a></li> ';
}
else
{
$debut = '<li><a href="recherche.php?page=1">««</a></li>';
$pp = '<li><a href="recherche.php?page=1">«</a></li>';
};
if ($pagin_pos > $pagin_pas) //Si l'on se trouve à plus de 5 pages
{
$pp5 = '<li><a href="recherche.php?page=" . ('.$pagin_pos.' - '.$pagin_pas.') . "">Précédent5</a></li> ';
}
else
{
$pp5 = "Précédent5 ";
};
if ($pagin_pos < $pagin_last) //Si l'on se trouve à la fin
{
$fin = ' <li><a href="recherche.php?page='.$pagin_last.'">»»</a></li>';
$pagin_posf = $pagin_pos + 1;
$ps = '<li><a href="recherche.php?page='.$pagin_posf.'">»</a></li> ';
}
else
{
$fin = ' <li><a href="recherche.php?page='.$pagin_last.'">»»</a></li>';
$ps = '<li><a href="recherche.php?page='.$pagin_last.'">»</a></li>';
};
if ($pagin_pos < ($pagin_last - $pagin_pas + 1)) //Si l'on se trouve à moins de 5 pages de la fin
{
$ps5 = '<a href="recherche.php?page=" . ('.$pagin_pos.' + '.$pagin_pas.') . "">suivant5</a> ';
}
else
{
$ps5 = " suivant5 ";
};
if (($pagin_pos > ((int)($nbre_cle / 2) + 1))) //Si besoin des "..." de droite
{
$sepg = '<li> <li><a href="recherche.php?page='.$pagin_pos.'">...</a></li>';
} else
{
$sepg = " ";
}
if (($pagin_pos < ($pagin_last - ((int)($nbre_cle / 2))))) //Si besoin des "..." de gauche
{
$sepd = '<li> <li><a href="recherche.php?page='.$pagin_pos.'">...</a></li>';
} else
{
$sepd = " ";
}
if ($pagin_pos > ((int)($nbre_cle / 2))) // Arret du défilement quand on arrive aux bornes
{
if ($pagin_pos < ($pagin_last - ((int)($nbre_cle / 2))))
{
$i=($pagin_pos-((int)($nbre_cle / 2)));
}
else
{
$i=$pagin_last - $nbre_cle + 1;
}
}
else
{
$i=1;
}
$liste = "";
$j = $i + $nbre_cle;
while ($i < $j)
{
if (($i <= $pagin_last) and ($i >= 1))
{
$cle = ' <li><a href="recherche.php?page='.$i.'">'.$i.'</a></li>';
if ($i == $pagin_pos)
{
$liste = $liste . "<li>$cle</li>";
} else
{
$liste = $liste . $cle . " ";
}
}
++$i;
}
echo ''.$debut.''.$pp.''.$sepg.''.$liste.''.$sepd.''.$ps.''.$fin.'<br/>';
echo '</ul></center></div>';
echo '</div>';
echo '</div>';
----------------------------------------------------------------
//Dans le cas ou l’utilisateur envoi sa recherche pour la première fois//
Code :
}
else{
$recherche = mysql_real_escape_string(htmlspecialchars($_POST['recherche']));
$explode = explode(" ",$recherche);
$a = 0;
$articleParPage=9;
//Requête dynamique//
if($recherche == '')
{
echo'Zone de recherche vide.';
}
else{
$req = "SELECT COUNT(*) AS total FROM article ";
foreach($explode as $mot1)
{
if($a == 0)
{
$req .= " WHERE ";
}
else
{
$req .= " OR ";
}
$req .= "titre LIKE '%$mot1%'";
echo $req;
$a++;
}
$dd= mysql_query($req);
$rep_utilisateurs = mysql_fetch_assoc($dd);
echo '<br/>';
echo $_SESSION['tot_ut'] = $total_utilisateurs = $rep_utilisateurs['total']." Résultats<br/>";
//[b]Pagination[/b]//
$nombreDePages=ceil($total_utilisateurs/$articleParPage);
if(isset($_GET['page']))
{
$pageActuelle=intval($_GET['page']);
if($pageActuelle>$nombreDePages)
{
$pageActuelle=$nombreDePages;
}
}
else
{
$pageActuelle=1;
}
$premiereEntree=($pageActuelle-1)*$articleParPage;
if($premiereEntree <= 1)
{
$premiereEntree = 0;
}
//[b]Suite requête dynamique[/b]//
$b = 0;
$r ="SELECT * FROM article ";
foreach($explode as $mot1)
{
if($b == 0)
{
$r .= " WHERE ";
}
else
{
$r .= " OR ";
}
$r .= "titre LIKE '%$mot1%' ";
$b++;
}
$r .="ORDER BY article_ID DESC LIMIT $premiereEntree, $articleParPage";
echo $r."<br/>";
$_SESSION['req1'] = $r;
$d= mysql_query($r) or die(mysql_error());
echo '<br/><br/><br/>';
$re = mysql_num_rows($d);
//[b]Affichage résultats[/b]//
echo '<div id="contenair_article">';
while($donnees_utilisateurs = mysql_fetch_assoc($d)) {
$id = $donnees_utilisateurs["article_ID"];
$utilisateur_id = $donnees_utilisateurs["utilisateur_ID"];
echo '<div id="affichage_article_utilisateur">';
echo '<a href="page_utilisateur.php?id='.$utilisateur_id.'">'.$donnees_utilisateurs["pseudo_createur_article"].'</a>';
echo '<a href="article.php?id='.$id.'"><img src="' . $donnees_utilisateurs["lien_article"] . '" /></a>';
echo ''.$donnees_utilisateurs["prix"].' €';
echo '</div>';
}
//[b]Suite Pagination[/b]//
echo '<div id="pagination">';
echo '<div class="pagination">';
echo '<center><ul>';
$Ncom = $total_utilisateurs; // Nombre de commentaires au total (modifiable)
$Nmax = 9; // Nombre de commentaires par page (modifiable)
$nbre_cle = 5; // Nombre de clés que l'on veut afficher (modifiable)
$pagin_pas = 5; // Taille du pas du défilement rapide (modifiable)
if(isset($_GET['page']))
{
$pagin_pos = $ID_message_supprime = intval($_GET['page']);
}
else{
$pagin_pos = 1;
}
if($pagin_pos == 0 or $pagin_pos == null)
{
$pagin_pos = 1;
}
$pagin_last = ((int)(($Ncom + $Nmax - 1) / $Nmax ));
if ($pagin_pos > 1) //Si l'on se trouve au début
{
$debut = '<li><a href="recherche.php?page=1">««</a></li> ';
$page33 = $pagin_pos - 1;
$pp = '<li><a href="recherche.php?page=' . $page33 . '">«</a></li> ';
}
else
{
$debut = '<li><a href="recherche.php?page=1">««</a></li>';
$pp = '<li><a href="recherche.php?page=1">«</a></li>';
};
if ($pagin_pos > $pagin_pas) //Si l'on se trouve à plus de 5 pages
{
$pp5 = '<li><a href="recherche.php?page=" . ('.$pagin_pos.' - '.$pagin_pas.') . "">Précédent5</a></li> ';
}
else
{
$pp5 = "Précédent5 ";
};
if ($pagin_pos < $pagin_last) //Si l'on se trouve à la fin
{
$fin = ' <li><a href="recherche.php?page='.$pagin_last.'">»»</a></li>';
$pagin_posf = $pagin_pos + 1;
$ps = '<li><a href="recherche.php?page='.$pagin_posf.'">»</a></li> ';
}
else
{
$fin = ' <li><a href="recherche.php?page='.$pagin_last.'">»»</a></li>';
$ps = '<li><a href="recherche.php?page='.$pagin_last.'">»</a></li>';
};
if ($pagin_pos < ($pagin_last - $pagin_pas + 1)) //Si l'on se trouve à moins de 5 pages de la fin
{
$ps5 = '<a href="recherche.php?page=" . ('.$pagin_pos.' + '.$pagin_pas.') . "">suivant5</a> ';
}
else
{
$ps5 = " suivant5 ";
};
if (($pagin_pos > ((int)($nbre_cle / 2) + 1))) //Si besoin des "..." de droite
{
$sepg = '<li> <li><a href="recherche.php?page='.$pagin_pos.'">...</a></li>';
} else
{
$sepg = " ";
}
if (($pagin_pos < ($pagin_last - ((int)($nbre_cle / 2))))) //Si besoin des "..." de gauche
{
$sepd = '<li> <li><a href="recherche.php?page='.$pagin_pos.'">...</a></li>';
} else
{
$sepd = " ";
}
if ($pagin_pos > ((int)($nbre_cle / 2))) // Arret du défilement quand on arrive aux bornes
{
if ($pagin_pos < ($pagin_last - ((int)($nbre_cle / 2))))
{
$i=($pagin_pos-((int)($nbre_cle / 2)));
}
else
{
$i=$pagin_last - $nbre_cle + 1;
}
}
else
{
$i=1;
}
$liste = "";
$j = $i + $nbre_cle;
while ($i < $j)
{
if (($i <= $pagin_last) and ($i >= 1))
{
$cle = ' <li><a href="recherche.php?page='.$i.'">'.$i.'</a></li>';
if ($i == $pagin_pos)
{
$liste = $liste . "<li>$cle</li>";
} else
{
$liste = $liste . $cle . " ";
}
}
++$i;
}
echo ''.$debut.''.$pp.''.$sepg.''.$liste.''.$sepd.''.$ps.''.$fin.'<br/>';
echo '</ul></center></div>';