Problème de lien avec ma pagination php

Armelkev Messages postés 100 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 5 août 2020 - 16 août 2011 à 14:45
Armelkev Messages postés 100 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 5 août 2020 - 17 août 2011 à 19:07
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:



Recherche d' hôtels



<form action= "hotel.php" method="post" name="form1">

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>


<!--[hotel3.php kevin]-->
</form>




<?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;
?>

<caption>Resultat(s) de la recherche</caption>
<!-- En-tête du tableau -->
----

Hôtel |
Lieu |
Téléphone |
Email |
Site web |

<!-- Corps du tableau -->
<?php
//On affiche les données
$req = mysql_query($sql) or Die ('Erreur1');
while ($donnees = mysql_fetch_array($req))
{
?>
----

<?php echo $donnees['NomHotel']; ?>,
<?php echo $donnees['LieuHotel']; ?>,
<?php echo $donnees['TelHotel']; ?>,
<?php echo $donnees['EmailHotel']; ?>,
<?php echo $donnees['SitewebHotel']; ?>,

<?php
}
?>

<?php
echo 'Page:';
for ($i=1; $i<=$nombreDePages; $i++)
{
if ($i == $pageActuelle)
{echo '[' .$i. ']';}else{echo '[hotel.php?page='.$i.'&commune='.$commune.' ['.$i.']]';}
}echo '

';
}else{echo '<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.

11 réponses

Armelkev Messages postés 100 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 5 août 2020
16 août 2011 à 14:49
Slt,
quand je pointe la souris sur 2, il y'a pas de jeux de liens.
0
Armelkev Messages postés 100 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 5 août 2020
16 août 2011 à 16:11
svp, est ce un pb avec le form et le php puisque le traitement se fait dans mon formulaire.
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
16 août 2011 à 16:35
bonjour

tu recherches tes communes dans la table par leur nom ?
ou par ce que tu mets dans les values des <option value="">
je vois des chiffres ?

peut avoir une dizaine d'enregistrements de ta table pour comprendre





Bonne programmation !
0
Armelkev Messages postés 100 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 5 août 2020
16 août 2011 à 17:47
les recherches se font avec les values des options.
1 Hôtel Kimi Yopougon Maroc 08134436 okoukevin@yahoo.fr 4 1
2 Hôtel Ralex Cité Verte 08134436 okoukevin@yahoo.fr NULL 4 1
3 Golf Hôtel Riviera Golf 08134436 okoukevin@yahoo.fr NULL 2 1
4 Anna Hotel Yopougon Annaneraie 08134436 okoukevin@yahoo.fr NULL 4 1
5 Hotel Le Président Djoulabougou 08134436/07210582 okoukevin@yahoo.fr NULL 0 2
6 Hôtel Kimi Yopougon Maroc 08134436 okoukevin@yahoo.fr 4 1
7 Hôtel Ralex Cité Verte 08134436 okoukevin@yahoo.fr NULL 4 1
8 Golf Hôtel Riviera Golf 08134436 okoukevin@yahoo.fr NULL 2 1
9 Anna Hotel Yopougon Annaneraie 08134436 okoukevin@yahoo.fr NULL 4 1
10 Hotel Le Président Djoulabougou 08134436/07210582 okoukevin@yahoo.fr NULL 0 2
0

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

Posez votre question
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
16 août 2011 à 21:45
bon j'ai reussi à faire tourner le code
mais
j'ai renforcé la securité
mais l'organisation de ton code est bancal ...
tu n'envoyai pas le $_GET


<!--
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: 
-->

 
Recherche d' hôtels
 

 
<form action= "hotel.php" method="post" name="form1"> 
 
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> 
 

<!--[hotel3.php kevin]--> 
</form> 

 

 
<?php 
//include("connect.php"); 

if (!empty($_POST['commune']) || $_GET['page']) 
{
include("connect.php"); 

/*
mysql_connect('localhost','root','');
mysql_select_db('a');
echo '';
print_r($_POST);
print_r($_GET);
echo '

';
*/
if(isset($_GET['page'])){
$commune = mysql_real_escape_string((int)$_GET['commune']);
}else{
$commune = mysql_real_escape_string((int)$_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'; 
echo $nb="select count(*) as nbre from hotel where commune=".$commune; 
$count = mysql_query($nb) or Die ('Erreur2'); 
$reponse = mysql_fetch_array($count);
//$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; 
?> 

<caption>Resultat(s) de la recherche</caption>
<!-- En-tête du tableau -->
----

 Hôtel  |
Lieu |
Téléphone |
Email |
Site web |

<!-- Corps du tableau -->
<?php
//On affiche les données
$req  = mysql_query($sql) or Die ('Erreur1');
while ($donnees = mysql_fetch_array($req))
{
?>
----

<?php echo $donnees['NomHotel']; ?>,
<?php echo $donnees['LieuHotel']; ?>,
<?php echo $donnees['TelHotel']; ?>,
<?php echo $donnees['EmailHotel']; ?>,
<?php echo $donnees['SitewebHotel']; ?>,

<?php
}
?>
 
<?php 
echo 'Page:'; 
for ($i=1; $i<=$nombreDePages; $i++) 
{ 
if ($i == $pageActuelle) 
{echo '[' .$i. ']';}else{echo '[hotel.php?page='.$i.'&commune='.$commune.'  ['.$i.']]';} 
}echo '

'; 
}else{echo '<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.
-->


Bonne programmation !
0
Armelkev Messages postés 100 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 5 août 2020
17 août 2011 à 11:37
Bjr cod57,
j'ai exécuté ton code. Il m'affiche les résultats des recherches et les différentes pages mais il ne voit pas les pages en lien.
Dans le bas de ma page web je vois:
Page:[1]2
Et je peux cliquer sur 2.
Merci de m'aider
0
Armelkev Messages postés 100 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 5 août 2020
17 août 2011 à 12:08
j'ai copier le code source de mon lien que j'ai inséré dans mon code c'est à dire:
[hotel.php?page=1&commune=4 1]
[hotel.php?page=2&commune=4 2]
je réussie naviguer mais en php ça ne passe pas.
Merci de m'aider
0
Armelkev Messages postés 100 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 5 août 2020
17 août 2011 à 12:28
j'ai essayé de lancer mon application web avec Explorer ça passe bien j'arrive à cliquer sur les différents liens le code est bon mais pas avec Mozilla FireFox.
Pourrais-je avoir une solution pour Mozilla FireFoxe
0
Armelkev Messages postés 100 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 5 août 2020
17 août 2011 à 19:02
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 réduis ça marche. Chose bizarre.
0
Armelkev Messages postés 100 Date d'inscription mercredi 23 septembre 2009 Statut Membre Dernière intervention 5 août 2020
17 août 2011 à 19:04
Mon code php est le suivant:

<!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>


<!--Debut table-->

<li id = "current">[hotel.php?page='.$i.'&commune='.$commune.' ['.$i.']] ';}
}echo '

';
?>
<?php
}else{echo '<meta http-equiv="refresh" content = "0;URL=hotel.php">';}
}
?>
<!--Fin table-->
</td>
</table>

</html>

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 mercredi 23 septembre 2009 Statut Membre Dernière intervention 5 août 2020
17 août 2011 à 19:07
Lorsque je remplace left:318px; dans #recherche, je peux plus naviguer dans mes pages.
0
Rejoignez-nous