Help, code simplifiable...

Signaler
Messages postés
355
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
26 juin 2012
-
Messages postés
1267
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
29 juin 2010
-
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

Messages postés
1267
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
29 juin 2010
1
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 !
Messages postés
1267
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
29 juin 2010
1
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 !
Messages postés
1267
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
29 juin 2010
1
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 !
Messages postés
355
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
26 juin 2012
1
Messages postés
355
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
26 juin 2012
1
(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
Messages postés
1267
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
29 juin 2010
1
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 !
Messages postés
355
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
26 juin 2012
1
ok merci bcp ca marche !
Messages postés
355
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
26 juin 2012
1
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
Messages postés
1267
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
29 juin 2010
1
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 !
Messages postés
355
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
26 juin 2012
1
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
Messages postés
1267
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
29 juin 2010
1
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';

}

}

}
Messages postés
355
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
26 juin 2012
1
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
Messages postés
1267
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
29 juin 2010
1
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 !