php levenstein сходство в выпадающем списке с id

Я попытался сделать совпадение в выпадающем списке со списком категорий с первым подобным словом, которое найдено в регистре, например:

Введите цитату: «Солнце прекрасно, и никто не может видеть его напрямую»

взорвать каждое слово в массиве «the», «sun» и т.д …

найти слово в категории с похожим названием: категория «отлично»

Пока это нормально, но у категории есть идентификатор, так что … как я могу сделать это совпадение с идентификатором, потому что он находит слово, но всегда сохраняет с первым идентификатором категории.

Вот мой код: (отредактировано @Mike)

    <?php
$rows = mysql_num_rows($RecordsetCategory);
if($rows > 0) { mysql_data_seek($RecordsetCategory, 0);
while ($row_RecordsetCategory = mysql_fetch_assoc($RecordsetCategory)) {

$input = $row_RecordsetCategory['category'];
$words  = str_word_count($quotes,1);
$shortest = -1;

foreach ($words as $word) {
$lev = levenshtein($input, $word);
if ($lev == 0) {
$closest = $word;
$shortest = 0;
break;
}
if ($lev <= $shortest || $shortest < 0) {
$closest  = $word;
$shortest = $lev;
}
}

if ($shortest == 0) { ?>
<option value="<?php echo $row_RecordsetCategory['id']?>"><?php echo $closest;?></option>
<?php }
}
}
?>

Но то, что я получаю, — это одна и та же категория для всех этих цитат, когда каждая из них должна иметь разные >> кавычки категории

0

Решение

Кажется, что вы хотите while цикл, но используете do петля. Это работает лучше?

<?php

$rows = mysql_num_rows($RecordsetCategory);
if($rows > 0) {
mysql_data_seek($RecordsetCategory, 0);

while ($row_RecordsetCategory = mysql_fetch_assoc($RecordsetCategory)) {
$input = $row_RecordsetCategory['category'];

$chain = $quote;
$array = explode(" ", $quote);
$words  = $array;

$shortest = -1;

foreach ($words as $word) {
$lev = levenshtein($input, $word);
if ($lev == 0) {
$closest = $word;
$shortest = 0;
break;
}
if ($lev <= $shortest || $shortest < 0) {
$closest  = $word;
$shortest = $lev;
}
}

?><option value="<?php echo $row_RecordsetCategory['id']?>"><?php echo $closest;?></option><?php
}

}

Я не могу сказать, что полностью понимаю, что вы делаете, но вы захотите выполнить запрос, прежде чем работать с результатами запроса.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]