2

私がやろうとしているのは、GPT サイトのコンテスト スクリプトを作成することです。データベースで定義されているさまざまな金額を受賞者に授与できるようにしたいと考えています。たとえば、最初の場所はreward_1データベースなどにあるものを取得します。だから私はいつでもどこにでも行こうとしていますが、勝者のユーザーごとに異なるmysql_query("UPDATE members SET points=points+'$reward' WHERE username='$username'")必要があります.$reward

明確
化 この特定のスクリプトが実行されると、日付が >= コンテストの終了日である場合にユーザーに報酬が与えられます (コードでは <= と指定されているため、そうでない場合はテストできません) が、基本的にはそれが報酬を与えるとき、私はそれを行うために1つのクエリを使用できるようにしたいのですが、そのクエリが適切なユーザーに適切な報酬を与えることを望んでいます. たとえば、最も多くのオファーを完了したユーザーは、コンテスト テーブルのreward_1が示すものを受け取る必要があります。たとえば、1000 であり、2 位のユーザーは、500 などの行のreward_2 としてリストされている報酬を受け取ります。各ユーザーに異なる額ではなく、すべてのユーザーに同じ報酬額を提供します。それが役立つことを願っています!

これが私が持っているコードです(どこから始めればよいかわからないため、これを行うための関数を追加していないことに注意してください)

更新
私が取り組んでいるのは、すべてのブロックされた行の後にあるものであり、報酬額はdbtableコンテストからのものです。

私が取得しようとしているものについて十分に説明したかどうかはわかりません。何かを明確にする必要がある場合はお知らせください。すべての助けに感謝します!

さて、私はこれに少し取り組んでおり、配列を使用しようとしています。私は必要な方法で物事を機能させようとしているだけなので、このずさんさを許してください! これは新しいコードです:

<?
include_once"config.php";
date_default_timezone_set('UTC');

$query= "SELECT * FROM raffle WHERE amount>='1' ORDER BY Rand() LIMIT 2";
$result = mysql_query($query);
$raff=mysql_query("SELECT SUM(amount) FROM raffle");
$raffle=mysql_fetch_row($raff);
$amount= $raffle[0] / 2;
$dates= mysql_query("SELECT * FROM contest");
$stats= mysql_query("SELECT * FROM stats WHERE type='today'");
$statu= mysql_fetch_array($stats);

// while ($row = mysql_fetch_array($result)){
 // $uid = $row["id"]; 
 // $username = $row["user_id"];  
 // echo "User ID = $uid 
    // <br />User Name = $username 
   // <hr />"; 
// $winners= mysql_query("UPDATE members SET points=points+'".$amount."' WHERE username='".$username."'");
// $statusu1= mysql_query("UPDATE stats SET new='".$statu['new']."' WHERE type='yesterday'");
// $statusu2= mysql_query("UPDATE stats SET cashouts='".$statu['cashouts']."' WHERE type='yesterday'");
// $statusu3= mysql_query("UPDATE stats SET complete='".$statu['complete']."' WHERE type='yesterday'");
// $announce= mysql_query("INSERT INTO comment (text, home, date, text1)
// VALUES ('Rewards Cube System','',NOW(),'".$username." just won ".$amount." points in the daily raffle, Congrats!')");
 // }
 // $clear= mysql_query("UPDATE raffle SET amount='0'");
 // $clear1= mysql_query("UPDATE stats SET new='0' WHERE type='today'");
 // $clear2= mysql_query("UPDATE stats SET cashouts='0' WHERE type='today'");
 // $clear3= mysql_query("UPDATE stats SET complete='0' WHERE type='today'");
// print" DONE";



while ($dat = mysql_fetch_array($dates)) {
$places= mysql_query("SELECT * FROM members ORDER BY entries_".$dat['type']." DESC LIMIT ".$dat['rewards']."");
if ($dat['rewards'] == 1){
$reward = array ('1' => $dat['reward_1']);
}
else if ($dat['rewards'] == 2){
$reward = array ('1' => $dat['reward_1'], '2' => $dat['reward_2']);
}
else if ($dat['rewards'] == 3){
$reward = array ('1' => $dat['reward_1'], '2' => $dat['reward_2'], '3' => $dat['reward_3']);
}
else if ($dat['rewards'] == 4){
$reward = array ('1' => $dat['reward_1'], '2' => $dat['reward_2'], '3' => $dat['reward_3'], '4' => $dat['reward_4']);
}
else if ($dat['rewards'] == 5){
$reward = array ('1' => $dat['reward_1'], '2' => $dat['reward_2'], '3' => $dat['reward_3'], '4' => $dat['reward_4'], '5' => $dat['reward_5']);
}
else if ($dat['rewards'] == 6){
$reward = array ('1' => $dat['reward_1'], '2' => $dat['reward_2'], '3' => $dat['reward_3'], '4' => $dat['reward_4'], '5' => $dat['reward_5'], '6' => $dat['reward_6']);
}
else if ($dat['rewards'] == 7){
$reward = array ('1' => $dat['reward_1'], '2' => $dat['reward_2'], '3' => $dat['reward_3'], '4' => $dat['reward_4'], '5' => $dat['reward_5'], '6' => $dat['reward_6'], '7' => $dat['reward_7']);
}
else if ($dat['rewards'] == 8){
$reward = array ('1' => $dat['reward_1'], '2' => $dat['reward_2'], '3' => $dat['reward_3'], '4' => $dat['reward_4'], '5' => $dat['reward_5'], '6' => $dat['reward_6'], '7' => $dat['reward_7'], '8' => $dat['reward_8']);
}
else if ($dat['rewards'] == 9){
$reward = array ('1' => $dat['reward_1'], '2' => $dat['reward_2'], '3' => $dat['reward_3'], '4' => $dat['reward_4'], '5' => $dat['reward_5'], '6' => $dat['reward_6'], '7' => $dat['reward_7'], '8' => $dat['reward_8'], '9' => $dat['reward_9']);
}
else if ($dat['rewards'] == 10){
$reward = array ('1' => $dat['reward_1'], '2' => $dat['reward_2'], '3' => $dat['reward_3'], '4' => $dat['reward_4'], '5' => $dat['reward_5'], '6' => $dat['reward_6'], '7' => $dat['reward_7'], '8' => $dat['reward_8'], '9' => $dat['reward_9'], '10' => $dat['reward_10']);
}
while ($place = mysql_fetch_array($places)) {
if(time() <= strtotime($dat['date_2'])) {
foreach($reward as $rew)
print" {$dat['name']}  {$place['username']} {$rew} <br>";
}
else {
print" no contests ready for rewards given";
}
}
}
?>

それは私が望む結果を私に与えるようなものですが、それはそれぞれのためにそれを複製するので、私に与えます:

Monthly Offer Contest Faiz66 2500
Monthly Offer Contest Faiz66 1000
Monthly Offer Contest Faiz66 500
Monthly Offer Contest taras 2500
Monthly Offer Contest taras 1000
Monthly Offer Contest taras 500
Monthly Offer Contest admin 2500
Monthly Offer Contest admin 1000
Monthly Offer Contest admin 500
Monthly Referral Contest taras 2500
Monthly Referral Contest taras 1000
Monthly Referral Contest taras 500
Monthly Referral Contest kira423 2500
Monthly Referral Contest kira423 1000
Monthly Referral Contest kira423 500
Monthly Referral Contest Faiz66 2500
Monthly Referral Contest Faiz66 1000
Monthly Referral Contest Faiz66 500 

勝者ごとに 3 つの報酬を繰り返していますが、次のようにする必要があります。

Monthly Offer Contest Faiz66 2500
Monthly Offer Contest taras 1000
Monthly Offer Contest admin 500
Monthly Referral Contest taras 2500
Monthly Referral Contest kira423 1000
Monthly Referral Contest Faiz66 500 

配列はこれに対する最適な修正ではないかもしれませんが、そうである場合は、現在提供されている最初の表ではなく、上の表のようにする方法を知る必要があると思います。

4

1 に答える 1

0

このコードで休憩し、それを達成できる他の方法を読んだ後、私は最終的に実用的な解決策を思いつきました.

それは最善ではないかもしれませんが、うまくいきます。私は誰もが持っているかもしれない他の解決策を受け入れます!

<?
include_once"config.php";
include_once"test/includes.php";
date_default_timezone_set('America/New_York');

$dates=mysql_query("SELECT * FROM contest");
$timestamp = time();

while ($dat = mysql_fetch_array($dates)) {
$places="(SELECT * FROM `".$dat['name']."` ORDER BY `completed` DESC LIMIT ".$dat['rewards'].")";
$results=mysql_query($places);

if ($dat['rewards'] == 1){
$reward = "".$dat['reward_1']."";
}
else if ($dat['rewards'] == 2){
$reward = "".$dat['reward_1'].",".$dat['reward_2']."";
}
else if ($dat['rewards'] == 3){
$reward = "".$dat['reward_1'].",".$dat['reward_2'].",".$dat['reward_3']."";
}
else if ($dat['rewards'] == 4){
$reward = "".$dat['reward_1'].",".$dat['reward_2'].",".$dat['reward_3'].",".$dat['reward_4']."";
}
else if ($dat['rewards'] == 5){
$reward = "".$dat['reward_1'].",".$dat['reward_2'].",".$dat['reward_3'].",".$dat['reward_4'].",".$dat['reward_5']."";
}
else if ($dat['rewards'] == 6){
$reward = "".$dat['reward_1'].",".$dat['reward_2'].",".$dat['reward_3'].",".$dat['reward_4'].",".$dat['reward_5'].",".$dat['reward_6']."";
}
else if ($dat['rewards'] == 7){
$reward = "".$dat['reward_1'].",".$dat['reward_2'].",".$dat['reward_3'].",".$dat['reward_4'].",".$dat['reward_5'].",".$dat['reward_6'].",".$dat['reward_7']."";
}
else if ($dat['rewards'] == 8){
$reward = "".$dat['reward_1'].",".$dat['reward_2'].",".$dat['reward_3'].",".$dat['reward_4'].",".$dat['reward_5'].",".$dat['reward_6'].",".$dat['reward_7'].",".$dat['reward_8']."";
}
else if ($dat['rewards'] == 9){
$reward = "".$dat['reward_1'].",".$dat['reward_2'].",".$dat['reward_3'].",".$dat['reward_4'].",".$dat['reward_5'].",".$dat['reward_6'].",".$dat['reward_7'].",".$dat['reward_8'].",".$dat['reward_9']."";
}
else if ($dat['rewards'] == 10){
$reward = "".$dat['reward_1'].",".$dat['reward_2'].",".$dat['reward_3'].",".$dat['reward_4'].",".$dat['reward_5'].",".$dat['reward_6'].",".$dat['reward_7'].",".$dat['reward_8'].",".$dat['reward_9'].",".$dat['reward_10']."";
}

$rewardsa = explode(",", $reward);
$i=0;

// Offers Contest

if(time() <= $dat['date_2'] && $dat['type'] == offer) {
while ($place = mysql_fetch_array($results)) {
print" {$dat['name']}  {$place['username']}  {$rewardsa[$i]}<br>";
if($dat['r_type'] == points){
$winners= mysql_query("UPDATE members SET points=points+'".$rewardsa[$i]."' WHERE username='".$place['username']."'") or die(mysql_error());
$shout=mysql_query("INSERT INTO shout (id, username, datetime, shout) VALUES ('','".$shoutname."','".$timestamp."','".$place['username']." has just won ".$rewardsa[$i]." points in the ".$dat['name']."')") or die(mysql_error());
}
if($dat['r_type'] == cash){
$winners= mysql_query("UPDATE members SET cash=cash+'".$rewardsa[$i]."' WHERE username='".$place['username']."'") or die(mysql_error());
$shout=mysql_query("INSERT INTO shout (id, username, datetime, shout) VALUES ('','".$shoutname."','".$timestamp."','".$place['username']." has just won $".$rewardsa[$i]." in the ".$dat['name']."')") or die(mysql_error());
}
$i++;
if($winners && $shout){
$delete=mysql_query("DROP TABLE `".$dat['name']."`");
}
}
}

// Referral Contest

if(time() <= $dat['date_2'] && $dat['type'] == referral) {
while ($place = mysql_fetch_array($results)) {
print" {$dat['name']}  {$place['username']}  {$rewardsa[$i]}<br>";
if($dat['r_type'] == points){
$winners= mysql_query("UPDATE members SET points=points+'".$rewardsa[$i]."' WHERE username='".$place['username']."'") or die(mysql_error());
$shout=mysql_query("INSERT INTO shout (id, username, datetime, shout) VALUES ('','".$shoutname."','".$timestamp."','".$place['username']." has just won ".$rewardsa[$i]." points in the ".$dat['name']."')") or die(mysql_error());
}
if($dat['r_type'] == cash){
$winners= mysql_query("UPDATE members SET cash=cash+'".$rewardsa[$i]."' WHERE username='".$place['username']."'") or die(mysql_error());
$shout=mysql_query("INSERT INTO shout (id, username, datetime, shout) VALUES ('','".$shoutname."','".$timestamp."','".$place['username']." has just won $".$rewardsa[$i]." in the ".$dat['name']."')") or die(mysql_error());
}
$i++;
if($winners && $shout){
$delete=mysql_query("DROP TABLE `".$dat['name']."`");
}
}
}

}
?>
于 2012-07-20T15:19:00.323 に答える