PHP在_数组中无法正常工作
我有一个PHP在_数组中无法正常工作,php,mysql,Php,Mysql,我有一个mysql\u查询从'english'列表数据库中select*,然后mysql\u fetch\u assoc返回一个数组。我尝试通过在数组()中使用来搜索单词'flick'(它实际上存在于数据库中)。如果找到'flick',则不应显示它,但会显示它。我认为在_array函数中找不到单词'flick'。请看下面的代码: <?php error_reporting(E_ALL); require 'db.php'; function spellcheck($word) { $ou
mysql\u查询
从'english'
列表数据库中select*
,然后mysql\u fetch\u assoc
返回一个数组。我尝试通过在数组()中使用来搜索单词'flick'
(它实际上存在于数据库中)。如果找到'flick'
,则不应显示它,但会显示它。我认为在_array
函数中找不到单词'flick'
。请看下面的代码:
<?php
error_reporting(E_ALL);
require 'db.php';
function spellcheck($word)
{
$output = array();
$word = mysql_real_escape_string($word);
$words = mysql_query("SELECT `word` FROM `english` WHERE LEFT(`word`, 1) = '" .
substr($word, 0, 1) . "'");
while(($words_row = mysql_fetch_assoc($words)) && (in_array($word, $words_row)==false))
{
similar_text($word, $words_row['word'], $percent);
if($percent > 82)
{
$output[] = $words_row['word'];
}
}
return (empty($output)) ? false : $output;
}
if (isset($_GET['word']) && trim($_GET['word']) != null)
{
$word = $_GET['word'];
$spellcheck = spellcheck($word);
if ($spellcheck !== false)
{
echo '<pre>' . print_r($spellcheck, true) . '</pre>';
} else {
echo '<p>' . $word . ' spelled correctly, or no suggestions founds.</p>';
}
}
?>
<form action="" method="GET">
Check single word spelling:
<input type="text" name="word" />
<input type="submit" value="Check" />
</form>
但它应该是:
while(($words_row = mysql_fetch_assoc($words)) && (in_array($word, $words_row)==false))
更换这条线
while(($words_row = mysql_fetch_assoc($words))) {
if((in_array($word, $words_row)==false)) {
与
并在底部关闭if语句替换此行
while(($words_row = mysql_fetch_assoc($words))) {
if((in_array($word, $words_row)==false)) {
与
并在底部关闭if语句替换此行
while(($words_row = mysql_fetch_assoc($words))) {
if((in_array($word, $words_row)==false)) {
与
并在底部关闭if语句替换此行
while(($words_row = mysql_fetch_assoc($words))) {
if((in_array($word, $words_row)==false)) {
与
在底部结束if语句经过两天的研究,我找到了答案。
错误出现在mysql\u fetch\u assoc
的查询输出中。实际上,它返回一个关联数组,但每个键都会在其后添加一个空格(“”)。
因此,结果不像abcdefg
。结果类似于abcdefg
。这意味着当我在关联数组中搜索一个特殊的单词时,in_array()
函数返回false。因为例如,单词'flick'
不等于'flick'
,并且数组中的键后面有一个空格。我使用了trim()
函数并解决了我的问题:
谢谢你注意我的回答 经过两天的研究,我找到了答案。 错误出现在mysql\u fetch\u assoc的查询输出中。实际上,它返回一个关联数组,但每个键都会在其后添加一个空格(“”)。 因此,结果不像
abcdefg
。结果类似于abcdefg
。这意味着当我在关联数组中搜索一个特殊的单词时,in_array()
函数返回false。因为例如,单词'flick'
不等于'flick'
,并且数组中的键后面有一个空格。我使用了trim()
函数并解决了我的问题:
谢谢你注意我的回答 经过两天的研究,我找到了答案。 错误出现在mysql\u fetch\u assoc的查询输出中。实际上,它返回一个关联数组,但每个键都会在其后添加一个空格(“”)。 因此,结果不像
abcdefg
。结果类似于abcdefg
。这意味着当我在关联数组中搜索一个特殊的单词时,in_array()
函数返回false。因为例如,单词'flick'
不等于'flick'
,并且数组中的键后面有一个空格。我使用了trim()
函数并解决了我的问题:
谢谢你注意我的回答 经过两天的研究,我找到了答案。 错误出现在mysql\u fetch\u assoc的查询输出中。实际上,它返回一个关联数组,但每个键都会在其后添加一个空格(“”)。 因此,结果不像
abcdefg
。结果类似于abcdefg
。这意味着当我在关联数组中搜索一个特殊的单词时,in_array()
函数返回false。因为例如,单词'flick'
不等于'flick'
,并且数组中的键后面有一个空格。我使用了trim()
函数并解决了我的问题:
谢谢你注意我的回答 不要再使用
mysql.*
函数了。它们被弃用了很长一段时间,并在接下来的几个月内最终被PHP7删除。请改用PDO或mysqli。谢谢。您是否认为mysql\u*
是错误答案的原因?亲爱的@deceze,我测试了mysqli\u*
,遗憾的是答案是相同的。这意味着在我的本地主机xampp中,mysl和mysqli之间没有区别。@Majid区别在于mysqli
将在将来工作,mysql\u query
已经在PHP5.5中产生了大量警告。不要再使用mysql\u*
函数。它们被弃用了很长一段时间,并在接下来的几个月内最终被PHP7删除。请改用PDO或mysqli。谢谢。您是否认为mysql\u*
是错误答案的原因?亲爱的@deceze,我测试了mysqli\u*
,遗憾的是答案是相同的。这意味着在我的本地主机xampp中,mysl和mysqli之间没有区别。@Majid区别在于mysqli
将在将来工作,mysql\u query
已经在PHP5.5中产生了大量警告。不要再使用mysql\u*
函数。它们被弃用了很长一段时间,并在接下来的几个月内最终被PHP7删除。请改用PDO或mysqli。谢谢。您是否认为mysql\u*
是错误答案的原因?亲爱的@deceze,我测试了mysqli\u*
,遗憾的是答案是相同的。这意味着在我的本地主机xampp中,mysl和mysqli之间没有区别。@Majid区别在于mysqli
将在将来工作,mysql\u query
已经在PHP5.5中产生了大量警告。不要再使用mysql\u*
函数。它们被弃用了很长一段时间,并在接下来的几个月内最终被PHP7删除。请改用PDO或mysqli。谢谢。您是否认为mysql\u*
是错误答案的原因?亲爱的@deceze,我测试了mysqli\u*
,遗憾的是答案是相同的。这意味着在我的本地主机xampp中mysl和mysqli之间没有区别。@Majid区别在于mysqli
将在将来工作,mysql\u query
已经在PHP5.5中产生了大量警告。感谢您的回答。但我以前试过,但没有用。因为我相信你提供的代码和我的代码之间没有差异。谢谢你的回答。日分