Mysql selection liées avec (les sessions)
Fermé
glodybiss
Messages postés
440
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2015
-
Modifié par glodybiss le 22/08/2012 à 09:13
glodybiss Messages postés 440 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 29 juillet 2015 - 23 août 2012 à 15:25
glodybiss Messages postés 440 Date d'inscription vendredi 6 juin 2008 Statut Membre Dernière intervention 29 juillet 2015 - 23 août 2012 à 15:25
A voir également:
- Mysql selection liées avec (les sessions)
- Mysql community server - Télécharger - Bases de données
- Illustrator cadre de sélection disparu ✓ - Forum Illustrator
- Mysql error in file: /engine/classes/mysql.php at line 53 ✓ - Forum Réseaux sociaux
- Mysql a répondu : documentation connexion impossible : paramètres incorrects. - Forum Bases de données
- L'indice n'appartient pas à la sélection vba ✓ - Forum VB / VBA
4 réponses
Utilisateur anonyme
22 août 2012 à 11:14
22 août 2012 à 11:14
bonjour,
je n'ai pas trop compris, mais bon faut dire que je l'ai lu en diagonale. Déjà je tombe sur ça
if $_SESSION ['ville'] = $data['ville']
ce n'est pas une condition en php
je n'ai pas trop compris, mais bon faut dire que je l'ai lu en diagonale. Déjà je tombe sur ça
if $_SESSION ['ville'] = $data['ville']
ce n'est pas une condition en php
AssassinTourist
Messages postés
5710
Date d'inscription
lundi 16 janvier 2012
Statut
Contributeur
Dernière intervention
29 février 2024
1 311
22 août 2012 à 12:16
22 août 2012 à 12:16
Bonjour,
eone2 a raison, il ne faut pas mélanger les langages comme ça. Au lieu de tes premières lignes, tu peux faire ça :
fait un echo $query ensuite, pour vérifier que la requête est bien formulée comme tu le penses.
eone2 a raison, il ne faut pas mélanger les langages comme ça. Au lieu de tes premières lignes, tu peux faire ça :
$query = "SELECT * FROM 'client' WHERE ville = ".$_SESSION['ville'];
fait un echo $query ensuite, pour vérifier que la requête est bien formulée comme tu le penses.
glodybiss
Messages postés
440
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2015
9
22 août 2012 à 16:32
22 août 2012 à 16:32
Merci de votre aide, Assassin tu es partout où je pose :) merci
J'ai ce message mais la liste ne s'affiche pas
et voici la ligne 29 de mon code
J'ai ce message mais la liste ne s'affiche pas
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\wimaxcustomer\liste_wimaxsite.php on line 29
et voici la ligne 29 de mon code
$query = "SELECT * FROM 'wimax_site' WHERE ville ='.$_SESSION ['ville'].'";
AssassinTourist
Messages postés
5710
Date d'inscription
lundi 16 janvier 2012
Statut
Contributeur
Dernière intervention
29 février 2024
1 311
22 août 2012 à 18:14
22 août 2012 à 18:14
=)
Attention à ta syntaxe. Si tu es avec wamp, tu peux vérifier ta syntaxe (qui sortiras avec un echo) dans l'onglet SQL en collant simplement la phrase.
Un petit truc sur la syntaxe donc, pour pas te laisser galérer à chaque fois.
Tes guillemets " marquent le string de la requête totale(qui sera interprété plus tard)
Tes simple quote ' marquent un string dans ta requête finale.
Tes points . marquent la concaténation entre tes variables php et ton string final.
Au final, je pense que ta requête devrait être formulée ainsi :
(je t'ai mis des espaces entre les différentes quotes à la fin pour que tu les visualises bien, ainsi que leur ordre, mais je pense qu'il faudra les enlever ces espaces)
Attention à ta syntaxe. Si tu es avec wamp, tu peux vérifier ta syntaxe (qui sortiras avec un echo) dans l'onglet SQL en collant simplement la phrase.
Un petit truc sur la syntaxe donc, pour pas te laisser galérer à chaque fois.
Tes guillemets " marquent le string de la requête totale(qui sera interprété plus tard)
Tes simple quote ' marquent un string dans ta requête finale.
Tes points . marquent la concaténation entre tes variables php et ton string final.
Au final, je pense que ta requête devrait être formulée ainsi :
$query = "SELECT * FROM 'wimax_site' WHERE ville =' ".$_SESSION ['ville']." ' ";
(je t'ai mis des espaces entre les différentes quotes à la fin pour que tu les visualises bien, ainsi que leur ordre, mais je pense qu'il faudra les enlever ces espaces)
glodybiss
Messages postés
440
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2015
9
Modifié par glodybiss le 23/08/2012 à 11:11
Modifié par glodybiss le 23/08/2012 à 11:11
Merci pour ce rappel pour te dire vrai il n'y a pas une chose qui me complique comme les concaténations, merci beaucoup!
Concernant cette requette
Si tu peux me venir en aide, peut être que j'ai mal penser à la requette!
Concernant cette requette
$query = "SELECT * FROM 'wimax_site' WHERE ville =' ".$_SESSION ['ville']." ' ";je reçois la même erreur mais
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\wimaxcustomer\liste_wimaxsite.php on line 29mais je voulais aussi t'éclaircir sur un point; ce que j'aimerais avoir c'est que quand un user qui se trouve à Kinshasa veut afficher la liste des clients que la liste qui apparaîtra ne soit que la liste des clients qui sont à Kinshasa et cela correspond pour les users des autres ville.
Si tu peux me venir en aide, peut être que j'ai mal penser à la requette!
AssassinTourist
Messages postés
5710
Date d'inscription
lundi 16 janvier 2012
Statut
Contributeur
Dernière intervention
29 février 2024
1 311
23 août 2012 à 13:53
23 août 2012 à 13:53
Reprenons les bases.
- tu t'es connecté à la base de données avant ?
- tu as bien une table nommée wimax_site ?
- avant ta $query, fait un echo $_SESSION ['ville']; et regarde ce que ça donne.
- ce qui est dans ta variable de session, c'est quoi exactement ? Il y a des guillemets/accents/caractères spéciaux ?
- tu t'es connecté à la base de données avant ?
- tu as bien une table nommée wimax_site ?
- avant ta $query, fait un echo $_SESSION ['ville']; et regarde ce que ça donne.
- ce qui est dans ta variable de session, c'est quoi exactement ? Il y a des guillemets/accents/caractères spéciaux ?
JooS
Messages postés
2468
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
8 juin 2016
228
Modifié par JooS le 23/08/2012 à 14:33
Modifié par JooS le 23/08/2012 à 14:33
Salut !
Question sécurité, je te conseil d'utiliser les requêtes préparés de PDO, et ça sera plus clair après car tu n'aura pas a concaténer(ce qui te pose problème) !
Donc, au lieux de faire ...
Tu va faire ...
-------------------------------------
Concernant les requêtes !
On va supposer que tu possède deux tables !
id et id : INT, PRIMARY KEY, AUTO_INCREMENT
libelle, pseudo, email : VARCHAR(50)
ville : INT
-------------------------------------
Maintenant, pour faire la requête, je suppose que seulement les clients connéctés peuvent afficher la liste des clients(de la meme ville), et que la variable "$_SESSION ['ville']" est initialisé lorsque le client se connecte !
Voila, cela affichera la liste des clients qui se trouvent dans la même ville que l'utilisateur en cours !
--------------------------------------
Si tu veux afficher le nom de la ville a coté de chaque pseudo, alors tu dois faire une jointure, comme ceci !
--------------------------------------
Voila, si tu beug, n'hésite pas !
--------------------------------------
PS : Le premier code que j'ai poser représente la connexion, vers la base de données, donc il est nécessaire qu'il soit présent au début de chaque page (pour que tu puisse intéragir avec la base de données), donc au lieu de le copier/coller au début de chaque page, copie le dans un fichier appart, nomme le par exemple "bdd_connect.php", puis tu va l'inclure au début de chaque page, en utilisant la fonction "require_once" ...
--------------------------------------
Bonne chance !
Mettez en résolu quand c'est résolu -.- ...
Question sécurité, je te conseil d'utiliser les requêtes préparés de PDO, et ça sera plus clair après car tu n'aura pas a concaténer(ce qui te pose problème) !
Donc, au lieux de faire ...
mysql_connect ... etc
Tu va faire ...
try { $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:host=localhost;dbname=nombdd, root, '', $pdo_options); } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); }
-------------------------------------
Concernant les requêtes !
On va supposer que tu possède deux tables !
villes(id, libelle) client(id, pseudo, email, ville)
id et id : INT, PRIMARY KEY, AUTO_INCREMENT
libelle, pseudo, email : VARCHAR(50)
ville : INT
-------------------------------------
Maintenant, pour faire la requête, je suppose que seulement les clients connéctés peuvent afficher la liste des clients(de la meme ville), et que la variable "$_SESSION ['ville']" est initialisé lorsque le client se connecte !
$req = $bdd->prepare('SELECT * FROM client WHERE ville = :city'); $req->bindParam(':city', $_SESSION ['ville'], PDO::PARAM_INT); $req->execute(); while($data = $req->fetch()) { echo $data['pseudo'].'<br />'; }
Voila, cela affichera la liste des clients qui se trouvent dans la même ville que l'utilisateur en cours !
--------------------------------------
Si tu veux afficher le nom de la ville a coté de chaque pseudo, alors tu dois faire une jointure, comme ceci !
$req = $bdd->prepare('SELECT c.id, c.pseudo, v.libelle AS libelleVille FROM client c INNER JOIN villes v ON v.id = c.ville WHERE c.ville = :city GROUP BY c.id, c.pseudo, libelleVille'); $req->bindParam(':city', $_SESSION ['ville'], PDO::PARAM_INT); $req->execute(); while($data = $req->fetch()) { echo $data['pseudo'].' - '.$data['libelleVille'].'<br />'; }
--------------------------------------
Voila, si tu beug, n'hésite pas !
--------------------------------------
PS : Le premier code que j'ai poser représente la connexion, vers la base de données, donc il est nécessaire qu'il soit présent au début de chaque page (pour que tu puisse intéragir avec la base de données), donc au lieu de le copier/coller au début de chaque page, copie le dans un fichier appart, nomme le par exemple "bdd_connect.php", puis tu va l'inclure au début de chaque page, en utilisant la fonction "require_once" ...
require_once 'lien_vers_le_fichier_bdd_connect.php';
--------------------------------------
Bonne chance !
Mettez en résolu quand c'est résolu -.- ...
glodybiss
Messages postés
440
Date d'inscription
vendredi 6 juin 2008
Statut
Membre
Dernière intervention
29 juillet 2015
9
23 août 2012 à 15:25
23 août 2012 à 15:25
JooS, merci beaucoup
J'essaie, j'enlève partout où j'ai utilisé la connexion par mysql_connect dans peu de temps je reviens a toi pour te dire merci et si je beug je reviens encore :)
merci
J'essaie, j'enlève partout où j'ai utilisé la connexion par mysql_connect dans peu de temps je reviens a toi pour te dire merci et si je beug je reviens encore :)
merci