Page 1 sur 1

session avec autres manips données dans base?

Posté : 02 janv. 2006, 22:27
par YVES
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]

Posté : 02 janv. 2006, 22:48
par Cyrano
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");
    }
}

Posté : 02 janv. 2006, 23:15
par YVES
: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?

Posté : 02 janv. 2006, 23:17
par YVES
le $gestion passe déjà dans la session, d'ou p-etre le message d'erreur? :oops:

Posté : 03 janv. 2006, 00:20
par Truc
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

Posté : 03 janv. 2006, 13:31
par 3LpH4Ri0N
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:

Posté : 03 janv. 2006, 22:28
par YVES
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?)

Posté : 03 janv. 2006, 22:30
par YVES
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: )

Posté : 03 janv. 2006, 22:43
par YVES
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");
    }
}
?>

Posté : 03 janv. 2006, 22:50
par Cyrano
: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...

Posté : 03 janv. 2006, 22:52
par YVES
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

Posté : 03 janv. 2006, 22:54
par YVES
Cyrano a répondu avant meme que j'affiche mes abracabrantesques requètes :oops: .............

Posté : 03 janv. 2006, 22:59
par YVES
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

Posté : 03 janv. 2006, 23:15
par Truc
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"))