如何重复从php文件中获取数据直到达到某个条件?

时间:2016-11-20 19:34:24

标签: javascript php jquery

我有一个php文件,随机从数据库中获取一个单词,json对其进行编码。我想使用jquery获取单词,但也要确保单词不在列表中。我很困惑我怎么能反复击中服务器,直到我的状况得到满足。这就是我所拥有的:

PHP:

 <?php
    $sql = "SELECT * FROM words ORDER BY RAND() LIMIT 1";
    $result = $db->query($sql);

    $row = $result->fetch_assoc();
    $word = $row['word'];
    echo json_encode($word);
    ?>

Jquery函数:

$(document).ready(function() {
    $("#newRound").on("click",function(){
        $.getJSON("getWord.php",function(data){
            //check here if data is already in wordsSoFar arary and if it is, get another word from getword.php
            document.getElementById("input1").style.visibility = 'visible';
            currentWord = data; //set the current work
            lives = 6; //reset lives
            tracker = 0; 
            incorrectLettersGuessed = "";
            allGuessedLetters = "";
            updateLetters();
            document.getElementById('hangman').innerHTML = '<center><img src="stage1.png"></center>';
            createTable(currentWord);
            output.innerHTML = '<center>'+messages.validLetter + '</center>';
            alert(currentWord);
        });
    });
});

2 个答案:

答案 0 :(得分:0)

如果你想要一个sql解决方案:

$sql = "SELECT * FROM words WHERE column_name NOT IN ('yourword1','yourword2','youword3'...) ORDER BY RAND() LIMIT 1";

编辑:我看到你的评论太晚了(在客户端检查)。

这里是一个jquery解决方案(因为你正在使用jQuery):

$.each(yourwordsarray, function( index, value ) {
  if(value == word_is_in){
.. do what you want with the word
}
});

答案 1 :(得分:0)

将数据库已经提供的单词保存在另一个表中,然后检查该单词是否不在该表上。 该表还可以有一个userID来标识数据库为您提供给该用户的单词,以及一个datetime列来检查用户玩游戏的日期,这样您就可以重复过去几天的单词。  如果您在数据库中验证它,那就更好了:)