session avec autres manips données dans base?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : session avec autres manips données dans base?

par Truc » 03 janv. 2006, 23:15

Bon, ce que tu veux est le contenu du champ "gestion" (jeton rouge ou vert) d'un membre particulier (dont le pseudo est en session).

voila les mots clés pour la requete:
$sql = "SELECT gestion FROM membres WHERE pseudo ='".$login."'";
je t'invite a regarder un peu la construction des requetes sql parce que le
SELECT pseudo AND gestion
n'as rien a faire ici mais plustot là:
WHERE champ1="" AND champ2=""
et tu veux savoir s'il posède un jeton rouge et non l'inverse, le test (if) doit donc etre un == et non !=
 if($data['gestion'] == ("./images/jetonrouge.gif")) 

par YVES » 03 janv. 2006, 22:59

j'ai changé ma requète ainsi:
<?
session_start();
?>
<?
$sql = "SELECT pseudo AND gestion FROM membres WHERE pseudo ='".$login."' gestion = '".$gestion."'";
$req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql.' '.mysql_error());
while ($data = mysql_fetch_assoc($req))
{
    if($data['gestion'] != ("./images/jetonrouge.gif"))
    {
        echo window.open("alerte1.htm", "jetonrouge", "width=270, height=300", "scrollbars=no");
    }
}
?>
Erreur SQL :
SELECT pseudo AND gestion FROM membres WHERE pseudo ='' gestion = './images/jetonvert.gif' You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'gestion = './images/jetonvert.gif'' at line 1

par YVES » 03 janv. 2006, 22:54

Cyrano a répondu avant meme que j'affiche mes abracabrantesques requètes :oops: .............

par YVES » 03 janv. 2006, 22:52

Truc, j'ai rajouté le "mysql error" et voici le mess d'erreur à présent:

Erreur SQL :
SELECT FROM membres WHERE pseudo AND gestion VALUES (, ./images/jetonvert.gif) You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM membres WHERE pseudo AND gestion VALUES (, ./images/jeton

par Cyrano » 03 janv. 2006, 22:50

:shock:
$sql = "SELECT FROM membres  WHERE pseudo AND gestion VALUES ($login, $gestion)";
C'est quoi cette requête fantaisiste ???

Tu devrais faire afficher tes requête et les tester dans phpMyAdmin : mets au point tes requêtes SQL AVANT de les intégrer dans ton code, tu vas gagner pas mal de temps à mon avis...

par YVES » 03 janv. 2006, 22:43

en rajoutant select from membres avec pseudo ET gestion j'ai le meme message d'erreur !
(est-ce a cause que la variable est une image et n'a pas une valeur du genre 0 ou 1 ou alphanumérique?)
<?
session_start();
?>
<?
$sql = "SELECT FROM membres  WHERE pseudo AND gestion VALUES ($login, $gestion)";
$req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
while ($data = mysql_fetch_assoc($req))
{
    if($data['gestion'] != ("./images/jetonrouge.gif"))
    {
        echo window.open("alerte1.htm", "jetonrouge", "width=270, height=300", "scrollbars=no");
    }
}
?>

par YVES » 03 janv. 2006, 22:30

Sinon pour répondre à 3LpH4Ri0N, je vois ou tu veux en venir mais le but recherché est de comparer une valeur dans la base par rapport à un membre et tant que cette valeur (en l'occurence "jeton rouge) y est, redirection vers alerte etc......
(sachant que ladite valeur est DEJA transportée via la session, d'ou p-etre le blème :shock: )

par YVES » 03 janv. 2006, 22:28

J'en sais rien, comprends rien et suis largué :)
D'abord pour répondre à Truc, il faut donc que dans ma requète je fasse référence à "pseudo" (ou login) pour savoir qu'on s'occupe bien du membre en question (qui est connecté via une session, je le rappelle?)

par 3LpH4Ri0N » 03 janv. 2006, 13:31

Pourquoi ne met tu pas plutôt dans ta base des id pour tes jetons???
Ensuite tu fais :
if $_SESSION['jeton'] == 1 {
     echo "./images/jetonvert.gif"; }
elseif {...
Cela serait peut êtres plus simple non??? Etant donné que c'est en session :roll:

par Truc » 03 janv. 2006, 00:20

j'aimerais dans cet exemple d'abord comparer si le membre a "jeton rouge" redirection vers fenetre message d'alerte...)
Perso je comprend pas tres bien comment tu veux verifier si ce membre dont la session est ouverte a un "jeton rouge" puisque rien de l'identifie personnelement d'apres la requete:
$sql = "SELECT gestion FROM membres WHERE gestion = '".$gestion."'";
avec $gestion égal au nom d'une image ! ==> './images/jetonvert.gif'

mais tu peux toujours ajouter mysql_error() à l'exécution de la requete pour avoir un message d'erreur et non seulement la requete :wink:
$req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql.' '.mysql_error()); 
le $gestion passe déjà dans la session, d'ou p-etre le message d'erreur?
:-k pas compris ça :-s

par YVES » 02 janv. 2006, 23:17

le $gestion passe déjà dans la session, d'ou p-etre le message d'erreur? :oops:

par YVES » 02 janv. 2006, 23:15

:cry:
C'est vrai que le code semble plus clair et logique !
mais j'ai un autre message d'erreur à présent

Erreur SQL : SELECT gestion FROM membres WHERE gestion = './images/jetonvert.gif'

C'est pourtant le truc dans la base par défaut (jetonvert.gif avec le chemin du fichier etc)....

Sinon, en cas de session active, il est donc inutile de faire une reconnexion à la base si ont veut manipuler d'autres données?

par Cyrano » 02 janv. 2006, 22:48

Le problème sur cette ligne :
while ($data !=("./images/jetonrouge.gif") mysql_fetch_assoc($req))
C'est que tu intercales une comparaison qui n'a rien à y faire : alors je ne sais pas si ça va correspondre à ce que tu veux faire, mais ça fonctionnerait mieux selon ce schéma :
while ($data = mysql_fetch_assoc($req))
{
    if($data['gestion'] != ("./images/jetonrouge.gif"))
    {
        echo window.open("alerte1.htm", "jetonrouge", "width=270, height=300", "scrollbars=no");
    }
}

session avec autres manips données dans base?

par YVES » 02 janv. 2006, 22:27

Bonjour a toutes et à tous et bonne année :D

Me revoilà avec de nouveaux problèmes inextricables? (qui a dit que php était simple? :shock: )

J'ai une session qui fonctionne presque bien mais je voudrais par la dessus modifier/comparer/changer d'autres données de ma base....

faut-il sur la meme page refaire une connexion à la base?

ci-joint un bout de code (qui est mauvais) mais voyons déja mon premier problème

:oops:
<?
session_start();
?>
<?
$sql = "SELECT gestion FROM membres WHERE gestion = '".$gestion."'";
$req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
while ($data !=("./images/jetonrouge.gif") mysql_fetch_assoc($req))
{
echo window.open("alerte1.htm", "jetonrouge", "width=270, height=300", "scrollbars=no"); 
}
?>
message d'erreur ............>
Parse error: parse error, unexpected T_STRING in /home/lemond/public_html/repos.php on line 7
(sachant que ma session est active, je n'ai pas fait de reconnexion à la base et ai envoyé la requète directement (qui est fausse d'ailleurs), j'aimerais dans cet exemple d'abord comparer si le membre a "jeton rouge" redirection vers fenetre message d'alerte...)[/php]