Extraction d'une valeur !

Eléphant du PHP | 96 Messages

19 déc. 2006, 12:36

Bonjour,

J'ai fait ceci :
<?php 
$sql_serveur = "serveursql"; 
$sql_base = "unebase"; 
$sql_login = "unlogin"; 
$sql_password = "monpasse"; 
@mysql_connect($sql_serveur, $sql_login, $sql_password) or die("Sql Error"); 
@mysql_select_db($sql_base);
$slq="SELECT ok FROM membres WHERE pseudo= '$pseudo';
if($ok=1) 
      echo 'Compte déja activer;
}
else{
$sql="UPDATE membres SET ok=1 WHERE pseudo= '$pseudo";
echo 'Compte activer;
mysql_query($sql) or die(mysql_error());
mysql_query($slq) or die(mysql_error();
mysql_close (); 
?>
Donc,quand la valeur "$ok" n'est pas a "1",l'update s'effectue correctement et passe a "1" puis affiche "compte activer" !

Par contre,quand la valeur est déja à 1 pour "$ok",il m'affiche aussi "compte activer" alors que je voudrait qu'il m'affiche "compte déja activer" !

J'ai donc fait une petite erreur quelques part mais je ne sait pas du tout ou !

Une aide serait la bienvenue :D

Merci d'avance !
Modifié en dernier par Brice83 le 19 déc. 2006, 14:09, modifié 2 fois.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

19 déc. 2006, 12:47

$slq="SELECT ok FROM membres WHERE pseudo= '$pseudo'";
if($ok==1) {
Ici, tu utilises une valeur récupérée dans une requete mais jamais tu ne l'extrait en utilisant mysql_fetch_array() ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 19672 Messages

19 déc. 2006, 12:58

Modération :
Merci d'utiliser un titre clair et qui correspond bien à ta demande.
Les titres contenant "HELP", "Aidez-moi !" n'apportent rien à la compréhension de ton problème.
Par ailleurs, nous savons déjà par ton message que tu as besoin d'aide.

Tu peux corriger ton titre en éditant ton premier message.

Merci de prendre le temps de lire les règlements.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 96 Messages

19 déc. 2006, 13:08

Pour le titre du topic, c'est modifier :wink:

Ensuite,j'ai rajouter cela :
$data = mysql_fetch_array($slq);
Et je me retrouve avec une erreur de type :
mysql_fetch_array(): supplied argument is not a valid MySQL
?

Désolé mais je débute :oops:

Mammouth du PHP | 19672 Messages

19 déc. 2006, 13:18

Tu ne récupères pas la bonne ressource :
-1- définir la requête :
$sql = "SELECT ...etc...";
-2- Exécuter la requête ET récupérer la ressource dans une variable:
$exec = mysql_query($sql);
-3- Récupérer les résultats :
while(false != ($data = mysql_fetch_array($exec)))
{
    // traitement des données...
}
Note bien le paramètre utilisé avec mysql_fetch_array() : toi, tu as envoyé la requête, il faut envoyer la ressource.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

19 déc. 2006, 13:19

Le fait de récupérer les valeurs extraites d'une requête ne te dispense pas de l'exécuter si tu veux qu'elle te ramènes des résultats :)

Le mysql_fetch_array() était en plus du mysql_query(), pas à la place ;)

$sql = "SELECT ..." => la requête sql a exécuter
$rs = mysql_query($sql) => l'exécution de la requête
$row = mysql_fetch_array($rs) => la lecture d'une ligne de résultat

Edit : Damn i've been grilled by Cyrano !
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...