[英]PHP/MYSQL - Generate only one random word inside for loop
我在游戲中在用戶和計算機之間設置了一個小字眼。 用戶始終是第一個舉動的用戶,他輸入自己選擇的單詞。 我執行了一個sql查詢,以獲取用戶在播放時所做的所有播放(最多10次嘗試)。 一旦用戶采取了第一步,我希望計算機生成一個隨機單詞,如下所示:
$sql="Select word from plays where user=1 and id=$id";
$result=mysqli_query($link, $sql);
for($i=0;$i<10 && ($row=mysqli_fetch_assoc($result)) ;$i++){
// some code here
$random="select word from words order by Rand() LIMIT 1";
$result=mysqli_query($link, $random);
$wrandom=mysqli_fetch_assoc($result);
$wordR=$wrandom['word'];
}
第一次嘗試均能正常工作,但會生成一個隨機單詞,但第二次嘗試會生成兩個隨機單詞(而不是一個隨機單詞),第三次嘗試會生成3個單詞,依此類推...我該怎么辦每次嘗試僅生成一個隨機單詞?
您可以將兩個查詢合並為一個查詢。
$sql = "SELECT p.word as user_word, w.word as computer_word
FROM plays AS p
CROSS JOIN words AS w
WHERE p.user = 1 AND p.id = $id
ORDER BY RAND()
LIMIT 10";
$result = mysqli_query($link, $sql);
while ($row = mysqli_fetch_assoc($result)) {
$wordU = $row['user_word'];
$wordR = $row['computer_word'];
// some code here
}
您應該嘗試在循環中更改變量$result
的名稱,因為它與第一個$result
變量產生沖突。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.