Help, code simplifiable...

zut69 Messages postés 354 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 26 juin 2012 - 4 mai 2005 à 14:06
JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 - 5 mai 2005 à 17:34
Bonjour,
Voilà, j'ai fait un système de parrainage sur mon espace membre, l'avantage du parrain, c est qu'il a +1 à $p_nbjours si son filleul à 10 ou 20 ou 30 ou ... $nbjours, en bref, chaque 10 jours du filleul en fait un de plus pour le parrain, j'ai fait avec le code ci-dessous qui marche bien, mais 100 lignes c est bcp simplement pour définir ceci. Est-ce que quelqu'un a une idée pour racourcir ce code? parce que j'ai pas envie de faire trop ralentir la connexion au site rien que pour ca.
Si jamais voici ce que représente certaines variables:
$parrainage est un nombre que j'insere dans la bdd pour savoir si le parrain a reçu son jour en plus ou pas.
$nbjours est le nombre de jours de connexion du filleul, de celui qui se connecte.
$p_nbjours est le nombre de jours du parrain
Voilà le code:
if($parrain != NULL)
{
$reponse = mysql_query("SELECT nbjours FROM pdf_membre WHERE pseudo='$parrain'") or die (mysql_error());
$p_donnees = mysql_fetch_array($reponse);
$p_nbjours = $p_donnees['nbjours'];

if($parrainage = 0)
{
if($nbjours = 10)
{
$p_nbjours ++;
$parrainage ++;
}
}
elseif($parrainage = 1)
{
if($nbjours = 20)
{
$p_nbjours ++;
$parrainage ++;
}
}
elseif($parrainage = 2)
{
if($nbjours = 30)
{
$p_nbjours ++;
$parrainage ++;
}
}
elseif($parrainage = 3)
{
if($nbjours = 40)
{
$p_nbjours ++;
$parrainage ++;
}
}
elseif($parrainage = 4)
{
if($nbjours = 50)
{
$p_nbjours ++;
$parrainage ++;
}
}
elseif($parrainage = 5)
{
if($nbjours = 60)
{
$p_nbjours ++;
$parrainage ++;
}
}
elseif($parrainage = 5)
{
if($nbjours = 60)
{
$p_nbjours ++;
$parrainage ++;
}
}
elseif($parrainage = 6)
{
if($nbjours = 70)
{
$p_nbjours ++;
$parrainage ++;
}
}
elseif($parrainage = 7)
{
if($nbjours = 80)
{
$p_nbjours ++;
$parrainage ++;
}
}
mysql_query("UPDATE pdf_membre SET nbjours='$p_nbjours' WHERE pseudo='$parrain'");
}

merci d'avance,
F

13 réponses

JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
4 mai 2005 à 14:56
Hello,

On compare avec ou ou encore !=, <, >, <=, >= ... Mais pas avec =

Sinon j'ai ca a te proposé :
<?php





$parrainage = 2;

$modulo = $nbjours%1;



if(!empty($parrain)) {

$reponse = mysql_query('SELECT nbjours FROM pdf_membre WHERE pseudo="' . $parrain . '" ') or die (mysql_error());

$row = mysql_fetch_array($reponse);

$nbjours = $row['nbjours'];



if( $modulo != 0 ) {

if( $parrainage < $modulo) {

if( $nbjours >= $parrainage*10 ) {

mysql_query('UPDATE pdf_membre SET nbjours="' . $nbjours . '" WHERE pseudo="' . $parrain . '" ') or die(mysql_error
());


}


}


}



?>

<hr style="width: 100%; height: 2px;">Si ma reponse te convient, merci de l'accepter !
0
JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
4 mai 2005 à 14:58
Oups, un petit oubli ....

<?php





$parrainage = 2;

$modulo = $nbjours%1;



if(!empty($parrain)) {

$reponse = mysql_query('SELECT nbjours FROM pdf_membre WHERE pseudo="' . $parrain . '" ') or die (mysql_error());

$row = mysql_fetch_array($reponse);

$nbjours = $row['nbjours'];



if( $modulo != 0 ) {

if( $parrainage < $modulo) {

if( $nbjours >= $parrainage*10 ) {

mysql_query('UPDATE pdf_membre SET nbjours=nbjours+1 WHERE pseudo ="' . $parrain . '" ') or die(mysql_error
());


}


}


}



?>


<hr style="width: 100%; height: 2px;">Si ma reponse te convient, merci de l'accepter !
0
JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
4 mai 2005 à 15:02
RRaa ...

Et en plus je n'explique pas !

Alors :

On calcule ton $parrainage en fonction du nombre de jours. 100jours%10, retourne 10, 35%10 retourne 3 ....

Et on regarde si le nombre de jours est plus grand ou egal au parrainage x 10

Et enfin, si toutes les conditions sont remplies, on incremente nbjours d'1

<hr style="width: 100%; height: 2px;">Si ma reponse te convient, merci de l'accepter !
0
zut69 Messages postés 354 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 26 juin 2012 1
4 mai 2005 à 15:02
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zut69 Messages postés 354 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 26 juin 2012 1
4 mai 2005 à 15:09
(dsl internet a planté)

ok merci, je comprends, mais y a juste, pourquoi tu pars avec parrainage = 2 ??? parce que tout ca change en fonction du membre.
Je vois pas trop
0
JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
4 mai 2005 à 15:25
C'est juste que j'ai definis une variable pour tester mon code

Sinon c'est a toi à la definir


<hr style="width: 100%; height: 2px;">Si ma reponse te convient, merci de l'accepter !
0
zut69 Messages postés 354 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 26 juin 2012 1
4 mai 2005 à 16:01
ok merci bcp ca marche !
0
zut69 Messages postés 354 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 26 juin 2012 1
4 mai 2005 à 16:34
Zut ! Il doit y avoir une erreur par la dedans, parce qu'il ne fait pas +1 au parrain au passage de 9 a 10 jours du filleul. Il n'affiche pas d erreur, mais simplement il fait la meme chose que quand le code n etait pas la !

redis moi si t as une idée...

merci quand meme

F
0
JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
4 mai 2005 à 18:33
Euh sinon utilise les if/else

if( $modulo != 0 ) {

if( $parrainage < $modulo) {

if( $nbjours >= $parrainage*10 ) {

mysql_query('UPDATE pdf_membre SET nbjours=nbjours+1 WHERE pseudo="' . $parrain . '" ') or die(mysql_error());

} else {

echo '$nbjours < $parrainage*10';

}

} else {

echo '$parrainage > $modulo'
;



}


}

Et tu sauras si il y a un blem. Sinon je ne vois pas
<hr style="width: 100%; height: 2px;">Si ma reponse te convient, merci de l'accepter !
0
zut69 Messages postés 354 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 26 juin 2012 1
4 mai 2005 à 21:57
Voila, j'ai essayé, mais il plante tjs, il m'affiche avec le nouveau code que t as mis ressource id #8 quand j essaie de me connecter avec le parrain juste apres... Je comprends vraiment pas du tout.
T'as une idée?
sinon il ne fait tjs pas +1 ni au parrainage ni a nbjours du parrain...
Dommage
0
JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
5 mai 2005 à 09:51
Re,

ça ca marche chez moi :

$parrainage = 2;



if(!empty($parrain)) {

$reponse = mysql_query('SELECT nbjours FROM pdf_membre WHERE pseudo="' . $parrain . '" ') or die (mysql_error());

$row = mysql_fetch_array($reponse);

$nbjours = $row['nbjours'];



$modulo = $nbjours%1;



if( $modulo != 0 ) {

if( $parrainage < $modulo) {

if( $nbjours >= $parrainage*10 ) {

mysql_query('UPDATE pdf_membre SET nbjours=nbjours+1 WHERE pseudo="' . $parrain . '" ') or die(mysql_error());

} else {

echo '$nbjours < $parrainage*10';

}

} else {

echo '$parrainage > $modulo';

}

}

}
0
zut69 Messages postés 354 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 26 juin 2012 1
5 mai 2005 à 12:34
Re,
Je suis désolé, ca va tjs pas, et je comprends pas, j'ai tout revu le code, ca me semble correct.
Tiens stp tu peux regarder dans le zip, dans le contexte, peut etre que c est qqch d autre qui ne va pas, mais la moi je suis dépassé, je comprends pas.

Voici l espace membre complet, il faut regarder dans pdf_connexion2.php, l'erreur doit se trouver là...
ZIP: http://membres.lycos.fr/ludigratuit/membres.zip

Merci,
F
0
JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
5 mai 2005 à 17:34
Bissar que ca ne marche pas. Une erreur toute bete.

Et sorry mais je pars ...

Je ne rentrerais que Mercredi 11. Donc si quelqu'un d'autre peux s'occuper de lui.

Aller @+, vais en profiter, meme si c'est un voyage par l'ecole. Aller
j'essayerais tout de meme de venir si il y a internet ou je vais.


<hr style="width: 100%; height: 2px;">Si ma reponse te convient, merci de l'accepter !
0
Rejoignez-nous