Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2820 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  problème de requête

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

problème de requête

n°1317617
oli1987
Posté le 03-03-2006 à 10:57:49  profilanswer
 

Bonjour,
Diverses informations doivent être envoyées sur une table de données.
 
Un de ces champs se nomme 'id_user'. J'aimerai donc que lorsque l'internaute envoie ce formulaire à partir de sa session, l'id_user soit le même que celui qui se trouve dans une autre table, celle d'inscription de membres.
 
J'ai donc essayé
 
<?php  
$request = mysql_query("SELECT id FROM users WHERE pseudo='". mysql_real_escape_string($_SESSION['MM_Username']) ."'" ) or die(mysql_error());  
$result = mysql_fetch_assoc($request);  
?>  
 
(en sachant qu'une autre requête existe déjà sur la page, raison pour laquelle il y a un champ $req et $request)
 
et plus bas, inséré le champ  
 
<input type="hidden" name="id_user" value="<?php echo $result['id'] ?>" />    
 
 
 
La page de formulaire est normale, mais lorsqu'on l'envoie, ce message apparait.
 
INSERT INTO pari (id_user, id_pari, reponse) VALUES (0, 1, France)Champ 'France' inconnu dans field list
 
id_user = 0 alors que normalement, cela devrait valoir 5 !!!
 
aussi, pouvez vous me dire pourquoi 'France' inconnu dans field list
 
alors que l'internaute n'a que deux possibilités et qu'elles ne doivent pas nécessairement être mentionnées, si ? et où alors ?

mood
Publicité
Posté le 03-03-2006 à 10:57:49  profilanswer
 

n°1317627
anapajari
s/travail/glanding on hfr/gs;
Posté le 03-03-2006 à 11:20:05  profilanswer
 

franche est inconnu car il manque des quotes autour!!!
 
Et dans le code html du formulaire généré quelle est la value du champs id_user?

n°1317631
oli1987
Posté le 03-03-2006 à 11:23:26  profilanswer
 

0 ...

n°1317634
anapajari
s/travail/glanding on hfr/gs;
Posté le 03-03-2006 à 11:24:55  profilanswer
 

et donc a ton avis?

n°1317639
oli1987
Posté le 03-03-2006 à 11:28:50  profilanswer
 

le champ france se situe dans une table de données et des quotes sont bien présentes pourtant

n°1317641
oli1987
Posté le 03-03-2006 à 11:29:38  profilanswer
 

à mon avis ? j'ai testé en mettant 5 ou d'autres valeurs et ca affiche tujours 0 sur la page d'après

n°1317653
rufo
Pas me confondre avec Lycos!
Posté le 03-03-2006 à 11:36:38  profilanswer
 

France, faut le mettre entre "

n°1317681
oli1987
Posté le 03-03-2006 à 12:09:53  profilanswer
 

en fait dans ma table, j'ai
 
id, titre, reponse
 
1, Quelle équipe remportera ..., France-Slovaquie
 
et avec la ligne $choix = explode("-", $res["reponse1"]); France et Slovaquie apparaissent dans une liste déroulante sur le formulaire.
 
Je ne peux donc mettre des " que dans ma table de données mais cela ne change rien pourtant

n°1317686
oli1987
Posté le 03-03-2006 à 12:15:16  profilanswer
 

anapajari > La valeur de id_user dans mon formulaire est <?php echo $result['id'] ?>
 
vu que je veux qu'il récupère l'id de la table "users"...

n°1317689
smaragdus
whores, drugs & J.S. Bach
Posté le 03-03-2006 à 12:18:37  profilanswer
 

oli1987 a écrit :

en fait dans ma table, j'ai
 
id, titre, reponse
 
1, Quelle équipe remportera ..., France-Slovaquie
 
et avec la ligne $choix = explode("-", $res["reponse1"]); France et Slovaquie apparaissent dans une liste déroulante sur le formulaire.
 
Je ne peux donc mettre des " que dans ma table de données mais cela ne change rien pourtant


 
Ouhla, ouvre un bouquin de SQL parce que là t'as rien compris

mood
Publicité
Posté le 03-03-2006 à 12:18:37  profilanswer
 

n°1317708
oli1987
Posté le 03-03-2006 à 12:38:55  profilanswer
 

si, tout fonctionne bien jusqu'au moment où il ne veut pas accepter la valeur de la réponse France ou SLovaquie


Message édité par oli1987 le 03-03-2006 à 12:45:05
n°1317780
anapajari
s/travail/glanding on hfr/gs;
Posté le 03-03-2006 à 13:51:34  profilanswer
 

MAIS METS DES QUOTES AUTOUR DES VALEURS QUAND C'EST DES VARCHAR OU DES DATES QUE TU INSERES !!!!!!!!
 
ou alors utilises msqli et bind params -> doc

n°1317785
oli1987
Posté le 03-03-2006 à 13:59:06  profilanswer
 

elles y sont !!!

n°1317787
anapajari
s/travail/glanding on hfr/gs;
Posté le 03-03-2006 à 14:02:04  profilanswer
 

Code :
  1. INSERT INTO pari (id_user, id_pari, reponse) VALUES (0, 1, France)


Elles sont ou la?

n°1317792
oli1987
Posté le 03-03-2006 à 14:10:32  profilanswer
 

INSERT INTO pari (id_user, id_pari, reponse) VALUES (0, 1, 'France')
 
c'est bon ;), réglé le stresse ...
 
mtnt, j'ai un autre message d'erreur avant la fin. mais c'est en rapport mon id_user !! Ca doit être le même que celui qui s'affiche sur ma première table où les membres s'enregistrent. Et comme la session est toujours en cours, je ne vois pas pourquoi il ne le récupère pas directement, comme avec le pseudo par exemple (qui lui fonctionne très bien)

n°1317801
rufo
Pas me confondre avec Lycos!
Posté le 03-03-2006 à 14:25:46  profilanswer
 

Après 14 messages, t'as compris ce qu'on te disait depuis de début... Tu comprends vite mais faut t'expliquer longtemps... :/

n°1317803
oli1987
Posté le 03-03-2006 à 14:28:35  profilanswer
 

franchement, j'étais convaincu que j'avais rien oublié ... enfin soit, merci ;)
 
mai bon, reste l'id_user mtnt.  
 
l'erreur se situe sans doute dans mon code
 
je ne vois pas pq ça serait dans ma table.  
 
Table users :
 
id, pseudo, email
 
Et valeur id_user dans table prono : id (de table users)
 
C'est ce qu'il faut comme résultat.
 
Ca n'a probablement rien a voir avec la session vu que ce n'est pas l'id de la session, mais de l'user.
 
Comment "lier les deux tables" ?

n°1317810
anapajari
s/travail/glanding on hfr/gs;
Posté le 03-03-2006 à 14:32:29  profilanswer
 

... mais c'est pas compliqué de voir le problème !!!

Citation :


page1:  
 - tu récupères les informations du user en fonction de son pseudo
 - tu affiches ces informations dans un formulaire
 - quand tu regardes le formulaire, tu vois que ton id_user = 0
page2:
 - tu récupères les données du formulaire ( données dans lequel on trouve id_user=0)
 - tu t'en sers pour faire un insert


Alors a ton avis, a quel niveau se situe le problème?

n°1317814
oli1987
Posté le 03-03-2006 à 14:37:46  profilanswer
 

à la récupération des infos. je m'en doute bien, mais comme il s'agit d'une session, est ce obligatoire de passer par $_SESSION['id_user'] ??


Message édité par oli1987 le 03-03-2006 à 14:38:09
n°1317821
anapajari
s/travail/glanding on hfr/gs;
Posté le 03-03-2006 à 14:46:42  profilanswer
 

[:totoz] j'abandonne ...

n°1317825
oli1987
Posté le 03-03-2006 à 14:49:22  profilanswer
 

$_SESSION['id_user'] me donne 0 !!
 
Pour l'user avec lequel j'essaie, cela devrait donner 5 !
 
C'est pas logique quand meêm ...

n°1317893
newneo2001
Posté le 03-03-2006 à 15:54:49  profilanswer
 

j'abandonne aussi ...


---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/
n°1317902
rufo
Pas me confondre avec Lycos!
Posté le 03-03-2006 à 15:59:18  profilanswer
 

dans ta requête, tu parles de $_SESSION['MM_Username'] et dans ton dernier post, de $_SESSION['id_user']
 
Par ailleurs, est-ce que tu mets bien session_start(); en début de chaque page pour pouvoir utiliser les variables de session?

n°1317935
newneo2001
Posté le 03-03-2006 à 16:15:44  profilanswer
 

non je suis quasiment sur qu'il fait pas de  
$_SESSION['id_user'] = $res['id=user'] <-- recup de la base sql


---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/
n°1317989
oli1987
Posté le 03-03-2006 à 16:56:13  profilanswer
 

rufo > MM_Username reprend le pseudo. Lautre, l'id
 
Oui j'ouvre bien la session à chaque page
 
 
newneo2001 > si je le fais bel et bien (enfin je crois bien faire ;))  
 
Je vais ré-encoder :d

n°1317996
anapajari
s/travail/glanding on hfr/gs;
Posté le 03-03-2006 à 16:58:55  profilanswer
 

oli1987 a écrit :

Je vais ré-encoder :d


en mp3 alors :o

n°1318006
oli1987
Posté le 03-03-2006 à 17:05:46  profilanswer
 

jaja ;)

n°1318035
oli1987
Posté le 03-03-2006 à 17:41:12  profilanswer
 

Code :
  1. <?php
  2. // *** Validate request to login to this site.
  3. if (!isset($_SESSION)) {
  4.   session_start();
  5. }
  6. $loginFormAction = $_SERVER['PHP_SELF'];
  7. if (isset($_GET['accesscheck'])) {
  8.   $_SESSION['PrevUrl'] = $_GET['accesscheck'];
  9. }
  10. if (isset($_POST['ident'])) {
  11.   $loginUsername=$_POST['ident'];
  12.   $password=$_POST['passe'];
  13.   $MM_fldUserAuthorization = "";
  14.   $MM_redirectLoginSuccess = "membre.php";
  15.   $MM_redirectLoginFailed = "index.php";
  16.   $MM_redirecttoReferrer = false;
  17.   mysql_select_db($database_users, $users);
  18.  
  19.   $LoginRS__query=sprintf("SELECT id, pseudo, mdp FROM users WHERE id='%s' AND pseudo='%s' AND mdp='%s'",
  20.     get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $id_user : addslashes($id_user), get_magic_quotes_gpc() ? $password : addslashes($password));
  21.  
  22.   $LoginRS = mysql_query($LoginRS__query, $users) or die(mysql_error());
  23.   $loginFoundUser = mysql_num_rows($LoginRS);
  24.   if ($loginFoundUser) {
  25.      $loginStrGroup = "";
  26.    
  27.     //declare two session variables and assign them
  28.     $_SESSION['id_user'] = $id_user;
  29.     $_SESSION['MM_Username'] = $loginUsername;
  30.     $_SESSION['MM_UserGroup'] = $loginStrGroup;      
  31.     if (isset($_SESSION['PrevUrl']) && false) {
  32.       $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
  33.     }
  34.     header("Location: " . $MM_redirectLoginSuccess );
  35.   }
  36.   else {
  37.     header("Location: ". $MM_redirectLoginFailed );
  38.   }
  39. }
  40. ?>


 
Je fais pareil que pour MM_Username, et sur la page d'après, je met
 
echo 'Bonjour'.$_SESSION['MM_Username'];
 
ca, ça fonctionne
 
mais par contre,  
 
echo 'Votre session est'.$_SESSION['id_user'];
 
ne fonctionne pas.
 
Quand cela va, tout va car tout arrive correctement dans ma table de données sur l'id_user qui augmente de 1 à chaque reception de formulaire.

n°1318044
rufo
Pas me confondre avec Lycos!
Posté le 03-03-2006 à 17:52:16  profilanswer
 

je trouve les lignes 3 et 4 louches. Le session_start(), je le ferais dans tous les cas. Tu peux vérifier si tu passes bien dedans, svp?

n°1318061
oli1987
Posté le 03-03-2006 à 18:19:45  profilanswer
 

oui, c'est bon.
 
mais ce qui dérange mon navigateur, ce sont les lignes suivantes
 

Code :
  1. get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $id_user : addslashes($id_user), get_magic_quotes_gpc() ? $password : addslashes($password));


 
et  
 

Code :
  1. header("Location: ". $MM_redirectLoginFailed );

n°1318067
newneo2001
Posté le 03-03-2006 à 18:23:48  profilanswer
 

#
if (!isset($_SESSION)) {
#
 session_start();
#
}
 
déjà pas besoin du test tu fais ton session_start() sur chaque page
 
ensuite tu sais même pas faire une requete SQL simple pourquoi tu utilises un sprintf déjà ???
 
#
$LoginRS__query=sprintf("SELECT id, pseudo, mdp FROM users WHERE id='%s' AND pseudo='%s' AND mdp='%s'",
#
   get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $id_user : addslashes($id_user), get_magic_quotes_gpc() ? $password : addslashes($password));
#    
 
 
 
la preuve que tu fais n'importe quoi c'est que ton pseudo n'est pas retiré de ta db mais depuis cette ligne :
 
 $loginUsername=$_POST['ident'];
 
Franchement c'est du complétement n'importe quoi. tu ferrais mieux de tt supprimer ce code bien daubé et de refaire un truc normal.


---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/
n°1318071
oli1987
Posté le 03-03-2006 à 18:26:05  profilanswer
 

c'est la page d'identification. normal donc que le pseudo n'apparaise pas. c'est l'internaute qui tape son pseudo et mot de passe

n°1318073
newneo2001
Posté le 03-03-2006 à 18:29:18  profilanswer
 

mais ta requete déjà elle est pourrie.
 
recup tes variables avant au lieu de faire tes test dans ta req
 
$pseudo = isset($_POST['pseudo') ? html_entities($_POST['pseudo']) : null;
 
ensuite tu fais ta requete tt simpelment
 
SELECT * FROM users WHERE pseudo = mysql_real_escaped_string('$pseudo') etc...


---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/
n°1318076
oli1987
Posté le 03-03-2006 à 18:32:58  profilanswer
 

je ne vous suis plus.
Dans la page d'identification où l'internaute tape son pseudo et mot de passe, je veux récupéréer son pseudo donc ainsi que son id, présente dans la table qui regroupe tous les membres.
 
Une fois que je sais les récupérer, je fais mes tests en echo dans la page suivante, et une fois là, c'est terminé.

n°1318081
newneo2001
Posté le 03-03-2006 à 18:36:05  profilanswer
 

mais tu pourras rien faire ac ta page, ton code est (désolé de te le dire) mais vraiment nul à ch....
 
au lieu de recup du code compliqué que tu comprends pas, code toi un truc propre et repart de rien. Ce que tu veux faire là ca se fait en 10 min. Mais vu que tu comprend pas le code que tu as récup tu galères.


---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/
n°1318084
oli1987
Posté le 03-03-2006 à 18:39:06  profilanswer
 

je vais essayer mais je promet rien de tte façon. et alors, vu que c'est la page d'identification, tu laisses ça
 
if (!isset($_SESSION))  
{
session_start();
}
 
ou bien je remplace ça par  
 
session_start()  
 
??

n°1318085
newneo2001
Posté le 03-03-2006 à 18:41:34  profilanswer
 

mais où tu as vu qu'on mettais le session_start() dans un test ?????
 
tu le mets en début de chaque page. point c tout


---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/
n°1318095
oli1987
Posté le 03-03-2006 à 18:56:02  profilanswer
 

c'est normal que mon code soit nul à chier. J'utilise dreamweaver vu que je suis débutant. ca aurait été impossible pour moi d'utiliser autre chose

n°1318101
newneo2001
Posté le 03-03-2006 à 19:07:28  profilanswer
 

alors là tu dis encore plus n'importe quoi
 
Dreamweaver n'a jamais écrit des requêtes SQL.
 
Le code que tu utilises tu l'as récupéré sur quel site ?


---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/
n°1318104
oli1987
Posté le 03-03-2006 à 19:13:15  profilanswer
 

ha ça je te jure ! je n'ai été sur aucun site. j'ai suivi un tutoriel sur asp-php.net pour créer une base de données qui est en rapport avec un formulaire. et tout ce que tu as lu, c'est dreamweaver qui l'a créé. je te jure !

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  problème de requête

 

Sujets relatifs
[RESOLU]probleme de recuperation des lignes d'une requete mysqlProblème de requete
[hibernate] problème avec une reqûete en HQL qui utilise un 'map'probleme requete
Problème avec une requêteproblème requête client vers servlet
Probleme variable de session et requete sqlProblème requête SQL
probleme requete REGEXPProbleme de requete.
Plus de sujets relatifs à : problème de requête


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR