簡體   English   中英

PHP / MYSQL-for循環內僅生成一個隨機詞

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM