Merci à tous les utilisateurs de stackoverflow, j'ai maîtrisé la plupart des aspects du contrôle de base de données (sqlite) en utilisant php en quelques jours !!! Et réussi à construire un cms de base crud. Je suis en train de faire des améliorations mineures et je suis resté sur 'enregistrer le tri de la base de données dans une session'. Lorsque je clique sur la page et que je reviens, la session n'est pas enregistrée. J'ai été si loin et cela semble être une pierre d'achoppement frustrante. C'est ce que j'ai:enregistrer le tri de base de données dans une session
session_start();
$_SESSION['sort'] = $_GET['sort'];
$savedsort = $_SESSION['sort']; // store session data
if(!empty($_GET['sort']) && ctype_alnum(trim($_GET['sort'])))
$sort = trim($_GET['sort']);?> ///if page is empty
//links to sort data
<h2><?php echo $savedsort;?></h2>
<table border="0" align="center" cellpadding="8" cellspacing="0" id="show"><tr><th width="5"><a href="?sort=id">ID</a></th><th>IMG</th><th><a href="?sort=name">NAME</a></th>
<th width="10"><a href="?sort=cat">CAT</a></th></tr>
//query string
///////////////////////////////////////sort columns ////////////////////////////////
if($sort == $savedsort){
$result = $db->query("SELECT * FROM '$table1' ORDER BY '$savedsort' ");
}
else{$result = $db->query("SELECT * FROM '$table1' ORDER BY id ");}
//////////////////////////////////////////////////////////////////////////////////////
foreach($result as $row){
... tout pointeur grandement apprécié. Merci d'avance.
Savès en variable de session maintenant, merci mais ne sera pas mise à jour chaîne de requête
session_start();
if (isset($_GET['srt']))
{ $_SESSION['srt'] = $_GET['srt']; }
$srt = $_SESSION['srt'];
<tr><th width="5"><a href="?srt=id">ID</a></th><th>IMG</th><th><a href="?srt=name">NAME</a></th><th width="10"><a href="?srt=menu">CAT</a></th>........
$srtd = $db->query("SELECT * FROM '$table1' ORDER BY '$srt' "); ////////////////////////////////////////////////////////////////////////////////////// foreach($srtd as $row){ $id=$row['id'];
mais cette méthode fonctionne: est le code ci-dessus ok?
///////////////////////////////////////sort columns ////////////////////////////////
if ($srt=='name'){$srtd = $db->query("SELECT * FROM '$table1' ORDER BY name ");}
elseif($srt=='id'){$srtd = $db->query("SELECT * FROM '$table1' ORDER BY id ");}
elseif($srt=='menu'){$srtd = $db->query("SELECT * FROM '$table1' ORDER BY menu ");}
else{$srtd = $db->query("SELECT * FROM '$table1' ORDER BY id ");}
//////////////////////////////////////////////////////////////////////////////////////
Merci pour Nick ;-) La chose étrange est que je guillemets simples dans cette requête et il fonctionne $dropdown = $db->query("SELECT * FROM '$table2' WHERE menu = '$menu'");
mais je vais utiliser les tiques dos à partir de maintenant
Chaque fois que vous visitez cette page, vous affectez la variable '$ _SESSION ['sort']'. Si '$ _GET ['sort']' ne sera pas défini, votre variable de session sera également nulle. Vous devez donc vérifier que vous devez affecter une variable ou non. – Leri