Page 1 sur 1

Requete SQL : tri...

Posté : 07 mai 2007, 16:22
par supercanard
Bonjour,

Voilà mon probleme de newbie : J'ai cette requete

Code : Tout sélectionner

$req2= "SELECT id_note,titre_note,texte_note FROM ipi_notes WHERE user='".$session_user."' ORDER BY id_note DESC";
Que je transforme comem ceci :

Code : Tout sélectionner

$req2= "SELECT id_note,titre_note,texte_note FROM ipi_notes WHERE user='".$session_user."' ORDER BY '".$data['pref_order']."'";
Dans ma table, pref_order contient même chose, soit : id_note DESC

Dans le premier cas ça marche, dans le deuxième non.

Ne me dite pas que c'ets encore une erreur de syntaxe par pitié :cry:
Bonne aprem =)

Edit : le forum le prend pas mais la requete se termine biensur par ."'";

Posté : 07 mai 2007, 17:00
par guilt92
Pourquoi ajouter des ' ' autour du ORDER BY alors que dans la premiere requete tu ne le fais pas ?

Je pense que
$req2= "SELECT id_note,titre_note,texte_note FROM ipi_notes WHERE user='".$session_user."' ORDER BY ".$data['pref_order'];
devrait fonctionner si la valeur de la variable est bonne...

Posté : 07 mai 2007, 23:04
par Invité
Oups... j'ai du m'embrouiller... MErci =)

Bon je vais pas ouvrir un autre topic pour rien.
Pour qu'une variable de session prenne comme valeur le resultat d'une requete SQL, c'ets correct de faire ceci ? :

Code : Tout sélectionner

$_SESSION['session_test'] = $data['pref_order'];
Parce que je m'arrache les cheveux.... je met un echo pour afficher la variable et rien elle est vide :?

Bonne nuit a tous ^^

Posté : 07 mai 2007, 23:06
par supercanard
Arff j'ai oublié de me log, c'etait moi le post d'avant =)

Posté : 08 mai 2007, 03:13
par guilt92
Normalment ta syntaxe est correcte...
Il faut bien sur mettre session_start(); en 1ere ligne de la page.

si tu fais :
echo $data['pref_order'];
$_SESSION['session_test'] = $data['pref_order'];
echo $_SESSION['session_test'];
tu obtiens ce que tu veux dans le 1er echo et pas dans le deuxieme ? Car ca serait étrange sauf si il n y a pas le session_start() ou si les sessions sont désactivées mais pour moi c'est censé marcher...

Posté : 08 mai 2007, 13:55
par supercanard
Oui alors en fait tout etait bien ok.
Ce matin je retourne sur la page, ça marche, j'ai rien touché :D

Dans la serie autres problème j'en ai un byzar, qui est que j'ai un espace securisé banal, donc identification, si c'est ok, on demarre la session. Dans les pages j'ai donc mon code qui verifie la variable.

Code : Tout sélectionner

if(!isset($_SESSION['login'])) { echo 'Vous n\'êtes pas autoris´ à acceder à cette zone'; include('login.htm'); exit; } ?>
Avec Firefox ça marche, mais explorer lui m'ejecte... :?


2 eme petit probleme pour la route :
Pour conserver les retours a la ligne dans mes textarea, j'e me sert de nl2br. Pas de problème, sauf que lorsque je veut modifier du contenu, du coup dans mon textarea les <br /> s'affichent.
Y'a t'il un moyen pour que le code n'apparaissent pas dans le textarea ?

En tous cas merci de vos reponses =)

Posté : 08 mai 2007, 15:19
par guilt92
Normalement un problème de session ne doit pas marcher seulement sur un des deux navigateurs... As tu bien un session_start() en début de chaque page qui appelle ce code ?
Sinon il faudrait voir le code qui crée cette variable de session autrement avec ce bout de code que tu as donné je ne peux pas t aider...

Pour ton deuxieme probleme il te suffit de remplacer les occurences de <br/> dans ta chaine par autre chose lorsque tu l'affiche dans le textarea...
Par exemple avec str_replace("<br>", "\n\r", $text); qui va remplacer ca par des /n/r et donc faire des sauts de ligne (dans un text area je suis pas sur, a verifier...)

par exemple :
<textarea name="..."><?php echo str_replace("<br>", "\n\r", $text); ?></textarea>

Posté : 08 mai 2007, 16:22
par supercanard
Alors pour les sessions j'ai en debut de page :

Code : Tout sélectionner

<?php session_start(); if(!isset($_SESSION['session_user'])) { echo '<script langage="text/javascript">document.location.href="index.php"</script>'; exit; } ?>
Pour les sauts e ligne tu m'a mis sur la bonne voie :

Code : Tout sélectionner

<?php echo str_replace("<br />", "\n\r", $data['texte_note']); ?>
Ca marche on va dire a 50% car les < br /> ne s'affichent plus, mais a la place j'ai 2 sauts de ligne au lieu d'un dans ma textarea.

Posté : 08 mai 2007, 16:25
par guilt92
Comment crées tu ta variable de session ?

pour éviter 2 sauts de ligne remplace \n\r par \n tout court alors...

Posté : 08 mai 2007, 16:29
par supercanard
Comme ça :

Code : Tout sélectionner

session_start(); $_SESSION['session_user'] = $login_form; header ('location:index2.php'); }
Sinon même avec n/ j'ai le même probleme :?

Posté : 08 mai 2007, 16:33
par guilt92
Essaye de débugger en faisant des echo des variables dans les différentes pages...

echo de $login_form dans une page, puis echo $_SESSION['session_user'] dans index2.php...

Aussi ajoute un !empty() dans index2 pour etre sur non seulement que la variable existe et qu elle n est pas vide....
if(!isset($_SESSION['session_user']) &&!empty($_SESSION['session_user']))
Enfin assure toi que les sessions fonctionnent chez ton hébergeur ou en local...

Posté : 08 mai 2007, 16:43
par supercanard
Merci ^^
CA marche pour les sessions.

Pour le textarea en fait il ne faut ni remplacer par \n ou \n\r mais par rien du tout. Un espace vide.
:wink:

JE crois que tout ets résolu

Merci

Posté : 11 mai 2007, 12:09
par supercanard
Tout compte fait j'ai toujours un problème au niveau des sessions.

Dans mon index je vérifi si la session existe, auquel cas je redirige sur la page sécurisé :

Code : Tout sélectionner

session_start(); if(isset($_SESSION['session_user'])) { // SI LA SESSION EXISTE = INDEX2 echo '<script type="text/javascript">document.location.href="index2.php"</script>'; exit;
Sur ma page sécurisée je vérifie donc :

Code : Tout sélectionner

session_start(); if(!isset($_SESSION['session_user']) || !empty($_SESSION['session_user'])) { echo '<script langage="text/javascript">document.location.href="index.php"</script>'; exit;
Si je vais directement sur la page sécurisé, je suis bien redirigé sur la page pour se loger. Mais la je repart sur la page sécurisé, je reviens, et ça continu en boucle...
Je comprends pas...

Posté : 11 mai 2007, 12:12
par supercanard
Erreur je remplace par ceci pardon :

Code : Tout sélectionner

if(!isset($_SESSION['session_user']) && !empty($_SESSION['session_user'])) {
Mais la pour le coup je ne suis plus redirigé sur la page de log. A la place j'ai ma page sécurisé sans infos évidement puisque aucunne session n'est ouverte

:roll: