Problème de lien avec ma pagination php

Armelkev Messages postés 100 Date d'inscription   Statut Membre Dernière intervention   -  
Armelkev Messages postés 100 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je travaille sur un projet web où je dois faire des recherches et afficher les résultats de ces recherches.
Je réussie a faire ressortie mes résultats et à afficher mes différentes pages, mon problème c'est que je n'arrive pas à cliquer sur mes liens pages.

NB: Je fais mon traitement sur ma page formulaire

Mon code est le suivant:

<div id = "recherche">
<h4>Recherche d' hôtels</h4>
<div class="element">
<form action="hotel.php" method="post" name="form1">
<pre>
Ville: <select name="ville" id="recherchhotel">
<option value="1">Abidjan</option>
<option value="2">Yamoussoukro</option>
<option value="3">Bouaké</option>
<option value="4">Daloa</option>
</select>

Commune: <select name= "commune" id="recherchhotel">
<option value="">Indefini</option>
<option value="1">Abobo</option>
<option value="2">Cocody</option>
<option value="3">Treichville</option>
<option value="4">Yopougon</option>
</select>
<input type="submit" value="Rechercher" onclick="Verifier()"/>
</pre><!--<a href="hotel3.php">kevin</a>-->
</form>
</div>
</div>
<?php
include("connect.php");


if (!empty($_POST['commune']))
{
$commune = $_POST['commune'];
//Demarrage de la session
//session_start();
//$_SESSION['commune']=$_POST['commune'];


// On met dans une variable le nombre de messages qu'on veut par page
$nombreDeMessagesParPage = 2;
//On compte le nombre d'hôtels
//$nb = 'select count(*) AS nbre from hotel';
$nb = 'select count(*) AS nbre from hotel where Commune ="'.$commune.'"';
$count = mysql_query($nb) or Die ('Erreur2');
$reponse = mysql_fetch_array($count);
$totalDesMessages = $reponse['nbre'];
if ($totalDesMessages>0)
{echo 'il ya '.$totalDesMessages;
// On calcule le nombre de pages à créer
$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
// --------------- Etape 3 ---------------
// Maintenant, on va afficher les messages
// ---------------------------------------
if(isset($_GET['page']))
{
$pageActuelle = intval($_GET['page']);
if ($pageActuelle>$nombreDeMessagesParPage)
{$pageActuelle=$nombreDeMessagesParPage;}
}else{$pageActuelle = 1;}
// On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
$premierMessageAafficher = ($pageActuelle - 1) * $nombreDeMessagesParPage;
//$sql = 'select NomHotel, LieuHotel, TelHotel, EmailHotel, SitewebHotel from hotel ORDER BY NomHotel ASC LIMIT '.$premierMessageAafficher. ','.$nombreDeMessagesParPage;
$sql = 'select NomHotel, LieuHotel, TelHotel, EmailHotel, SitewebHotel from hotel where Commune="'.$commune.'" ORDER BY NomHotel ASC LIMIT '. $premierMessageAafficher. ', '.$nombreDeMessagesParPage;
?>

<table >
<tbody>
<caption>Resultat(s) de la recherche</caption>
<thead> <!-- En-tête du tableau -->
<tr>
<th>Hôtel</th>
<th>Lieu</th>
<th>Téléphone</th>
<th>Email</th>
<th>Site web</th>
</tr>
</thead>
</tbody>
<tbody> <!-- Corps du tableau -->
<?php
//On affiche les données
$req = mysql_query($sql) or Die ('Erreur1');
while ($donnees = mysql_fetch_array($req))
{
?>
<tr>
<td><?php echo $donnees['NomHotel']; ?></td>
<td><?php echo $donnees['LieuHotel']; ?></td>
<td><?php echo $donnees['TelHotel']; ?></td>
<td><?php echo $donnees['EmailHotel']; ?></td>
<td><?php echo $donnees['SitewebHotel']; ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php
echo '<p aligne = "center">Page:';
for ($i=1; $i<=$nombreDePages; $i++)
{
if ($i == $pageActuelle)
{echo '[' .$i. ']';}else{echo '<a href="hotel.php?page='.$i.'&commune='.$commune.'"> ['.$i.'</a>]';}
}echo '</p>';
}else{echo '<body onload="alert(\'Aucun resultat ...\')"><meta http-equiv="refresh" content = "0;URL=hotel.php">';}
}

Par exemple lorsque je choisis Yopougon, j'ai 4 resultats donc 2 pages:
Ma page web affiche:
Page:[1]2
mais je n'arrive pas à cliquer sur 2.

Merci d'avance.
A voir également:

13 réponses

Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
Bonsoir,

Fais afficher code source de ta page pour voir si le numero 2 est bien entre <a href=........> </a>
0
Armelkev Messages postés 100 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Alain_42, le numero 2 est bien entre <a href="hotel.php?page=2&commune=4"> [2]</a>. Il ne passe pas dans ma page web
0
Armelkev Messages postés 100 Date d'inscription   Statut Membre Dernière intervention  
 
j'ai copier le code source de mon lien que j'ai inséré dans mon code c'est à dire:
<a href="hotel.php?page=1&commune=4">1</a>
<a href="hotel.php?page=2&commune=4">2</a>
je réussie naviguer mais en php ça ne passe pas.
Merci de m'aider
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
salut,
deux petites erreurs

if (!empty($_POST['commune']))
{
$commune = $_POST['commune'];


dans ce test tu récupère la commune, mais lorsque tu clique sur page2 c'est en GET que tu vas recevoir la commune

alors modifie la partie:

if(isset($_GET['page']))
{
//recup commune qd appel depuis pagination
//mysql_real_escape_string (..) c'est pour proteger ta bdd des attaques diverses
$commune = mysql_real_escape_string($_GET['commune']);
$pageActuelle = mysql_real_escape_string (intval($_GET['page']));


//et deuxième erreur: pourquoi comparer le numero de page en cours  au nombre de MESSAGES par page ?
//if ($pageActuelle>$nombreDeMessagesParPage)
//{$pageActuelle=$nombreDeMessagesParPage;}
if ($pageActuelle > $nombreDePages)
{$pageActuelle=$nombreDePages;}
}else{$pageActuelle = 1;}


Voilà essayes déjà ça
0
Armelkev Messages postés 100 Date d'inscription   Statut Membre Dernière intervention  
 
jtenvoi mon nouvo code php et mon css:
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Armelkev Messages postés 100 Date d'inscription   Statut Membre Dernière intervention  
 
Slt, alain mon code marche très bien.
J'ai pu naviguer sur mes différentes pages. Au faite j'ai un problème avec mon css, j'explique: quand mon formulaire occupe toute la largeur de mon écran il empêche mes pages de fonctionner et quand je le reduis ça marche. Chose bizarre.
0
Armelkev Messages postés 100 Date d'inscription   Statut Membre Dernière intervention  
 
Mon code php:

<!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>JDH :: Recherche d'hôtels</title>
<!--<link rel="icon" href="images/domination.jpg" type="image/x-icon">-->
<link rel="stylesheet" type="text/css" href="MozillaStyle.css" />
<!--[if lte IE 8]>
<link rel="stylesheet" type="text/css" href="ExplorerStyle.css" />
<![endif]-->
</head>

<body>
<!--Debut table-->
<table class="tabloinfo">
<td>
<div id="Menu">
<ul>
<li id = "current"><a href = "hotel.php">Hôtel</a></li>
<li ><a href = ""><span>Annonces</span></a></li>
<li><a href = "Restaurant.php"><span>Restaurant</span></a></li>
<li><a href = ""><span>Horoscope</span></a></li>
<li><a href = "PharmacieDeGarde.php"><span>Pharmacie de garde</span></a></li>
<li><a href = ""><span>Jeux interactifs</span></a></li>
<li><a href = ""><span>Infos utiles</span></a></li>
<li><a href = ""><span>Nous-Contactez</span></a></li>
</ul>
</div>

<div id = "recherche">
<h4>Recherche d' hôtels</h4>
<div class="element">
<form action="hotel.php" method="get" name="form1">
<pre>
Ville: <select name="ville" id="recherchhotel">
<option value="1">Abidjan</option>
<option value="2">Yamoussoukro</option>
<option value="3">Bouaké</option>
<option value="4">Daloa</option>
</select>

Commune: <select name= "commune" id="recherchhotel" onFocus="Verifier()">
<option value="">Indefini</option>
<option value="1">Abobo</option>
<option value="2">Cocody</option>
<option value="3">Treichville</option>
<option value="4">Yopougon</option>
</select>

<input type="submit" value="Rechercher"/>
</form>

<!--<script language="javascript">
function Verifier(){
var ville = document.form1.ville.value;
if(ville != 1){
alert("Autre");
document.write("<option value="">"Indefini"</option>");
}
else{
alert("Abidjan");
document.write("<option value="1">"Abobo"</option>");
document.write("<option value="2">"Cocody"</option>");
document.write("<option value="3">"Treichville<"/option>");
document.write("<option value="4">"Yopougon"</option>");
}
}
</script>-->

</div>
</div>
<?php
include("connect.php");
// --------------- Etape 1 -----------------
// Si un message est envoyé, on l'enregistre
// -----------------------------------------

if (!empty($_GET['commune']))
{
$commune = mysql_real_escape_string($_GET['commune']);

// --------------- Etape 2 -----------------
// On écrit les liens vers chacune des pages
// -----------------------------------------

// On met dans une variable le nombre de messages qu'on veut par page
$nombreDeMessagesParPage = 2;
//On compte le nombre d'hôtels
$nb = 'select count(*) AS nbre from hotel where Commune ="'.$commune.'"';
$count = mysql_query($nb) or Die ('Erreur2');
$reponse = mysql_fetch_array($count);
$totalDesMessages = $reponse['nbre'];
if ($totalDesMessages>0)
{
// On calcule le nombre de pages à créer
$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
// --------------- Etape 3 ---------------
// Maintenant, on va afficher les messages
// ---------------------------------------
if(isset($_GET['page']))
{
$pageActuelle = mysql_real_escape_string (intval($_GET['page']));

if ($pageActuelle>$nombreDePages)
{$pageActuelle=$nombreDePages;}
}else{$pageActuelle = 1;}
// On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
$premierMessageAafficher = ($pageActuelle - 1) * $nombreDeMessagesParPage;
$sql = 'select NomHotel, LieuHotel, TelHotel, EmailHotel, SitewebHotel from hotel where Commune="'.$commune.'" ORDER BY NomHotel ASC LIMIT '.
$premierMessageAafficher. ', '.$nombreDeMessagesParPage;
?>

<table border ="+1" width="825">
<tbody>
<caption>Resultat(s) de la recherche</caption>
<thead> <!-- En-tête du tableau -->
<tr bgcolor="#3399FF">
<th>Hôtel</th>
<th>Lieu</th>
<th>Téléphone</th>
<th>Email</th>
<th>Site web</th>
</tr>
</thead>
</tbody>
<tbody> <!-- Corps du tableau -->
<?php
//On affiche les données
$req = mysql_query($sql) or Die ('Erreur1');
while ($donnees = mysql_fetch_array($req))
{
?>
<tr>
<td><?php echo $donnees['NomHotel']; ?></td>
<td><?php echo $donnees['LieuHotel']; ?></td>
<td><?php echo $donnees['TelHotel']; ?></td>
<td><?php echo $donnees['EmailHotel']; ?></td>
<td><?php echo $donnees['SitewebHotel']; ?></td>
</tr>

<?php
}
?>
</tbody>
</table>
<?php
echo '<p aligne = "center">Page:';
for ($i=1; $i<=$nombreDePages; $i++)
{
if ($i == $pageActuelle)
{echo '[' .$i. ']  ';}else{echo '<a href="hotel.php?page='.$i.'&commune='.$commune.'">['.$i.']</a>  ';}
}echo '</p>';
?>
<?php
}else{echo '<body onload="alert(\'Aucun resultat ...\')"><meta http-equiv="refresh" content = "0;URL=hotel.php">';}
}
?>
<!--Fin table-->
</td>
</table>
</body>
</html>
0
Armelkev Messages postés 100 Date d'inscription   Statut Membre Dernière intervention  
 
Mon css:

/* CSS Document */

body
{
background:url(Images/fond.png);
font: 0.9em 'Trebuchet MS',verdana,arial,sans-serif;
margin:5px 0.5em 2pt 340px ;
padding: 0;
}

#Menu
{
position:absolute;
/*background:url(Images/trait2.png) repeat-x bottom;*/
top:100px;
left:310px;
overflow:hidden;
float:left;
width:70%;
font-size:93%;
line-height:normal;
}

#Menu ul
{
margin:0;
padding:10px 10px 0;
list-style:none;
}

#Menu li
{
float:left;
background:url(Images/norm_left.gif) no-repeat left top;
margin:0;
padding:0 0 0 9px
}

#Menu a {
display:block;
background:url(Images/norm_right.gif) no-repeat right top;
padding:5px 15px 2px 6px;
text-decoration:none;
font-weight:bold;
color:#000000;
}

#Menu #current {
background-image:url(Images/norm_left_on.gif);
}
#Menu #current a {
background-image:url(Images/norm_right_on.gif);
padding-bottom:5px;
}
#Menu li a:hover{background-color:#FF0000;}
#menu li a:activate{background-color:#FFFF00;}

.tablo{
background-color:#FFFFFF;
font:0.9em 'Trebuchet MS',verdana,arial,sans-serif;
margin:5px 0.5em 2pt 310px ;
width:800px;
height:600px;
position:absolute;
margin-bottom:20px;
left:10px;
margin-top:50px;
/*left:300px;
right:150px;*/
}

.tabloinfo{
background-color:#FFFFFF;
font:0.9em 'Trebuchet MS',verdana,arial,sans-serif;
margin:5px 0.5em 2pt 310px ;
width:837px;
height:600px;
position:absolute;
margin-bottom:20px;
left:10px;
margin-top:50px;
/*left:300px;
right:150px;*/
}

#entête
{
position:absolute;
top:55px;
}

#corps
{
position:absolute;
top:207px;
/*left:568px;
width: 596px;*/
}
/*#corps .imageaccueil
{
position:absolute;
top:150px;
}*/
#corps .animationaccueil
{
position:absolute;
top:10px;
left:400px;

}
#corps .imageboussoleaccueil
{
position:absolute;
top:278px;
left:550px;
/*width: 596px;*/
}

#recherche{
position:absolute;
top:130px;
left:420px;
width:300px;
height:300px;
}

#recherche h4{
background:url(Images/recherche2.png) repeat;
/*position:absolute;*/
width:840px;
padding:2px;
text-align:center;
margin-bottom:0px;
}

.element{
background:url(Images/element1.png) no-repeat;
height:228px;
width:845px;
padding-left:5px;
margin-top:0px;
}

#recherchhotel{
width:200px;
}

#tabloHotel
{
position:absolute;
top:300px;
left:325px;
width:825px;
height:400px;
}

#tabloHotel caption
{
background:url(Images/recherche2.png);
padding:4px;
padding-left:100px;
margin-bottom:0px;
text-align:center;
}

#tabloHotel .elementHotel
{
padding-top:5px;
padding-left:10px;
margin-top:0px;
height:35px;
}
0
Armelkev Messages postés 100 Date d'inscription   Statut Membre Dernière intervention  
 
Essaye d'executer et vois mon soucis.
Merci de m'aidre
0
Armelkev Messages postés 100 Date d'inscription   Statut Membre Dernière intervention  
 
Lorsque je remplace left:318px; dans #recherche, je peux plus naviguer dans mes pages.
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
je ne peux pas executer ton code, je n'ai pas la base ni les données.

et je ne suis pas trop doué en CSS

repose le problème dans un nouveau topic en spécifiant CSS
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
pour le css une solution aussi:

vas voir le site alsacreations, il contient plusieurs types de gabarits de mise en page, tu dois pouvoir y trouver ta vie et partir sur de bonnes bases.
De plus ce site propose des tutos sur le CSS
0
Armelkev Messages postés 100 Date d'inscription   Statut Membre Dernière intervention  
 
cool, merci alain_42
0
Armelkev Messages postés 100 Date d'inscription   Statut Membre Dernière intervention  
 
Merci alain, mon code marche. Je t'informe pour la suite du projet.
0