Aller au contenu

condition non prise en compte


vero

Sujets conseillés

bonjour,

il doit me manquer quelques chose car la condition $duree n'est pas prise en compte pouvez vous m'aider.

c'est un formulaire de validation, donc j'envoi un lien comprenant un numero d'id, le membre clique dessus et arrive dans la partie de script qui nous occupe.

le script met un 1 dans le champs valide au lieu de 0 et change la valeur de id en 0. cela marche parfaitement bien.

Maintenant je voudrai qu'en fonction du champs chiffre qui est dans la base(1,2 ou3) il mette dans le champs abonnement la valeur (0,1 ou 30) et la date du jour.

voila le code actuel met 10 (valeur par defaut) dans le champs abonnement quelque soit le champs chiffre.

	$test = 0;
$datab = date("Y-m-d");





require ("sql_connect.php");

$sql = "SELECT COUNT(*) AS nbp FROM admin WHERE id=$_GET[id]";
$val = mysql_fetch_array(mysql_query($sql));
$chiffre = $val['chiffre'];

if ($chiffre == 1) $duree = 0;
elseif ($chiffre == 2) $duree = 30;
elseif ($chiffre == 3) $duree = 1;
else $duree = 10;

               if (!$val[0])
{
 $erreur = 1;
}
 
{
 $sql = "SELECT * FROM admin WHERE id=$_GET[id]";
 $qry = mysql_query($sql);
 $ftc = mysql_fetch_array($qry);
 mysql_query("UPDATE admin SET Valide='1',abonnement='$duree',datab='$datab', id='0' WHERE id='$id'");
}

Lien vers le commentaire
Partager sur d’autres sites

bon bin je ne sais pas le tester d'où je suis mais si tu changes cette ligne, ça ne fonctionne pas?

$sql = "SELECT COUNT(*) AS nbp FROM admin WHERE id=$_GET[id]";

$val = mysql_fetch_array(mysql_query($sql));

$chiffre = $val['chiffre'];

par

$sql = _AT_mysql_query("SELECT chiffre FROM admin WHERE id=$_GET[id]");

$chiffre = _AT_mysql_result($sql,0,"chiffre");

à+, Mike

Lien vers le commentaire
Partager sur d’autres sites

Salut ;)

C'est effectivement cette ligne qui ne va pas :

$chiffre = $val['chiffre'];

Remplace là par :

$chiffre = $val['nbp'];

Lien vers le commentaire
Partager sur d’autres sites

helas ca fonctionne pas mais je crois en effet que la solution est par la.

	require ("sql_connect.php");

$sql = "SELECT COUNT(*) AS nbp FROM admin WHERE id=$_GET[id]";
$val = mysql_fetch_array(mysql_query($sql));
$chiffre = $val['chiffre'];

if ($chiffre == 1) $duree = 0;
if ($chiffre == 2) $duree = 30;
if ($chiffre == 3) $duree = 1;
else $duree = 10;

le probleme est que ca va pas chercher le champs chiffre.

Lien vers le commentaire
Partager sur d’autres sites

oui, et je viens de te dire le problème dans le post précédent... Là tu vas chercher une variable qui n'existe pas, donc forcément la valeur ne sera pas la bonne :fou:

Première chose à faire : fais un echo de $sql pou vérifier que la requète est bonne. Essaye ensuite la requète dans MyAdmin si elle te semble bonne écrire à l'écran. Si MyAdmin ne renvoie pas d'erreur, c'est que la requète est bonne, et dans ce cas là ce que je t'ai donné avant doit être bon...

Donc essaye la ligne que je t'ai donné auparavant, et fais un echo de la variable pour vérifier...

Lien vers le commentaire
Partager sur d’autres sites

ca me donne toujours 10 soit la valeur par defaut et non la valeur qui correspond au champ chiffre qui est pour cette enregistrement à 3 et donc la valeur devrait etre 1.

Lien vers le commentaire
Partager sur d’autres sites

$chiffre = $val['nbp'];

si elle met ça elle va avoir le nombre de résultats à sa requête et non la valeur du champs chiffre non?

Val, c'est pour faire une boucle après et afficher les différents membres que tu fais un SELECT COUNT(*)? Pcq là tu ne fais que compter le nombre de résultat et tu ne sélèctionnes aucun champs....

Lien vers le commentaire
Partager sur d’autres sites

$chiffre = $val['nbp'];

si elle met ça elle va avoir le nombre de résultats à sa requête et non la valeur du champs chiffre non?

Val, c'est pour faire une boucle après et afficher les différents membres que tu fais un SELECT COUNT(*)? Pcq là tu ne fais que compter le nombre de résultat et tu ne sélèctionnes aucun champs....

<{POST_SNAPBACK}>

Bien sûr que non... Dans sa requète SQL, elle compte le nombre de champs, (SELECT count(*)) et le met dans la variable nbp, donc quand elle prend la valeur nbp elle obtient comme résultat le nombre de champs qu'il y a dans la BDD...

Mais j'y pense, si l'id est une clef unique, il risque pas de te renvoyer grand chose à part 0 ou 1 en fait... Donc je comprend peut-être ce que tu veux dire finalement ;) J'étais parti du principe que sa requète était bonne... Mais de toute manière le PHP n'est pas bon derrière :boude:

Bref, vero je veux bien t'aider, mais il faudrait suivre ce que je te conseille, sinon je ne peux vraiment rien faire pour toi... Je t'ai dis d'afficher $sql, puis de l'essayer dans myadmin, puis d'afficher $chiffre, et non de dire le résultat final...

Lien vers le commentaire
Partager sur d’autres sites

oui j'ai besoin d'aller chercher lla valeur du champs chiffre de cet enregistrement c'est ca mais comment je fais? pour l'instant j'ai:

	$sql = "SELECT COUNT(*) AS nbp FROM admin WHERE id=$_GET[id]";
$val = mysql_fetch_array(mysql_query($sql));
$chiffre = $val['chiffre'];

if ($chiffre == 1) $duree = 0;
if ($chiffre == 2) $duree = 30;
if ($chiffre == 3) $duree = 1;
else $duree = 10;

Lien vers le commentaire
Partager sur d’autres sites

y a t il un champion pour m'aider?

Je suis perdue...

mon script marche parfaitement bien sauf une condition non prise en compte aidez moi

Lien vers le commentaire
Partager sur d’autres sites

Bah dans ce cas là c'est ta requète SQL qui n'est pas bonne, et c'est donc ce qu'avait dit mikhawa effectivement...

Si tu veux la valeur de chiffre, la requète à faire est :

$sql = "SELECT chiffre FROM admin WHERE id='".$_GET[id]."'";
$val = mysql_fetch_array(mysql_query($sql));

En fait, on sait ce que tu as comme code, tu l'as copié trois fois dans le topic... Si tu étais bien explicite, et que tu nous aidais avec un peu plus d'infos (comme un exemple, ou la structure de la BDD), ça serait plus facile de t'aider...

Lien vers le commentaire
Partager sur d’autres sites

j ai mis le texte ci dessous comme demandé et ca me met toujours 10 le chiffre par defaut.

$sql = "SELECT chiffre FROM admin WHERE id='".$_GET[id]."'";
$val = mysql_fetch_array(mysql_query($sql));
$chiffre = $val['chiffre'];

if ($chiffre == '1') $duree = 0;
if ($chiffre == '2') $duree = 30;
if ($chiffre == '3') $duree = 1;
else $duree = 10;

Lien vers le commentaire
Partager sur d’autres sites

$sql = "SELECT chiffre FROM admin WHERE id='".$_GET[id]."'";
$val = mysql_fetch_array(mysql_query($sql));
$chiffre = $val['chiffre'];

echo "La requète SQL envoyée : $sql<br><br>Le chiffre annoncé par la requète : $chiffre";

Essaye de mettre ça et donne ce qui est mis à l'écran...

Lien vers le commentaire
Partager sur d’autres sites

Je t'ai demandé de tout mettre s'il te plaît vero sois sympa avec moi... :(

La requète SQL était plus importante que le chiffre, et tu ne donnes que le chiffre...

Vérifie la requète SQL qu'il t'affiche à l'écran, vérifie que la valeur $_get['id'] est bien affichée dans la requète, puis lance la requète dans MyAdmin pour voir ce qu'il te renvoie...

Voilà tant que tu n'auras pas fait ça, je ne répondrai plus ici...

Lien vers le commentaire
Partager sur d’autres sites

c'est ca que tu voulai?

La requète SQL envoyée : SELECT chiffre FROM admin WHERE id='860635403'

Le chiffre annoncé par la requète : 2

j'ai essayé avec dans le champ chiffre 1,2 et 3 et si ca met bien 1 avec le3 , les 2 autres mettent 10 si ca peux t'aider

merci pour ta patience, j'y suis depuis 8 h ce matin et j'ai jamais vue ca

Lien vers le commentaire
Partager sur d’autres sites

Ce que je cherche, ne connaissant ni ton script, ni ta base de donnée, ni rien du tout d'ailleurs, c'est de savoir si le problème provient de la requète SQL, ou alors du traitement en PHP derrière... C'est vraiment pas facile de savoir ça comme ça...

Tu as essayé avec MyAdmin ou pas ? Il te renvoie le chiffre que tu attends lui ?

Lien vers le commentaire
Partager sur d’autres sites

bon ca me parait pas possible sur un forum donc je te remercie pour ton aide et je vais abandonner ce projet en attendant d'avoir au retour des vacances un de mes amis progrmeur sur icq.

Merci pour ta patience et bonnes vacances

Lien vers le commentaire
Partager sur d’autres sites

Non, effectivement, ca ne parait pas possible sur un forum.

Sarc, très patient, t'as demandé un certain nombre de choses, qui lui sont indispensables pour pouvoir t'aider (voir son dernier topic). Ce n'est pas pour t'em.., c'est bien pour t'aider.

Si tu ne réponds pas aux questions, ni lui ni personne (je crains) ne pourra t'aider. Sur un forum comme sur icq/msn/autres.

Anonymus.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...