90 visiteur(s) en ligne
Date actuelle : 22-09-2017, 10:59 AM Bienvenue, Visiteur ! ( Identification S'enregistrer )







 
[Résolu] [PHP] Besoin d'aide sur un script de gestion d'offres
 
Note de cette discussion :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Auteur Message
Quentin Hors ligne
Administrateur
******

Messages : 904
Inscription : Mar 2008
Réputation : 10
Message : #1
[PHP] Besoin d'aide sur un script de gestion d'offres
Salut tout le monde,

Aujourd'hui je viens car j'ai besoin de votre aide en php (je suis pas très doué dans ce code).
Voilà mon problème :
J'ai une page "gestion.php" et dessus j'aimerais afficher l'offre du client en fonction de son id
En effet j'ai une table "users" qui contient les clients et dedans une colonne "offre" qui contient le nom de l'offre
Il faudrait que sur cette page j'arrive à afficher l'offre du client connecté.
Ex : Je me connecte avec l'username Cyboulette sur la page j'obtiens l'offre que Cyboulette a.
Je me connecte avec l'username Test sur la page j'obtiens l'offre que Test possède.

Voici la structure :


--
-- Structure de la table `users`
--

CREATE TABLE IF NOT EXISTS `users` (
`id` bigint(20) NOT NULL,
`username` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
`avatar` text NOT NULL,
`offre` varchar(255) NOT NULL,
`dir` varchar(255) NOT NULL,
`signup_date` int(10) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Et le code de ma page gestion.php :


<?php
//On récupère l'offre de l'utilisateur en fonction de son id
$req = mysql_query('select username, email, offre from users WHERE id=id');
while($dnn = mysql_fetch_assoc($req))
{
?>
Vous disposez de l'offre : <?php echo $dnn['offre']; ?> <br/>

En espérant que vous puissiez m'aider Smile Merci d'avance !


Vérifiez si votre sujet n'a pas été déjà posté !
Administrateur de Pcinfo-Web
Image: pascontent-sms.gif
01-01-2012 14:18 PM
Envoyer un email à cet utilisateur Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Troll Hors ligne
Trolls' master
******

Messages : 15 806
Inscription : Mar 2006
Réputation : 21
Message : #2
RE: [PHP] Besoin d'aide sur un script de gestion d'offres
Salut Quentin,

Le code PHP que tu utilises est le bon.

Le problème ici est que, telle que ta base de données est conçue, tu ne peux stocker qu'une seule offre par client.

Je m'explique :

Premièrement, dans ta table "users" il manque une clé primaire. En règle général, il faut une clé primaire dans une table (sauf quelques très rares cas, compliqués à expliquer ici).

En l'occurence, pour une table stockant les utilisateurs, la clé primaire sera logiquement l'identifiant de l'utilisateur car il est unique.

Cependant, une clé primaire est "unique" elle ne peut pas avoir, pour deux lignes différentes de ta base de données, la même valeur.

Ce qui implique de ne pas dupliquer les données, justement... et donc, de ne pouvoir avoir, avec ton schéma actuel, qu'une seule offre par client !

Ce qu'il faut faire c'est :
  • Mettre "id" en clé primaire (accessoirement, en AUTO_INCREMENT ça te facilitera la vie)
  • Retirer la colonne "offre"
  • Créer une table "offres" dans laquelle tu stockes les données relatives aux offres (comme leur prix, etc. ... )
  • Créer une table "clients_offres" par exemple (tu la nommes comme tu veux) qui fera la jointure entre tes offres et tes clients.

Dans cette table clients_offres tu auras :
  • une colonne client_id
  • une colonne offre_id

La clé primaire sera cette fois la combinaison (client_id, offre_id) qui deviendra unique (sauf si un client peut avoir plusieurs fois la même offre, dans ce cas, ne le mets pas en clé primaire).

Ensuite, pour avoir les offres pour un client donné, la requête deviendra :


SELECT * FROM clients_offres WHERE client_id = $id 

Et si tu veux récupérer les données de la table "offres" en même temps (pour avoir son nom par exemple) il faut faire une jointure :


SELECT * FROM clients_offres JOIN offres ON (clients_offres.offre_id = offres.id)


Voilà Smile


Un poste sans accent ? La faute au clavier qwerty :/
|| Merci de mettre des titres explicites !!! || La bouille à Troll ? || 
Vous voulez remercier l'équipe du forum ? Participez ! Exprimez-vous ! Revenez et parlez de ce que vous voulez ! Wink Image: actualites-informatiques-pcw.1.gif
(Ce message a été modifié le : 01-01-2012 14:30 PM par Troll.)
01-01-2012 14:28 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Quentin Hors ligne
Administrateur
******

Messages : 904
Inscription : Mar 2008
Réputation : 10
Message : #3
RE: [PHP] Besoin d'aide sur un script de gestion d'offres
Merci de ton aide mais ça ne marche pas Sad

J'ai fais exactement comme tu m'as dis, donc cela viens de mon code php

Je le remets ici :

<?php
//On recupere les identifiants, les pseudos et les emails des utilisateurs
$req = mysql_query('SELECT * FROM clients_offres JOIN offres ON (clients_offres.offre_id = offres.id)');
while($dnn = mysql_fetch_assoc($req))
{
?>
Vous disposez de l'offre : <?php echo $dnn['offre']; ?> <br/>

J'obtiens :
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /var/www/gestion.php on line 60


Vérifiez si votre sujet n'a pas été déjà posté !
Administrateur de Pcinfo-Web
Image: pascontent-sms.gif
01-01-2012 14:56 PM
Envoyer un email à cet utilisateur Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Troll Hors ligne
Trolls' master
******

Messages : 15 806
Inscription : Mar 2006
Réputation : 21
Message : #4
RE: [PHP] Besoin d'aide sur un script de gestion d'offres
C'est que ta requête plante Wink

Mets un "or die(mysql_error())" entre ton mysql_query() et le ";"

Comme ça :

mysql_query(blabla) or die(mysql_error());


Un poste sans accent ? La faute au clavier qwerty :/
|| Merci de mettre des titres explicites !!! || La bouille à Troll ? || 
Vous voulez remercier l'équipe du forum ? Participez ! Exprimez-vous ! Revenez et parlez de ce que vous voulez ! Wink Image: actualites-informatiques-pcw.1.gif
01-01-2012 15:37 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Quentin Hors ligne
Administrateur
******

Messages : 904
Inscription : Mar 2008
Réputation : 10
Message : #5
RE: [PHP] Besoin d'aide sur un script de gestion d'offres
J'obtiens maintenant : Unknown column 'offres.id' in 'on clause' Sad

Vérifiez si votre sujet n'a pas été déjà posté !
Administrateur de Pcinfo-Web
Image: pascontent-sms.gif
01-01-2012 16:03 PM
Envoyer un email à cet utilisateur Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Troll Hors ligne
Trolls' master
******

Messages : 15 806
Inscription : Mar 2006
Réputation : 21
Message : #6
RE: [PHP] Besoin d'aide sur un script de gestion d'offres
Est-ce que tu as bien créé une table qui s'appelle "offres" et qui contient une colonne "id" ? ^^

Un poste sans accent ? La faute au clavier qwerty :/
|| Merci de mettre des titres explicites !!! || La bouille à Troll ? || 
Vous voulez remercier l'équipe du forum ? Participez ! Exprimez-vous ! Revenez et parlez de ce que vous voulez ! Wink Image: actualites-informatiques-pcw.1.gif
01-01-2012 16:05 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Quentin Hors ligne
Administrateur
******

Messages : 904
Inscription : Mar 2008
Réputation : 10
Message : #7
RE: [PHP] Besoin d'aide sur un script de gestion d'offres
Ah non je l'avais appelé offre_id mais je viens de le changer en id mais ça n'affiche toujours pas le nom de l'offre Sad

Vérifiez si votre sujet n'a pas été déjà posté !
Administrateur de Pcinfo-Web
Image: pascontent-sms.gif
01-01-2012 16:15 PM
Envoyer un email à cet utilisateur Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Troll Hors ligne
Trolls' master
******

Messages : 15 806
Inscription : Mar 2006
Réputation : 21
Message : #8
RE: [PHP] Besoin d'aide sur un script de gestion d'offres
Ré-envoie la structure SQL de tes tables (les 3, maintenant que y'en a trois) et le code PHP que tu utilises pr afficher...

Un poste sans accent ? La faute au clavier qwerty :/
|| Merci de mettre des titres explicites !!! || La bouille à Troll ? || 
Vous voulez remercier l'équipe du forum ? Participez ! Exprimez-vous ! Revenez et parlez de ce que vous voulez ! Wink Image: actualites-informatiques-pcw.1.gif
01-01-2012 16:23 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Quentin Hors ligne
Administrateur
******

Messages : 904
Inscription : Mar 2008
Réputation : 10
Message : #9
RE: [PHP] Besoin d'aide sur un script de gestion d'offres
Voilà les structures :

--
-- Structure de la table `clients_offres`
--

CREATE TABLE IF NOT EXISTS `clients_offres` (
`client_id` int(20) NOT NULL,
`offre_id` int(20) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

-- --------------------------------------------------------

--
-- Structure de la table `offres`
--

CREATE TABLE IF NOT EXISTS `offres` (
`id` int(20) NOT NULL,
`nom` varchar(255) NOT NULL,
`prix` varchar(255) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

-- --------------------------------------------------------

--
-- Structure de la table `users`
--

CREATE TABLE IF NOT EXISTS `users` (
`id` bigint(20) NOT NULL,
`username` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
`avatar` text NOT NULL,
`signup_date` int(10) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Et pour afficher j'utilise :

<?php
//On recupere les identifiants, les pseudos et les emails des utilisateurs
$req = mysql_query('SELECT * FROM clients_offres JOIN offres ON (clients_offres.offre_id = offres.id)') or die(mysql_error());
while($dnn = mysql_fetch_assoc($req))
{
?>
Vous disposez de l'offre : <?php echo $dnn['nom']; ?> <br/>

Maintenant ça m'affiche : 1 (Qui est le nom de l'offre 1) et 2 (Qui est le nom de l'offre 2), seulement que j'ai mis l'offre 1 au client 1 et l'offre 2 au client 2. Je me suis connecté sur le client 2 ça m'affiche la même chose :/


Vérifiez si votre sujet n'a pas été déjà posté !
Administrateur de Pcinfo-Web
Image: pascontent-sms.gif
(Ce message a été modifié le : 01-01-2012 16:31 PM par Quentin.)
01-01-2012 16:29 PM
Envoyer un email à cet utilisateur Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Troll Hors ligne
Trolls' master
******

Messages : 15 806
Inscription : Mar 2006
Réputation : 21
Message : #10
RE: [PHP] Besoin d'aide sur un script de gestion d'offres
C'est normal, tu n'as pas mis de WHERE client_id = '.$id à la fin de ta requête Wink

Donc tu affiches tout, sans restreindre au client actuellement connecté sur la page. Smile

Un poste sans accent ? La faute au clavier qwerty :/
|| Merci de mettre des titres explicites !!! || La bouille à Troll ? || 
Vous voulez remercier l'équipe du forum ? Participez ! Exprimez-vous ! Revenez et parlez de ce que vous voulez ! Wink Image: actualites-informatiques-pcw.1.gif
01-01-2012 16:43 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse




Discussions apparemment similaires...
Discussion : Auteur Réponses : Affichages : Dernier message
  [Résolu] aide sur installation namowebediteur6suite sur Windows 8 poeta6969 16 4 000 22-05-2014 12:59 PM
Dernier message: leader.75
  Aide pour formulaire html Greg-au-spa 7 2 837 12-04-2013 19:56 PM
Dernier message: Troll
  Aide sur un script PHP regord 5 3 656 06-07-2012 16:40 PM
Dernier message: Troll
  de l'aide pour de la programmation bastien2423 14 5 731 08-06-2011 20:39 PM
Dernier message: Informaticien zero
  SVP aide pour trouver URL vidéo en direct katykat75 1 3 649 09-10-2010 11:11 AM
Dernier message: Troll
  [php/javascript]aide sur un script Nell95 8 3 665 18-07-2010 10:27 AM
Dernier message: Troll
  [Résolu] Aide algorithmique, Merci. gbueno3 10 4 092 14-01-2009 21:41 PM
Dernier message: AngeFMR
  [php] petit script avec function time() et date() sheitan 8 3 817 01-11-2008 10:53 AM
Dernier message: Troll
  Script Miniature Rammstein_666 21 5 493 16-10-2008 20:22 PM
Dernier message: Troll
  [Résolu] Problème de script de Livre d'Or Quentin 13 4 662 13-10-2008 14:44 PM
Dernier message: -Sh4D0w-

Aller à :


Utilisateur(s) parcourant cette discussion : 1 visiteur(s)