PHPコードが1つの行からランダムに値を選択し、それを2番目の行にリンクするように、データベース内の2つの行をリンクしようとしています。例:
<?php
date_default_timezone_set("Asia/Tel_Aviv");
$mysqli = new mysqli;
$mysqli->connect("localhost", "root", "", "root");
$giftsq = $mysqli->query("SELECT * FROM `gifts`");
while($gifts = $giftsq->fetch_array())
{
$date = date('H:i');
if ($gifts['time'] <= $date)
{
$giftsid = $gifts['id'];
// $mysqli->query("DELETE FROM `gifts` WHERE `id` = '".$giftsid."'");
$winner = $mysqli->query("SELECT * FROM `giveaways` WHERE `giftid` = '".$giftsid."' ORDER BY RAND() LIMIT 1") or die('Error:'.$mysqli->error);
if($winner->num_rows >= 1)
{
$newwinner = $winner->fetch_array;
echo $newwinner['userid'];
}
}
}
?>
日付が現在の日付より前か、現在の日付と等しいすべてのギフト ID が選択されていることがわかります。正しいギフト ID が選択されると、システムは、2 行目の と呼ばれる同じギフト ID を選択することによって、勝者をランダムに選択しようとしますgiveaways
。
しかし、何らかの理由でそれが機能していません..
データベースの抽象化は次のとおりです。
ギフト
時間はプレゼントの終了時間を表しています。
id ------ title ------ img ------ creator ------ members ------ points ------ time
3 dota 1.png Captain 250 30000 14:00
6 gta 2.png User 303 20000 24:00
7 flolo 3.png Captain 204 10000 22:30
景品
id ------ giftid ------ userid
1 2 765611980448343721
2 6 765611980448343723
3 6 176561198044834371
4 6 176561198044834372
5 7 184582450892423483
6 7 423894024830294820
このすべてのプロセスの結果として、giftid 番号 6 に対して選択されたユーザー ID が次のユーザーのいずれかであることが画面に出力されます。
選択されたgiftid番号7は、ランダムに次のユーザーの1人です: 184582450892423483 423894024830294820
誰かがそれを行う方法を理解するのを手伝ってくれますか?