Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/08/2007, 09h15   #1
Invité de passage
 
Inscription : août 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 3
Points : 1
Points : 1
Par défaut [SQL] erreur d'utilisation de variable

Bonjour tout le monde, je tien à dire merci pour les cours que vous proposez j'ai réussi à commencer un truc bien grace à vous tous !

mais, oui il y as toujours un Mais, je bloque sur une petite fonction ' if ', et je vien vous demandez de l'aide !

explication de pourquoi du comment j'utilise le php,
je fait une annimation flash ou il faut rentrer un loggin et mdp, et apré crée un nouveau nom de joueur, donc pour pas qu'il y ai de probléme je fait ma petite commande sql, tak je prend la valeur qui faut et je vérifie enfait si le pseudo du joueur n'existe pas déja ! si oui lui dire de tester un autre, sinon il peu continuer
Mais l'erreur est en rouge, enfait ça marche pas la condition n'est jamais bonne


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
session_start(); 
if(isset($_POST['PlayerNameTapperDansFlash''])) $PlayerNameTapperDansFlash'= utf8_decode($_POST['PlayerNameTapperDansFlash']); else $login="inconnu";
function envoi($var, $val){
echo "&".$var."=".utf8_encode($val);
}
require_once('connexionLogin.php'); 
mysql_select_db($database_connexionLogin, $connexionLogin);

$PlayerNameDB = "SELECT Name FROM dolcharacters WHERE Name='$PlayerNameTapperDansFlash''"; 
if($PlayerNameTapperDansFlash == $PlayerNameDB){ //la commande SQL marche bien, mais on dirai qu'il ne veu pas prendre en compte: $PlayerNameDB dans le if

envoi("retour","PasOkPlayerNameDjaUse");
//retour à flash ! li l'erreur pseudo déja use !
}
else
{
envoi("retour","OkPlayerNamePasUse");
//retour à flash ! li la suite du programme flash
}
?>


Tester avec:
if($PlayerNameTapperDansFlash == 'Tartanpion')
et quand le formulaire flash arrive je tappe bien: Tartanpion
et ça me dit bien de utiliser un autre pseudo, donc voilà c'est tout dit, je pense que ça doie être tout bête, mais apré avoir fait 200trucs diférent je sais plus ou me référencer . . .
empathe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2007, 09h23   #2
Membre Expert
 
Avatar de jbrasselet
 
Homme Julien Brasselet
Ingénieur développement logiciels
Inscription : mars 2006
Messages : 952
Détails du profil
Informations personnelles :
Nom : Homme Julien Brasselet
Âge : 32
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2006
Messages : 952
Points : 1 382
Points : 1 382
Envoyer un message via MSN à jbrasselet
J'ai l'impression que tu n'exécutes pas ta requête sql
Il faudrait pas un petit mysql_query par hasard?
__________________
L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai.
jbrasselet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2007, 09h30   #3
Invité de passage
 
Inscription : août 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 3
Points : 1
Points : 1
enfait là je vous ai poste le truc qui me parraissez le plus correct, mais j'ai fait aussi comme vous avez dit avec ça:

Code :
1
2
$query_rsPlayerNameDB = "SELECT Name FROM dolcharacters WHERE Name='$PlayerNameTapperDansFLash'";
mysql_query($query_rsPlayerNameDB);

mais apré dans le 'if' il faut marquer quoi ?
if($query_rsPlayerNameDB == $PlayerNameTapperDansFLash')
?
enfait ce que j'arrive pas a faire, c'est mettre le
Code :
'SELECT Name FROM dolcharacters WHERE Name='$PlayerNameTapperDansFLash'
>>>>>>> Dans une variable

enfait j'ai jamais euh encore besoin de faire de select
j'ai toujours fait des UPDATE , mais j'ai vitte vue que ça possait probléme :p

(j'ai utiliser ça: et ne marche pas )
Code :
$PlayerNameDB = mysql_query("SELECT Name FROM dolcharacters WHERE Name='$PlayerNameTapperDansFLash'");
empathe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2007, 09h36   #4
Membre Expert
 
Avatar de jbrasselet
 
Homme Julien Brasselet
Ingénieur développement logiciels
Inscription : mars 2006
Messages : 952
Détails du profil
Informations personnelles :
Nom : Homme Julien Brasselet
Âge : 32
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2006
Messages : 952
Points : 1 382
Points : 1 382
Envoyer un message via MSN à jbrasselet
Essaie quelque chose comme ça

Code :
1
2
3
4
 
$query_rsPlayerNameDB = "SELECT Name FROM dolcharacters WHERE Name='$PlayerNameTapperDansFLash'";
$result = mysql_query($query_rsPlayerNameDB);
$PlayerNameDB = mysql_fetch_array($resultat);
Ensuite tu fais ton if sur $PlayerNameDB['Name']
__________________
L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai.
jbrasselet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2007, 09h36   #5
Membre chevronné
 
Avatar de cadoudal56
 
Inscription : février 2005
Messages : 671
Détails du profil
Informations personnelles :
Âge : 40

Informations forums :
Inscription : février 2005
Messages : 671
Points : 646
Points : 646
Hello,

Il faut dire que chacun a sa propre manière de coder et perso je ne code pas de la meme facon....
Mais bon au premier abord je vois un ou deux problemes :

Code :
mysql_select_db($database_connexionLogin, $connexionLogin);
Bon, alors ici, il semble que tu te connectes a ta base de données, ce qui est bien.... A voir si la connection et bonne...

Code :
$PlayerNameDB = "SELECT Name FROM dolcharacters WHERE Name='$PlayerNameTapperDansFlash''";
Ici tu définis ta requete ce qui est bien. Mais ce qui est stocké dans $PlayerNameDB c'est la requete SQL pas le résultat. De plus je pense qu'elle est mal écrite et qu'elle génerera une erreur. Personnellement j'aurais écris ceci :
Code :
$PlayerNameDB = "SELECT Name FROM dolcharacters WHERE Name='".$PlayerNameTapperDansFlash."';";
Bref donc maintenant qu'elle est écrite a peu près correctement, il faudrait voir a l'envoyer.... Si tu veux un réultat. Et comme je pense que tu souhaites que la valeur du résultat sois stocké dans $PlayerNameDB, j'aurais donc plutot tenté ceci :

Code :
1
2
3
 
$query = "SELECT Name FROM dolcharacters WHERE Name='".$PlayerNameTapperDansFlash."';";
$PlayerNameDB = mysql_fetch_array($query) or die("La requete a échoué");
Bref maintenant que "en théorie" la valeur de la requete est stockée ou il faut, il faut aller la chercher. Et c'est là que je suis moins sur de moi....

Je dirais que en théorie, tu devrais retrouver ta valeur si tu fais ceci :

Code :
1
2
 
if ($PlayerNameTapperDansFlash == $PlayerNameDB[0]['Name']) {
Sinon essaie des variations au niveau de $PlayerNameDB[0]['Name']

Cependant, et en me relisant, je me rends compte que ton check est stupide... En effet, tu lui demande de chercher un Name qui est egal a $PlayerNameTapperDansFlash. Puis apres tu lui demande de comparer $PlayerNameTapperDansFlash au resultat de la requete (vois tu le probleme ?)

Tu devrais plutot verifier si le resultat remonte des lignes...
Si le resultat remonte une ligne, cela veut dire qu'il a un pseudo qui y ressemble dans la base. Si il ne remonte rien, cela veut dire que le pseudo n'existe pas....

Du coup le check serait ecris de cette manière :

Code :
1
2
 
if ($PlayerNameDB) {
Ce qui veut dire, si le tableau $PlayerNameDB n'est pas vide alors....


J'espere que cela pourra t'aider...

@+
Cadoudal56
__________________
PHP Competition System
Script de gestion de coupes et championnats
http://phpcompet.free.fr

Mon jeu de foot
cadoudal56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2007, 09h44   #6
Invité de passage
 
Inscription : août 2007
Messages : 3
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 3
Points : 1
Points : 1
$query_rsPlayerNameDB = "SELECT Name FROM dolcharacters WHERE Name='$PlayerNameTapperDansFLash'";
$result = mysql_query($query_rsPlayerNameDB);
$PlayerNameTapperDansFLash = mysql_fetch_array($resultat);

ok marche a merveille
un grand merci à Jbrasselet et Cadoudal56

15min au total pour pouvoir me répondre, me donner la solution, et mettre ce sujet en Résolu. bah franchemant à 9h du matin, moi je dit chapeau et GG

vous pouvez aller voir mon site Kdo !

http://81.56.156.44

j'utilise easy php pour le moment, on me dit que je doie avoir honte mais bon faut bien commencer par qque choze :p



(Pseudo de test: DDD)
dans account et mdp, tapper qque chose au harard ki n existe pas dans ma db :p
empathe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2007, 09h48   #7
Membre chevronné
 
Avatar de cadoudal56
 
Inscription : février 2005
Messages : 671
Détails du profil
Informations personnelles :
Âge : 40

Informations forums :
Inscription : février 2005
Messages : 671
Points : 646
Points : 646
Holalalalala

Code :
1
2
3
4
 
$query_rsPlayerNameDB = "SELECT Name FROM dolcharacters WHERE Name='$PlayerNameTapperDansFLash'";
$result = mysql_query($query_rsPlayerNameDB);
$PlayerNameTapperDansFLash = mysql_fetch_array($resultat);
Tu lui demande de regarder si il y a quelquechose dans la base qui correspond a $PlayerNameTapperDansFLash dans la base et ensuite tu stockes le résultat dans la meme valeur....

Lis la fin de mon post précédent.... Tu verras la logique a adopter...

@+
cadou
__________________
PHP Competition System
Script de gestion de coupes et championnats
http://phpcompet.free.fr

Mon jeu de foot
cadoudal56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2007, 10h05   #8
Membre Expert
 
Avatar de jbrasselet
 
Homme Julien Brasselet
Ingénieur développement logiciels
Inscription : mars 2006
Messages : 952
Détails du profil
Informations personnelles :
Nom : Homme Julien Brasselet
Âge : 32
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2006
Messages : 952
Points : 1 382
Points : 1 382
Envoyer un message via MSN à jbrasselet
Je l'ai corrigé rapidement. Erreur de copier-coller
__________________
L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai.
jbrasselet est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h29.


 
 
 
 
Partenaires

Hébergement Web