我有一个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);
});
});
});
答案 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列来检查用户玩游戏的日期,这样您就可以重复过去几天的单词。 如果您在数据库中验证它,那就更好了:)