problème de requête - PHP - Programmation
Marsh Posté le 03-03-2006 à 11:20:05
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?
Marsh Posté le 03-03-2006 à 11:28:50
le champ france se situe dans une table de données et des quotes sont bien présentes pourtant
Marsh Posté le 03-03-2006 à 11:29:38
à mon avis ? j'ai testé en mettant 5 ou d'autres valeurs et ca affiche tujours 0 sur la page d'après
Marsh Posté le 03-03-2006 à 12:09:53
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
Marsh Posté le 03-03-2006 à 12:15:16
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"...
Marsh Posté le 03-03-2006 à 12:18:37
oli1987 a écrit : en fait dans ma table, j'ai |
Ouhla, ouvre un bouquin de SQL parce que là t'as rien compris
Marsh Posté le 03-03-2006 à 12:38:55
si, tout fonctionne bien jusqu'au moment où il ne veut pas accepter la valeur de la réponse France ou SLovaquie
Marsh Posté le 03-03-2006 à 14:02:04
Code :
|
Elles sont ou la?
Marsh Posté le 03-03-2006 à 14:10:32
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)
Marsh Posté le 03-03-2006 à 14:25:46
Après 14 messages, t'as compris ce qu'on te disait depuis de début... Tu comprends vite mais faut t'expliquer longtemps...
Marsh Posté le 03-03-2006 à 14:28:35
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" ?
Marsh Posté le 03-03-2006 à 14:32:29
... mais c'est pas compliqué de voir le problème !!!
Citation : |
Alors a ton avis, a quel niveau se situe le problème?
Marsh Posté le 03-03-2006 à 14:37:46
à 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'] ??
Marsh Posté le 03-03-2006 à 14:49:22
$_SESSION['id_user'] me donne 0 !!
Pour l'user avec lequel j'essaie, cela devrait donner 5 !
C'est pas logique quand meêm ...
Marsh Posté le 03-03-2006 à 15:54:49
j'abandonne aussi ...
Marsh Posté le 03-03-2006 à 15:59:18
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?
Marsh Posté le 03-03-2006 à 16:15:44
non je suis quasiment sur qu'il fait pas de
$_SESSION['id_user'] = $res['id=user'] <-- recup de la base sql
Marsh Posté le 03-03-2006 à 16:56:13
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
Marsh Posté le 03-03-2006 à 17:41:12
Code :
|
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.
Marsh Posté le 03-03-2006 à 17:52:16
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?
Marsh Posté le 03-03-2006 à 18:19:45
oui, c'est bon.
mais ce qui dérange mon navigateur, ce sont les lignes suivantes
Code :
|
et
Code :
|
Marsh Posté le 03-03-2006 à 18:23:48
#
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.
Marsh Posté le 03-03-2006 à 18:26:05
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
Marsh Posté le 03-03-2006 à 18:29:18
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...
Marsh Posté le 03-03-2006 à 18:32:58
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é.
Marsh Posté le 03-03-2006 à 18:36:05
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.
Marsh Posté le 03-03-2006 à 18:39:06
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()
??
Marsh Posté le 03-03-2006 à 18:41:34
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
Marsh Posté le 03-03-2006 à 18:56:02
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
Marsh Posté le 03-03-2006 à 19:07:28
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 ?
Marsh Posté le 03-03-2006 à 19:13:15
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 !
Marsh Posté le 03-03-2006 à 10:57:49
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 ?