Comment garder une valeur de requete?
Fermé
chanteur06
Messages postés
127
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
14 septembre 2010
-
12 mars 2009 à 16:15
chanteur06 Messages postés 127 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 14 septembre 2010 - 13 mars 2009 à 14:53
chanteur06 Messages postés 127 Date d'inscription mardi 23 octobre 2007 Statut Membre Dernière intervention 14 septembre 2010 - 13 mars 2009 à 14:53
A voir également:
- Comment garder une valeur de requete?
- Le fichier contient le nombre de voyageurs dans 3 gares. dans la cellule b5, saisissez une formule qui calcule le total et se met à jour si on change une valeur du tableau. quel total obtenez-vous ? quelle formule avez-vous saisie ? ✓ - Forum Excel
- Excel supprimer formule mais garder valeur ✓ - Forum Excel
- Pièce 2 euros dessin bonhomme valeur ✓ - Forum Loisirs / Divertissements
- Requete http - Guide
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
4 réponses
Xil
Messages postés
350
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
11 juin 2009
257
12 mars 2009 à 16:49
12 mars 2009 à 16:49
<?php session_start(); $_SESSION['variable'] = "valeur"; ?>
$_SESSION['variable'] existera et aura la même valeur sur toute les pages où 'session_start' sera appelée, tant que la fenêtre du navigateur affichant le site ne sera pas fermée et que l'utilisateur ne sera pas resté inactif trop longtemps (en fonction de la configuration du serveur PHP).
session_start(); doit toujours être la première instruction de la page où les sessions sont nécessaires.
chanteur06
Messages postés
127
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
14 septembre 2010
1
12 mars 2009 à 16:59
12 mars 2009 à 16:59
ok, c'est ce qui me semble avoir compris (je suis pas sur des guillemets sur "valeurs")
Mais il me semblait que la page s'ouvrait dans la meme page...?
donc apparemment elle s'ouvre sur une autre page c'est ça?(vu la valeur url en bas) comment faire pour faire suivre session_start()?
je dois faire une autre page identique ou on fait suivre sur l'une des lignes de ce code?
Merci
Mais il me semblait que la page s'ouvrait dans la meme page...?
donc apparemment elle s'ouvre sur une autre page c'est ça?(vu la valeur url en bas) comment faire pour faire suivre session_start()?
je dois faire une autre page identique ou on fait suivre sur l'une des lignes de ce code?
Merci
Xil
Messages postés
350
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
11 juin 2009
257
12 mars 2009 à 18:02
12 mars 2009 à 18:02
Ne pas confondre 'page' et 'fenêtre'.
Que les pages s'ouvrent dans la même fenêtre ou pas, la variable de session sera accessible.
https://phpsources.net/tutoriel-sessions.htm
Que les pages s'ouvrent dans la même fenêtre ou pas, la variable de session sera accessible.
https://phpsources.net/tutoriel-sessions.htm
chanteur06
Messages postés
127
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
14 septembre 2010
1
>
Xil
Messages postés
350
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
11 juin 2009
12 mars 2009 à 18:10
12 mars 2009 à 18:10
je dois mal utiliser cette fonction session alors, puisqu'elle est en début de code.
Qu'est ce que t'en pense?
Qu'est ce que t'en pense?
Xil
Messages postés
350
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
11 juin 2009
257
>
chanteur06
Messages postés
127
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
14 septembre 2010
12 mars 2009 à 18:17
12 mars 2009 à 18:17
J'en pense que si je ne vois pas ta façon de l'utiliser, je ne peux pas la deviner.
chanteur06
Messages postés
127
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
14 septembre 2010
1
>
Xil
Messages postés
350
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
11 juin 2009
12 mars 2009 à 19:10
12 mars 2009 à 19:10
je n'utilises rien de plus que cette page... :-(
chanteur06
Messages postés
127
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
14 septembre 2010
1
>
Xil
Messages postés
350
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
11 juin 2009
12 mars 2009 à 19:37
12 mars 2009 à 19:37
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...?
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...?
chanteur06
Messages postés
127
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
14 septembre 2010
1
13 mars 2009 à 12:12
13 mars 2009 à 12:12
l'url du bas m'affiche bien le resultat de la requete en survolant les numéros de pages, mais lors du click,elle se vide et affiche toujours la base dès le 1er enregistrement!!! je comprends pas.... revoilà le code:
[code]
<?php
session_start() ;
if (isset($_SESSION['recherche'])) $recherche = $_SESSION['recherche'];
else if (isset($_POST['recherche'])) $recherche = $_POST['recherche'];
//enregistrement d'une variable de session
$_SESSION['recherche'] = $recherche;
function barre_navigation ($nb_total,
$nb_affichage_par_page,
$debut,
$nb_liens_dans_la_barre) {
$barre = '';
// on recherche l'URL courante munie de ses paramètre auxquels on ajoute le paramètre 'debut' qui jouera le role du premier élément de notre LIMIT
if ($_SERVER['QUERY_STRING'] == "recherche") {
$query = $_SERVER['PHP_SELF'].'?debut='.'$recherche';
}
else {
$tableau = explode ("debut=", $_SERVER['QUERY_STRING']);
$nb_element = count ($tableau);
if ($nb_element == 1) {
$query = $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'].'&debut=';
}
else {
if ($tableau[0] == "") {
$query = $_SERVER['PHP_SELF'].'?debut='.'$_SESSION';
}
else {
$query = $_SERVER['PHP_SELF'].'?'.$tableau[0].' '.$recherche.'debut='.'$_SESSION';
}
}
}
// on calcul le numéro de la page active
$page_active = floor(($debut/$nb_affichage_par_page)+1);
// on calcul le nombre de pages total que va prendre notre affichage
$nb_pages_total = ceil($nb_total/$nb_affichage_par_page);
// on calcul le premier numero de la barre qui va s'afficher, ainsi que le dernier ($cpt_deb et $cpt_fin)
// exemple : 2 3 4 5 6 7 8 9 10 11 << $cpt_deb = 2 et $cpt_fin = 11
if ($nb_liens_dans_la_barre%2==0) {
$cpt_deb1 = $page_active - ($nb_liens_dans_la_barre/2)+1;
$cpt_fin1 = $page_active + ($nb_liens_dans_la_barre/2);
}
else {
$cpt_deb1 = $page_active - floor(($nb_liens_dans_la_barre/2));
$cpt_fin1 = $page_active + floor(($nb_liens_dans_la_barre/2));
}
if ($cpt_deb1 <= 1) {
$cpt_deb = 1;
$cpt_fin = $nb_liens_dans_la_barre;
}
elseif ($cpt_deb1>1 && $cpt_fin1<$nb_pages_total) {
$cpt_deb = $cpt_deb1;
$cpt_fin = $cpt_fin1;
}
else {
$cpt_deb = ($nb_pages_total-$nb_liens_dans_la_barre)+1;
$cpt_fin = $nb_pages_total;
}
if ($nb_pages_total <= $nb_liens_dans_la_barre) {
$cpt_deb=1;
$cpt_fin=$nb_pages_total;
}
// si le premier numéro qui s'affiche est différent de 1, on affiche << qui sera un lien vers la premiere page
if ($cpt_deb != 1) {
$cible = $query.(0);
$lien = '<A HREF="'.$cible.'"><<</A> ';
}
else {
$lien='';
}
$barre .= $lien;
// 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> - ";
}
}
}
$fin = ($nb_total - ($nb_total % $nb_affichage_par_page));
if (($nb_total % $nb_affichage_par_page) == 0) {
$fin = $fin - $nb_affichage_par_page;
}
// si $cpt_fin ne vaut pas la dernière page de la barre de navigation, on affiche un >> qui sera un lien vers la dernière page de navigation
if ($cpt_fin != $nb_pages_total) {
$cible = $query.$fin;
$lien = ' <A HREF="'.$cible.'">>></A>';
}
else {
$lien='';
}
$barre .= $lien;
return $barre;
}
?>
<html>
<head>
<title></title>
</head>
<body>
Les différents restaurants :<br /><br />
<?php
// on se connecte à notre base
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('youresto', $base);
// Récupère la variable
$recherche = isset($_POST['recherche']) ? $_POST['recherche'] : '';
// on prépare une requête permettant de calculer le nombre total d'éléments qu'il faudra afficher sur nos différentes pages
$sql = "SELECT count(city) FROM jos_restaurante WHERE city LIKE '".$recherche."%'";
// on exécute cette requête
$resultat = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
// on récupère le nombre d'éléments à afficher
$nb_total = mysql_fetch_row($resultat);
// on teste si ce nombre de vaut pas 0
if (($nb_total = $nb_total[0]) == 0) {
echo 'Aucune réponse trouvée';
}
else {
echo '<table>'."\n";'<tr><td><td>Description</td></tr>';
// sinon, on regarde si la variable $debut (le x de notre LIMIT) n'a pas déjà été déclarée, et dans ce cas, on l'initialise à 0
if (!isset($_GET['debut'])) $_GET['debut'] = 0;
$nb_affichage_par_page = 10;
// Préparation de la requête avec le LIMIT
$sql = "SELECT title, city FROM jos_restaurante WHERE city LIKE '".$recherche."%' ORDER BY city ASC LIMIT ".$_GET["debut"].",".$nb_affichage_par_page;
echo($sql);
// on exécute la requête
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
// on va scanner tous les tuples un par un
while ($data = mysql_fetch_array($req)) {
// on affiches les résultats dans la <table>
echo '<tr><td><td>' , htmlentities(trim($data['title'])) , '</td></tr>';
echo '<tr><td><td>' , htmlentities(trim($data['city'])) , '</td></tr>'."\n";
}
// on libère l'espace mémoire alloué pour cette requête
mysql_free_result ($req);
echo '</table><br />'."\n";
// on affiche enfin notre barre
echo '<span class="gras">'.barre_navigation($nb_total, $nb_affichage_par_page, $_GET['debut'], 10).'</span>';
}
// on libère l'espace mémoire alloué pour cette requête
mysql_free_result ($resultat);
// on ferme la connexion à la base de données.
mysql_close ();
echo '</table><br />';
?>
</body>
</html>
[/code]
merci
[code]
<?php
session_start() ;
if (isset($_SESSION['recherche'])) $recherche = $_SESSION['recherche'];
else if (isset($_POST['recherche'])) $recherche = $_POST['recherche'];
//enregistrement d'une variable de session
$_SESSION['recherche'] = $recherche;
function barre_navigation ($nb_total,
$nb_affichage_par_page,
$debut,
$nb_liens_dans_la_barre) {
$barre = '';
// on recherche l'URL courante munie de ses paramètre auxquels on ajoute le paramètre 'debut' qui jouera le role du premier élément de notre LIMIT
if ($_SERVER['QUERY_STRING'] == "recherche") {
$query = $_SERVER['PHP_SELF'].'?debut='.'$recherche';
}
else {
$tableau = explode ("debut=", $_SERVER['QUERY_STRING']);
$nb_element = count ($tableau);
if ($nb_element == 1) {
$query = $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'].'&debut=';
}
else {
if ($tableau[0] == "") {
$query = $_SERVER['PHP_SELF'].'?debut='.'$_SESSION';
}
else {
$query = $_SERVER['PHP_SELF'].'?'.$tableau[0].' '.$recherche.'debut='.'$_SESSION';
}
}
}
// on calcul le numéro de la page active
$page_active = floor(($debut/$nb_affichage_par_page)+1);
// on calcul le nombre de pages total que va prendre notre affichage
$nb_pages_total = ceil($nb_total/$nb_affichage_par_page);
// on calcul le premier numero de la barre qui va s'afficher, ainsi que le dernier ($cpt_deb et $cpt_fin)
// exemple : 2 3 4 5 6 7 8 9 10 11 << $cpt_deb = 2 et $cpt_fin = 11
if ($nb_liens_dans_la_barre%2==0) {
$cpt_deb1 = $page_active - ($nb_liens_dans_la_barre/2)+1;
$cpt_fin1 = $page_active + ($nb_liens_dans_la_barre/2);
}
else {
$cpt_deb1 = $page_active - floor(($nb_liens_dans_la_barre/2));
$cpt_fin1 = $page_active + floor(($nb_liens_dans_la_barre/2));
}
if ($cpt_deb1 <= 1) {
$cpt_deb = 1;
$cpt_fin = $nb_liens_dans_la_barre;
}
elseif ($cpt_deb1>1 && $cpt_fin1<$nb_pages_total) {
$cpt_deb = $cpt_deb1;
$cpt_fin = $cpt_fin1;
}
else {
$cpt_deb = ($nb_pages_total-$nb_liens_dans_la_barre)+1;
$cpt_fin = $nb_pages_total;
}
if ($nb_pages_total <= $nb_liens_dans_la_barre) {
$cpt_deb=1;
$cpt_fin=$nb_pages_total;
}
// si le premier numéro qui s'affiche est différent de 1, on affiche << qui sera un lien vers la premiere page
if ($cpt_deb != 1) {
$cible = $query.(0);
$lien = '<A HREF="'.$cible.'"><<</A> ';
}
else {
$lien='';
}
$barre .= $lien;
// 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> - ";
}
}
}
$fin = ($nb_total - ($nb_total % $nb_affichage_par_page));
if (($nb_total % $nb_affichage_par_page) == 0) {
$fin = $fin - $nb_affichage_par_page;
}
// si $cpt_fin ne vaut pas la dernière page de la barre de navigation, on affiche un >> qui sera un lien vers la dernière page de navigation
if ($cpt_fin != $nb_pages_total) {
$cible = $query.$fin;
$lien = ' <A HREF="'.$cible.'">>></A>';
}
else {
$lien='';
}
$barre .= $lien;
return $barre;
}
?>
<html>
<head>
<title></title>
</head>
<body>
Les différents restaurants :<br /><br />
<?php
// on se connecte à notre base
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('youresto', $base);
// Récupère la variable
$recherche = isset($_POST['recherche']) ? $_POST['recherche'] : '';
// on prépare une requête permettant de calculer le nombre total d'éléments qu'il faudra afficher sur nos différentes pages
$sql = "SELECT count(city) FROM jos_restaurante WHERE city LIKE '".$recherche."%'";
// on exécute cette requête
$resultat = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
// on récupère le nombre d'éléments à afficher
$nb_total = mysql_fetch_row($resultat);
// on teste si ce nombre de vaut pas 0
if (($nb_total = $nb_total[0]) == 0) {
echo 'Aucune réponse trouvée';
}
else {
echo '<table>'."\n";'<tr><td><td>Description</td></tr>';
// sinon, on regarde si la variable $debut (le x de notre LIMIT) n'a pas déjà été déclarée, et dans ce cas, on l'initialise à 0
if (!isset($_GET['debut'])) $_GET['debut'] = 0;
$nb_affichage_par_page = 10;
// Préparation de la requête avec le LIMIT
$sql = "SELECT title, city FROM jos_restaurante WHERE city LIKE '".$recherche."%' ORDER BY city ASC LIMIT ".$_GET["debut"].",".$nb_affichage_par_page;
echo($sql);
// on exécute la requête
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
// on va scanner tous les tuples un par un
while ($data = mysql_fetch_array($req)) {
// on affiches les résultats dans la <table>
echo '<tr><td><td>' , htmlentities(trim($data['title'])) , '</td></tr>';
echo '<tr><td><td>' , htmlentities(trim($data['city'])) , '</td></tr>'."\n";
}
// on libère l'espace mémoire alloué pour cette requête
mysql_free_result ($req);
echo '</table><br />'."\n";
// on affiche enfin notre barre
echo '<span class="gras">'.barre_navigation($nb_total, $nb_affichage_par_page, $_GET['debut'], 10).'</span>';
}
// on libère l'espace mémoire alloué pour cette requête
mysql_free_result ($resultat);
// on ferme la connexion à la base de données.
mysql_close ();
echo '</table><br />';
?>
</body>
</html>
[/code]
merci
Xil
Messages postés
350
Date d'inscription
vendredi 18 janvier 2008
Statut
Membre
Dernière intervention
11 juin 2009
257
13 mars 2009 à 13:29
13 mars 2009 à 13:29
$_SESSION['$recherche']
Ceci ne risque pas de fonctionner, c'est $_SESSION['recherche']. Il y est plusieurs fois.
Et la ligne :
// Récupère la variable
$recherche = isset($_POST['recherche']) ? $_POST['recherche'] : '';
Est toujours là, juste après ta connexion à mysql. C'est cette ligne qui vide ta recherche, supprime la.
Ceci ne risque pas de fonctionner, c'est $_SESSION['recherche']. Il y est plusieurs fois.
Et la ligne :
// Récupère la variable
$recherche = isset($_POST['recherche']) ? $_POST['recherche'] : '';
Est toujours là, juste après ta connexion à mysql. C'est cette ligne qui vide ta recherche, supprime la.
chanteur06
Messages postés
127
Date d'inscription
mardi 23 octobre 2007
Statut
Membre
Dernière intervention
14 septembre 2010
1
13 mars 2009 à 14:53
13 mars 2009 à 14:53
en supprimant
// Récupère la variable
$recherche = isset($_POST['recherche']) ? $_POST['recherche'] : '';
j'ai : "aucun resultat trouvé" ....!
// Récupère la variable
$recherche = isset($_POST['recherche']) ? $_POST['recherche'] : '';
j'ai : "aucun resultat trouvé" ....!