PHP-基于If else条件的多选查询


PHP - Multiple Select queries based on If else conditions

我需要帮助处理基于If else条件的多选查询。我有多个表,我想处理这样的查询。

  1. 在表1中搜索,如果找到,则返回结果
  2. 如果未找到,则在表2中搜索
  3. 如果在表1和表2中都没有找到单词,则检查表3,然后检查表4

我正在使用以下代码。

        <?php
    // 1. Create a database connection
    $mysqli = new mysqli("localhost", "root", "", "us");
    /* check connection */
    if ($mysqli->connect_errno) {
        printf("Connect failed: %s'n", $mysqli->connect_error);
        exit();
    }
    $term = strip_tags(substr($_POST['searchit'],0, 100));
    $term = $mysqli->real_escape_string($term); 
    if($term=="") {
    echo "Enter Something to search";
        exit();
    }

    if(
        $result = $mysqli->query("Select * from table1 where word like '{$term}%'
                        UNION
                        Select * from table2 where word like '{$term}%'")){
       $num_rows = $result->num_rows;
        if(mysqli_num_rows($result) >= 0) {
            while($row = $result->fetch_assoc())
             {
        echo "Stem : {$row['word']} <br>";
    }
    }
        else {
             $result = $mysqli->query("Select * from table3 where words like '{$term}%'");
                    $num_rows = $result->num_rows;
        if(mysqli_num_rows($result) >= 0) {
            while($row = $result->fetch_assoc())
             {
        echo "words: {$row['words']} <br>";
    }
    }
}
}
    else{
     echo "No matches found!";
    }
    ?>

尝试

str_replace($row['prefix'],'',$term );
<?php
 mb_internal_encoding( 'UTF-8');

   $mysqli = new mysqli("localhost", "root", "", "us");
   if ($mysqli->connect_errno) {
    printf("Connect failed: %s'n", $mysqli->connect_error);
    exit();
   }
   $mysqli->query("SET WORDS 'utf8'");
   $mysqli->query('SET CHARACTER SET utf8'); 

   $term = strip_tags(substr($_POST['searchit'],0, 100));
   $term = $mysqli->real_escape_string($term); 
   if($term=="") {
     echo "Enter Something to search";
     exit();
   }


   termcheck($term, $mysqli);             
   function termcheck($term, $mysqli){
     $qry="Select * from table1 where word ='$term' UNION Select * from table2 where word = '$term'";
     if($result = $mysqli->query($qry)){
        //echo "inside sql table1";
       $num_rows = $result->num_rows;
         if($num_rows > 0) {
            //echo "inside table1";
           while($row = $result->fetch_assoc())
             {
               echo "Stem : ".$row['term']."<br>";
             }
             exit();
         }
      }else {
           $qry1="Select * from table3";
           $result = $mysqli->query($qry1);
           $num_rows = $result->num_rows;
           if($num_rows > 0) {
             while($row = $result->fetch_assoc()){
                echo "inside while";
               if($table4=mb_strrichr($term,$row['prefix'])){
                echo "inside if";
                  $sterm=str_replace($row['prefix'],'',$term);
                  $postfix=$row['prefix'];
                echo "inside : ".$sterm;
                }
             }
           }else{echo "Error : Table3 doesn't exist";}
         }
         if(!empty($sterm)){
           $qry3="Select * from table4";
           $result3 = $mysqli->query($qry3);
           $num_rows = $result3->num_rows;
           if($num_rows > 0) {
             while($row = $result3->fetch_assoc()){
               if(mb_strrichr($sterm,$row['postfix'])){
                  $ssterm=str_replace($row['postfix'],'',$sterm);
                  $prefix=$row['postfix'];
                  echo "prefix : ".$prefix;
                  echo "<br>";
                  echo "postfix : ".$postfix;
                  echo "<br>";
                  echo "sterm : ".$ssterm;
                } 
             }exit();
           }else{echo "Error : Table3 doesn't exist";}
         }else{
           $qry3="Select * from table4";
           $result3 = $mysqli->query($qry3);
           $num_rows = $result3->num_rows;
           if($num_rows > 0) {
             while($row = $result3->fetch_assoc()){
               if(mb_strrichr($term,$row['postfix'])){
                  $prefix=$row['postfix'];
                  $sterm=str_replace( $row['postfix'],'',$term);
                  echo "prefix : ".$prefix;
                  echo "<br>";
                  echo "sterm : ".$sterm;
               }
             }exit();
           } else{echo "Error : Table3 doesn't exist";}          
         }
       }

  ?>