Comment créer session SVP?

chanteur06 Messages postés 131 Statut Membre -  
chanteur06 Messages postés 131 Statut Membre -
hello
je tourne en rond depuis klk jours.
je cherche à afficher des resultats d'une base importante,donc sur plusieures pages.J'arrive à afficher une pagination,sauf que les pages suivantes ne gardent pas la requete récupérée du formulaire. donc je me disais que créer une session permettrait de garder cette requete sur chaque page appelées,je me trompe..?
et comment écrire et intégrer cette session si necessaire,car j'ai des retours parse errors.
Si vous avez une autre idée,je prends
(le script est classique pour pagination et requete de BDD)

[CODE]<?php
session_start() ;

$recherche = isset($_POST['recherche'])

//enregistrement d'une variable de session
$_SESSION["recherche"] == "$recherche" ;

include 'conf.php';
// how many rows to show per page
$rowsPerPage = 10;

// by default we show first page
$pageNum = 1;

// if $_GET['page'] defined, use it as page number
if(isset($_GET['page']))
{
$pageNum = $_GET['page'];
}
// Récupère la variable
$recherche = isset($_POST['recherche']) ? $_POST['recherche'] : '';
// counting the offset
$offset = ($pageNum - 1) * $rowsPerPage;

$query = " SELECT title,city FROM jos_restaurante WHERE title OR city
LIKE '%".$recherche."%'" .
" LIMIT $offset, $rowsPerPage";
$result = mysql_query($query) or die('Error, query failed');

// print the random numbers
while($row = mysql_fetch_array($result))
{
echo $row['title'] . '<br>';
echo $row['city'] . '<br>';
}
// how many rows we have in database
$query = "SELECT COUNT(title) AS id FROM jos_restaurante";
$result = mysql_query($query) or die('Error, query failed');
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['id'];

// how many pages we have when using paging?
$maxPage = ceil($numrows/$rowsPerPage);

// print the link to access each page
$self = $_SERVER['PHP_SELF'];

// creating previous and next link
// plus the link to go straight to
// the first and last page

if ($pageNum > 1)
{
$page = $pageNum - 1;
$prev = " <a href=\"$self?page=$page\">[Prev]</a> ";

$first = " <a href=\"$self?page=1\">[First Page]</a> ";
}
else
{
$prev = ' '; // we're on page one, don't print previous link
$first = ' '; // nor the first page link
}

if ($pageNum < $maxPage)
{
$page = $pageNum + 1;
$next = " <a href=\"$self?page=$page\">[Next]</a> ";

$last = " <a href=\"$self?page=$maxPage\">[Last Page]</a> ";
}
else
{
$next = ' '; // we're on the last page, don't print next link
$last = ' '; // nor the last page link
}

// print the navigation link
echo $first . $prev .
" Showing page $pageNum of $maxPage pages " . $next . $last;

include 'close.php'

?>/CODE

Merci beaucoup

7 réponses

Mimiste Messages postés 1159 Statut Membre 206
 
Salut

$_SESSION["recherche"] == "$recherche" ;

Il faudrai qu'un seul egal et supprimer les " car ils ne servent a rien la.

ça pourra peut etre deja virer quelques erreurs pour faire avancer un peu le truc
0
artragis Messages postés 510 Statut Membre 146
 
Ton code contient beaucoup d'erreurs selon moi (qui ne suis pas un pro, mais bon...)
<?php
session_start() ;

$recherche = isset($_POST['recherche']) ici, tu affectes une valeur "true" ou "false" à ta variable recherche , en effet isset() est une fonction qui donne comme résultat true ou false

//enregistrement d'une variable de session
$_SESSION["recherche"] == "$recherche" ;purement erreur de syntaxe, tu ne dois mettre qu'un seul "=" et surtout pas de guillemets à $recherche

include 'conf.php';
// how many rows to show per page
$rowsPerPage = 10;

// by default we show first page
$pageNum = 1;

// if $_GET['page'] defined, use it as page number
if(isset($_GET['page']))
{
$pageNum = $_GET['page'];
}
// Récupère la variable
$recherche = isset($_POST['recherche']) ? $_POST['recherche'] : '';même chose qu'au début... je ne comprends pas pourquoi tu mets des isset() à tour de bras
// counting the offset
$offset = ($pageNum - 1) * $rowsPerPage;

$query = " SELECT title,city FROM jos_restaurante WHERE title OR city
LIKE '%".$recherche."%'" .
" LIMIT $offset, $rowsPerPage";
$result = mysql_query($query) or die('Error, query failed');


// print the random numbers
while($row = mysql_fetch_array($result))
{
echo $row['title'] . '<br>';
echo $row['city'] . '<br>';
}
// how many rows we have in database
$query = "SELECT COUNT(title) AS id FROM jos_restaurante";
$result = mysql_query($query) or die('Error, query failed');
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['id'];

// how many pages we have when using paging?
$maxPage = ceil($numrows/$rowsPerPage);

// print the link to access each page
$self = $_SERVER['PHP_SELF'];

// creating previous and next link
// plus the link to go straight to
// the first and last page

if ($pageNum > 1)
{
$page = $pageNum - 1;
$prev = " <a href=\"$self?page=$page\">[Prev]</a> ";

$first = " <a href=\"$self?page=1\">[First Page]</a> ";
}
else
{
$prev = ' '; // we're on page one, don't print previous link
$first = ' '; // nor the first page link
}

if ($pageNum < $maxPage)
{
$page = $pageNum + 1;
$next = " <a href=\"$self?page=$page\">[Next]</a> ";

$last = " <a href=\"$self?page=$maxPage\">[Last Page]</a> ";
}
else
{
$next = ' '; // we're on the last page, don't print next link
$last = ' '; // nor the last page link
}

// print the navigation link
echo $first . $prev .
" Showing page $pageNum of $maxPage pages " . $next . $last;

include 'close.php'

?>


j'ai souligné les correction et mis en gras les fautes
par contre quand tu copies un code du net, cherche à le comprendre et à traduire les commentaires en français, de même que les variables, ça te permettra de mieux comprendre
0
chanteur06 Messages postés 131 Statut Membre 1
 
isset a été retiré mais j'ai un renvoi d'erreur : recherche=indéfini
et ma valeur requete se vide toujours à l'appel de la page suivante
0
artragis Messages postés 510 Statut Membre 146
 
à ce moment là mets :
if(isset($_POST['recherche']){
$recherche=$_POST['recherche'];
}
else{
$recherche=valeur par défaut;
}
0
chanteur06 Messages postés 131 Statut Membre 1
 
toujours pas....
Je sais pas où tu mets ce code,mais j'ai une erreur d'écriture (parse error)
Ma valeur par défaut est celle que je récupère dans le formulaire non? donc "recherche".....?
0

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

Posez votre question
le père
 
Bonjour

$recherche = isset($_POST['recherche']) ? $_POST['recherche'] : '';
c'est la même chose. Sans le parse error
0
artragis Messages postés 510 Statut Membre 146
 
$recherche = isset($_POST['recherche']) ? $_POST['recherche'] : ''; 

c'est la même chose uniquement si tu mets une valeur par défaut, ici "", c'est à dire rien...

mais avec mon code, tu peux dire, s'il n'y a pas de $_POST['recherche'] alors on remet le formulaire et un message d'erreur
0
chanteur06 Messages postés 131 Statut Membre 1
 
attendez les gars , je commence à nager là.
si je mets ça, en haut
if(isset($_POST['recherche']){
$recherche=$_POST['recherche'];
}
else{
$recherche='';
}

j'ai un parse error

si je mets
$recherche = isset($_POST['recherche']) ? $_POST['recherche'] : '';

la requete est affichée mais n'est pas tenue....
0
chanteur06 Messages postés 131 Statut Membre 1
 
si ça peut aider, voilà l'erreur affichée sur l'appel de la page suivante:
Notice: Undefined index: recherche in C:\Program Files\wamp\www\rech3\recherche.php on line 102

ce serait pas le code session ou autre à mettre dans la navigation...?
0
artragis Messages postés 510 Statut Membre 146
 
donne nous la ligne 102 et les 3 lignes qui précedent et qui suivent
0
chanteur06 Messages postés 131 Statut Membre 1
 
c'est vrai que les n de lignes n'apparaisent pas...
voilà la section concernée

// on affiche tous les liens de notre barre, tout en vérifiant de ne pas mettre de lien pour la page active
for ($cpt = $cpt_deb; $cpt <= $cpt_fin; $cpt++) {
if ($cpt == $page_active) {
if ($cpt == $nb_pages_total) {
$barre .= $cpt;
}
else {
$barre .= $cpt.' - ';
}
}
else {
if ($cpt == $cpt_fin) {
$barre .= "<A HREF='".$query.(($cpt-1)*$nb_affichage_par_page).'&recherche='.$_SESSION['recherche'];
$barre .= "'>".$cpt."</A>";
}
else {

$barre .= "<A HREF='".$query.(($cpt-1)*$nb_affichage_par_page).'&recherche='.$_SESSION['recherche'];
$barre .= "'>".$cpt."</A> - ";
}

merci
0