Requete SQL : tri...

Mammouth du PHP | 531 Messages

07 mai 2007, 16:22

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 ."'";

Mammouth du PHP | 1353 Messages

07 mai 2007, 17:00

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...
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Invité
Invité n'ayant pas de compte PHPfrance

07 mai 2007, 23:04

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

Mammouth du PHP | 531 Messages

07 mai 2007, 23:06

Arff j'ai oublié de me log, c'etait moi le post d'avant =)

Mammouth du PHP | 1353 Messages

08 mai 2007, 03:13

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...
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Mammouth du PHP | 531 Messages

08 mai 2007, 13:55

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 =)

Mammouth du PHP | 1353 Messages

08 mai 2007, 15:19

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>
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Mammouth du PHP | 531 Messages

08 mai 2007, 16:22

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.

Mammouth du PHP | 1353 Messages

08 mai 2007, 16:25

Comment crées tu ta variable de session ?

pour éviter 2 sauts de ligne remplace \n\r par \n tout court alors...
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Mammouth du PHP | 531 Messages

08 mai 2007, 16:29

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

Mammouth du PHP | 1353 Messages

08 mai 2007, 16:33

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...
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Mammouth du PHP | 531 Messages

08 mai 2007, 16:43

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

Mammouth du PHP | 531 Messages

11 mai 2007, 12:09

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

Mammouth du PHP | 531 Messages

11 mai 2007, 12:12

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: