返回mysql函数的结果

时间:2017-02-27 13:05:47

标签: php mysql function mysqli levenshtein-distance

我在MYSQL中安装了this Levenshtein function。制造商建议使用它:

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

我想计算$ search和每个" name"之间的Levenshtein比率。在DB中输入,然后在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>";

}

2 个答案:

答案 0 :(得分:1)

您需要使用函数return

的别名
SELECT levenshtein('butt', 'but') as levenshtein FROM 

然后可以从levenshtein索引访问它。

$row['levenshtein']

另请注意:

  

除了将数据存储在结果数组的数字索引中之外,mysqli_fetch_array()函数还可以使用结果集的字段名作为键将数据存储在关联索引中。

所以,如果你不想要你可以做的别名:

$row[1]
但是,这对我来说不太可读/可维护。

如果对数组包含的内容有疑问,可以使用print_rvar_dump进行检查。这些将为您提供索引和数组的值。

答案 1 :(得分:0)

这个怎么样?

<?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 />";

}