MySQL相关性排序

苹果酱

我正在尝试找出排序搜索结果的最佳方法,它们需要按以下顺序进行排序,但似乎不起作用。

可能是因为正在选择列等级,但用户没有填写名为等级的输入吗?

if(isset($_POST['search'])){
   $lname = trim($_POST['lname']);
   $address = trim($_POST['address']);
   $street = trim($_POST['street']);
   $city = trim($_POST['city']);
   $county = trim($_POST['county']);

   if($lname==""){
      $error[] = "Provide Last Name."; 
   }elseif($address=""){
       $error[] = "Provide House Number/Name.";
   }elseif($street==""){
      $error[] = "Provide Street.";
   }elseif($city==""){
       $error[] = "Provide City.";
   }elseif($county==""){
       $error[] = "Provide County.";
   }else{
       try{
           $stmt = $conn->prepare("SELECT *
           FROM clients
           WHERE  lname  like :lname
           AND   address like :address
           AND   street  like :street
           AND   city    like :city
           AND   county  like :county
           ORDER BY rating 
           WHEN rating like 'badabusive' THEN 0
           WHEN rating like 'badnopay' THEN 1
           WHEN rating like 'cautionlate' THEN 2
           WHEN rating like 'cautiondiscount' THEN 3
           WHEN rating like 'cautionextra' THEN 4
           WHEN rating like 'good' THEN 5
           END, rating");

           $stmt->execute(array("lname"  => empty($lname) ? '%' : '%'. $lname .'%',
           "address" => empty($address) ? '%' : '%'. $address .'%',
           "street"  => empty($street) ? '%' : '%'. $street .'%',
           "city"    => empty($city) ? '%' : '%'. $city .'%',
           "county"  => empty($county) ? '%' : '%'. $county .'%'));

    $userRow = $stmt->fetch(PDO::FETCH_ASSOC);

                if(!$userRow){                  
                     if($user->reportsearch($id,$lname,$address,$street,$city,$county)){
                          $user->redirect('./results.php?new='.$lname.$street);
                      }
                }else{
                    if($userRow['rating'] == 'badnopay'){
                        $user->redirect('./results.php?badnopay='.$lname.$street);
                    }
                    if($userRow['rating'] == 'cautionextra'){
                        $user->redirect('./results.php?cautionextra='.$lname.$street);
                    }
                    if($userRow['rating'] == 'cautiondiscount'){
                        $user->redirect('./results.php?cautiondiscount='.$lname.$street);
                    }
                    if($userRow['rating'] == 'cautionlate'){
                        $user->redirect('./results.php?cautionlate='.$lname.$street);
                    }
                    if($userRow['rating'] == 'good'){
                        $user->redirect('./results.php?good='.$lname.$street);
                    }
                    if($userRow['rating'] == 'badabusive'){
                        $user->redirect('./results.php?badabusive='.$lname.$street);
                    }
                }
            }
        catch(PDOException $e){
             echo $e->getMessage();
        }
    } 
}

我希望结果按此顺序显示,因此,如果我有多个评级不同的结果,则希望它们按顺序显示。

它在提交时正在重新加载页面,而没有正常显示结果页面。

达韦贾尔

您将不得不更改脚本。

  1. 查询,下单后的时间不正确
  2. 您将必须打印出所需的url,可以重定向,但是它将仅将您重定向到第一行(或第一个结果)
  3. 您在数据中对badshort进行了评级,结果将为null,因为您没有“ badshort”成为值的规则。

无需发布即可进行测试的完整脚本将变为:

<?php
$lname = 'something';
$address = 'something1';
$street = 'something2';
$city = 'something3';
$county = 'something4';

try{
$stmt = $conn->prepare("SELECT *, case 
WHEN rating like 'badabusive' THEN 0 
WHEN rating like 'badnopay' THEN 1 
WHEN rating like 'cautionlate' THEN 2 
WHEN rating like 'cautiondiscount' THEN 3 
WHEN rating like 'cautionextra' THEN 4 
WHEN rating like 'good' THEN 5 
END as ratingval FROM clients 
WHERE  
lname  like :lname and
address  like :address and
street  like :street and
city  like :city and
county  like :county
order by ratingval");

$stmt->bindParam(':lname', $lname);
$stmt->bindParam(':address', $address);
$stmt->bindParam(':street', $street);
$stmt->bindParam(':city', $city);
$stmt->bindParam(':county', $county);

$stmt->execute();

$userRow = $stmt->fetchAll();
if(!$userRow){
print "nothing found";
}
else
{
foreach ($userRow as $result) {
echo $result[lname] . " " . $result[ratingval]. "<br>";
}
}
}
catch(PDOException $e){
echo $e->getMessage();
}
?>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MySQL全文搜索并按相关性和时间排序

来自分类Dev

MySQL全文搜索与通配符的相关性

来自分类Dev

MySQL查询标签搜索的相关性

来自分类Dev

MySQL按相关性排序,同时具有多个like

来自分类Dev

如何将MySQL搜索结果与相关性排序?

来自分类Dev

Solr:按相关性/距离对结果排序

来自分类Dev

按相关性排序来自rentrez的已发布搜索

来自分类Dev

Neo4j - 按相关性排序

来自分类Dev

JavaScript 中的模糊搜索,结果按相关性排序

来自分类Dev

MySQL全文搜索,使用PHP和PDO按相关性和整数进行连接和排序

来自分类Dev

根据mysql中的相关性对结果进行排名

来自分类Dev

MySQL全文搜索按布尔模式顺序的相关性

来自分类Dev

根据mysql中的相关性对结果进行排名

来自分类Dev

mysql select ... in,计算几个匹配的相关性

来自分类Dev

更新HATEOAS的相关性

来自分类Dev

根据相关性填写

来自分类Dev

MongoDB全文搜索和多个单词按相关性排序

来自分类Dev

使用案例时如何按相关性排序PDO全文搜索

来自分类Dev

以编程方式搜索pypi软件包(最好按相关性排序)

来自分类Dev

如何在javascript中按相关性对搜索结果进行排序

来自分类Dev

在MongoDB聚合框架中使用多个字段按相关性排序

来自分类Dev

将 mysqls MATCH() AGAINST() 相关性与顶部的完整数学排序

来自分类Dev

如何使用 PHP 和 MySQLI 按相关性对结果进行排序?

来自分类Dev

在 ArangoDb 中将相关性排序与词前缀搜索相结合?

来自分类Dev

按相关性能问题排序

来自分类Dev

在 MySQLi 中按相关性排序 - 如果在某行中找到关键字,则首先按此排序

来自分类Dev

类型名称在namedtuple中的相关性

来自分类Dev

python中数组之间的相关性

来自分类Dev

Scipy:距离相关性高于1

Related 相关文章

  1. 1

    MySQL全文搜索并按相关性和时间排序

  2. 2

    MySQL全文搜索与通配符的相关性

  3. 3

    MySQL查询标签搜索的相关性

  4. 4

    MySQL按相关性排序,同时具有多个like

  5. 5

    如何将MySQL搜索结果与相关性排序?

  6. 6

    Solr:按相关性/距离对结果排序

  7. 7

    按相关性排序来自rentrez的已发布搜索

  8. 8

    Neo4j - 按相关性排序

  9. 9

    JavaScript 中的模糊搜索,结果按相关性排序

  10. 10

    MySQL全文搜索,使用PHP和PDO按相关性和整数进行连接和排序

  11. 11

    根据mysql中的相关性对结果进行排名

  12. 12

    MySQL全文搜索按布尔模式顺序的相关性

  13. 13

    根据mysql中的相关性对结果进行排名

  14. 14

    mysql select ... in,计算几个匹配的相关性

  15. 15

    更新HATEOAS的相关性

  16. 16

    根据相关性填写

  17. 17

    MongoDB全文搜索和多个单词按相关性排序

  18. 18

    使用案例时如何按相关性排序PDO全文搜索

  19. 19

    以编程方式搜索pypi软件包(最好按相关性排序)

  20. 20

    如何在javascript中按相关性对搜索结果进行排序

  21. 21

    在MongoDB聚合框架中使用多个字段按相关性排序

  22. 22

    将 mysqls MATCH() AGAINST() 相关性与顶部的完整数学排序

  23. 23

    如何使用 PHP 和 MySQLI 按相关性对结果进行排序?

  24. 24

    在 ArangoDb 中将相关性排序与词前缀搜索相结合?

  25. 25

    按相关性能问题排序

  26. 26

    在 MySQLi 中按相关性排序 - 如果在某行中找到关键字,则首先按此排序

  27. 27

    类型名称在namedtuple中的相关性

  28. 28

    python中数组之间的相关性

  29. 29

    Scipy:距离相关性高于1

热门标签

归档