Возврат результата функции mysql

Я установил эта функция Левенштейна в MYSQL. Производитель советует использовать это:

select levenshtein('butt', 'but') from test;
select levenshtein_ratio('butt', 'but') from test;

Я хочу вычислить коэффициент Левенштейна между $ search и каждой записью «name» в БД, а затем отобразить его в PHP.

Как я могу это сделать? заранее спасибо

$search = "Paul"; // The string I want compared to each DB entry

$query = "SELECT name, ??? FROM names"; // What's the MYSQL I need to use?

$response = @mysqli_query($dbc, $query);

while($row = mysqli_fetch_array($response)){

echo "Levenshtein Ratio: ".$row['???'];
echo "<br>";

}

0

Решение

Вам нужно использовать псевдоним, возвращаемый функцией

SELECT levenshtein('butt', 'but') as levenshtein FROM

тогда к нему можно получить доступ из levenshtein индекс.

$row['levenshtein']

Также обратите внимание:

Помимо сохранения данных в числовых индексах массива результатов, функция mysqli_fetch_array () может также сохранять данные в ассоциативных индексах, используя имена полей результирующего набора в качестве ключей.

Так что, если вы не хотите псевдоним, вы можете сделать:

$row[1]

это менее читабельно / ремонтопригодно для меня, хотя.

Если вы сомневаетесь в том, что содержит массив, вы можете проверить это с print_r или же var_dump, Они дадут вам индексы и значения, которые имеет массив.

1

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

Как насчет этого ?

<?php

$search = "Paul"; // The string I want compared to each DB entry
$query = "SELECT name, levenshtein(name, '".mysqli_real_escape_string ($dbc, $search)."') AS result FROM names";

$result = @mysqli_query($dbc, $query);

while($row = mysqli_fetch_array($result)){

echo "Levenshtein Ratio for ".$row['name'].' : '.$row['result']."<br />";

}
0

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