[RESOLU] gains suivant ratio

Avatar du membre
Eléphant du PHP | 60 Messages

27 août 2018, 11:07

Bonjour,
Je possède un site du style autosurf et la peronne qui m'aidais à récement tout arrêté.
Je me met donc doucement au php.
Sur mon autosurf , en plus des crédits que les membres peuvent gagner en surfant j'ai voulu ajouter la possibilité de gagner des euros.
En prenant mon temps j'y suis arrivé, mais par contre je n'arrive pas à ce que les euros gagnés soient aussi en fonction du niveau de statut vip et du ratio correspondant comme pour les crédits.
Est-ce que quelqu'un pourrais m'aider ?
Merci d'avance.

Petit nouveau ! | 3 Messages

27 août 2018, 11:48

Salut, tu ne peux pas simplement prendre le nombre d'euros gagnés, le mettre dans une variable par exemple $euro puis tu prend dans ta base de données le grade avec le ratio qui correspond (tu met tout ça avant dans ta bdd), puis tu fais $euro = $euro * $ratio et apresn tu remet $euro dans ta bdd et c'est bon non ?

Avatar du membre
Eléphant du PHP | 60 Messages

27 août 2018, 11:59

Salut,
Bin en fait j'y connais pas grand chose, je débute et les bases de données c'est pas mon fort.
Sinon, voici une copie de la page que j'ai modifié pour ajouter les euros, si ça peut aider.
J'ai mis en rouge ce que j'ai ajouté pour les euros
<?php
define('include',NULL);
include('core.php');

$idmembre = (isset($_GET['id'])) ? intval($_GET['id']) : 0;


if (!isset($_SESSION['membre']) || !isset($_SESSION['connect'])) { header('Location: /compte/login'); die(); }

$ip = getip();
$timestamp_24h = time() - (24*3600);
$timestamp_12h = time() - (12*3600);
$timestamp_5mn = time() - 300;
$timestamp_1mn = time() - 60;
$timestamp_1h = time() - 3600;

$db->query("DELETE FROM surfip WHERE date < '".$timestamp_24h."' AND time = 5");
$db->query("DELETE FROM surfip WHERE date < '".$timestamp_12h."' AND time = 4");
$db->query("DELETE FROM surfip WHERE date < '".$timestamp_5mn."' AND time = 3");
$db->query("DELETE FROM surfip WHERE date < '".$timestamp_1h."' AND time = 2");
$db->query("DELETE FROM surfip WHERE date < '".$timestamp_1mn."' AND time = 1");

$sqlcounti = $db->prepare('SELECT count(id) as count FROM membres WHERE id = :id');
$sqlcounti->execute(array(':id' => $idmembre));
$counti = $sqlcounti->fetch(PDO::FETCH_OBJ);

if ($counti->count == 0) {
echo '<!DOCTYPE html><html lang="fr"><head>
<meta charset="utf-8"/>
<title>'.$sitenom.' - Surf en cours</title>
<meta name="description" content="Ce membre n\'existe pas" />
<link rel="icon" href="/favicon.ico" type="image/x-icon" />
</head>
<body>Ce membre n\'existe pas</body></html>';
}
else {

$sqlinfos = $db->prepare('SELECT statut, parrain, last1, last2, niveau, auto, surf FROM membres WHERE id = :id');
$sqlinfos->execute(array(':id' => $idmembre));
$infos = $sqlinfos->fetch(PDO::FETCH_OBJ);

$sqlcount = $db->prepare('SELECT count(id) as count FROM sites WHERE membre != :id AND credits > 0 AND valid = 1 AND pause = 0 AND NOT EXISTS(SELECT id FROM blackmembre WHERE membre = :id AND lien = sites.id) AND NOT EXISTS(SELECT id FROM surfip WHERE ip = "'.$ip.'" AND site = sites.id) LIMIT 1');
$sqlcount->execute(array(':id' => $idmembre));
$count = $sqlcount->fetch(PDO::FETCH_OBJ);

if ($count->count == 0) {
echo '<!DOCTYPE html><html lang="fr"><head>
<meta charset="utf-8"/>
<title>'.$sitenom.' - Surf en cours</title>
<meta name="description" content="Il n\'y a plus de site à visiter" />
<link rel="icon" href="/favicon.ico" type="image/x-icon" />
</head>
<body>Il n\'y a plus de site à visiter</body></html>';
}
elseif ((time() - $infos->surf) <= 5) {
echo '<!DOCTYPE html><html lang="fr"><head>
<meta charset="utf-8"/>
<title>'.$sitenom.' - Surf en cours</title>
<meta name="description" content="Vous surfez trop vite" />
<link rel="icon" href="/favicon.ico" type="image/x-icon" />
</head>
<body>Vous surfez trop vite</body></html>';
}
else {

$rand = mt_rand(0,$count->count - 1);

$sqlsite = $db->prepare('SELECT id, url, ip FROM sites WHERE membre != :id AND credits > 0 AND valid = 1 AND pause = 0 AND NOT EXISTS(SELECT id FROM surfip WHERE ip = "'.$ip.'" AND site = sites.id) AND NOT EXISTS(SELECT id FROM blackmembre WHERE membre = :id AND lien = sites.id) LIMIT '.$rand.', 1');
$sqlsite->execute(array(':id' => $idmembre));
$site = $sqlsite->fetch(PDO::FETCH_OBJ);

$surf = time();

$sqlstatut = $db->prepare('SELECT ratio FROM statuts WHERE id = :id');
$sqlstatut->execute(array(':id' => $infos->statut));
$statut = $sqlstatut->fetch(PDO::FETCH_OBJ);

if ($infos->parrain != 0) {
$gainp = $statut->ratio*($config->parrainage/100);
$update = $db->prepare('UPDATE membres SET credits = credits + :gainp, parrainage = parrainage + :gainp WHERE id = :id');
$update->execute(array(':gainp' => $gainp, ':id' => $infos->parrain));
}

$last1 = $site->id;
$last2 = $infos->last1;
$last3 = $infos->last2;

if ($config->super == 1){
$gainsuper = $statut->ratio*(10/100);

$updatesup = $db->prepare('UPDATE super SET credits = credits + :gain WHERE etat = 1');
$updatesup->execute(array(':gain' => $gainsuper));
}
$update = $db->prepare('UPDATE sites SET visites = visites + 1, visitesjour = visitesjour + 1, credits = credits - 1 WHERE id = :id');
$update->execute(array(':id'=>$site->id));
if ($infos->niveau != 15) {
$update4 = $db->prepare('UPDATE membres SET progress = progress + 1 WHERE id = :id');
$update4->execute(array(':id' => $idmembre));
}

if ($infos->auto == 1){
$update2 = $db->prepare('UPDATE membres SET creditsjour = creditsjour + :gain, visitesjour = visitesjour + 1, visites = visites + 1, euros= euros + 0.000011, visitesmois = visitesmois + 1, surf = :surf, last1 = :last1, last2 = :last2, last3 = :last3 WHERE id = :id');
$update2->execute(array(':gain' => $statut->ratio, ':surf' => $surf, ':last1' => $last1, ':last2' => $last2, ':last3' => $last3, ':id' => $idmembre));
$updateauto = $db->prepare('UPDATE sites SET credits = credits + :gain WHERE membre = :membre ORDER BY rand() LIMIT 1');
$updateauto->execute(array(':gain' => $statut->ratio, ':membre' => $idmembre));
}
else {
$update2 = $db->prepare('UPDATE membres SET credits = credits + :gain, creditsjour = creditsjour + :gain, visitesjour = visitesjour + 1, visites = visites + 1, euros= euros + 0.000011, visitesmois = visitesmois + 1, surf = :surf, last1 = :last1, last2 = :last2, last3 = :last3 WHERE id = :id');
$update2->execute(array(':gain' => $statut->ratio, ':surf' => $surf, ':last1' => $last1, ':last2' => $last2, ':last3' => $last3, ':id' => $idmembre));
}

if ($site->ip != 0) {
$insert = $db->prepare('INSERT INTO surfip SET ip = :ip, site = :site, date = :date, time = :time');
$insert->execute(array(':ip' => getip(), ':site' => $site->id, ':date' => time(), ':time' => $site->ip));
}

$sqlinfos2 = $db->prepare('SELECT progress FROM membres WHERE id = :id');
$sqlinfos2->execute(array(':id' => $idmembre));
$infos2 = $sqlinfos2->fetch(PDO::FETCH_OBJ);

$max = 0; $gainniv = 0;
$sqlniv = $db->prepare('SELECT max, gain FROM niveaux WHERE id = :id');
$sqlniv->execute(array(':id' => ($infos->niveau+1)));
$niv = $sqlniv->fetch(PDO::FETCH_OBJ);
$max = $niv->max; $gainniv = $niv->gain;

if ($infos2->progress >= $max && $infos->niveau != 15) {
$upgrade = ($infos->niveau == 14 && $infos->statut == 1) ? ', statut = statut + 1' : '';
$update3 = $db->prepare('UPDATE membres SET niveau = niveau + 1, progress = 0, credits = credits + :credits, creditsjour = creditsjour + :credits'.$upgrade.' WHERE id = :id');
$update3->execute(array(':credits' => $gainniv, ':id' => $idmembre));
}

echo '<!DOCTYPE html><html lang="fr"><head>
<meta charset="utf-8"/>
<title>'.$sitenom.' - Surf en cours</title>
<meta name="description" content="Chargement de la page en cours" />
<link rel="icon" href="/favicon.ico" type="image/x-icon" />
<style type="text/css">
body{margin:0;padding:0;background-color: #1b1919;text-align:center;color:#fff;font-size:14px;font-weight:bold;text-shadow: 0px 1px 0px rgba( 0, 0, 0, 0.7);}
</style>
</head><frameset rows="80,*" frameborder="NO" border="0" framespacing="0">
<frame name="clic" src="/topsurf.php" frameborder="0">
<frame name="clic" src="'.$site->url.'" frameborder=0></frameset><noframes><body bgcolor="#FFFFFF" text="#000000">Veuillez patienter</body></noframes></html>';
}

}

?>

Petit nouveau ! | 3 Messages

27 août 2018, 12:17

tu t'est bien compliqué la tache avec toute ces requêtes, tu devrais finir le cours sur le mysql et apprendre quelques fonctions sql en plus avant de continuer, tu verra beaucoup de choses peuvent être faites simplement en sql mais il faut avoir les bonnes fonctions. Fini les cours sur le sql et reviens après si tu n'y arrive toujours pas ;)

Avatar du membre
Eléphant du PHP | 60 Messages

27 août 2018, 12:23

en fait c'est un script d'un site complet que l'on m'avais donné.
je vais continuer à chercher avant de revenir demander de l'aide

Avatar du membre
Eléphant du PHP | 60 Messages

08 sept. 2018, 19:17

Bonjour et merci pour votre aide.
J'ai fini par trouver la solution :
euros= euros + 0.000001*('.$statut->ratio.')