php и mysql фильтруют и ищут [дубликаты]

0

Я пытаюсь создать фильтр и функции поиска, используя различные критерии/параметры фильтрации. Но я получаю эти ошибки: Предупреждение: implode(): Пропущенные недопустимые аргументы И Предупреждение: mysqli_fetch_assoc() ожидает, что параметр 1 будет mysqli_result. Во-первых, я попытался очистить рекламный фильтр от входных данных, а затем создал фильтры для более упорядоченного поиска. Поэтому, когда применяется один или несколько фильтров, результаты запросов намного точнее.

    <?php
    session_start();
    include_once('server.php');

    $error = false;
    $int = 100;


   if(isset($_POST['btn-login'])){
   $firstname = $_POST['firstname'];
   $firstname = trim($firstname);
   $firstname = trim($_POST['firstname']);
   $firstname = htmlspecialchars(strip_tags($firstname));

   $lastname = $_POST['lastname'];
   $lastname = trim($lastname);
   $lastname = trim($_POST['lastname']);
   $lastname = htmlspecialchars(strip_tags($lastname));

    $phonenumber = $_POST['phonenumber'];
    $phonenumber = trim($phonenumber);
    $phonenumber = trim($_POST['phonenumber']);
    $phonenumber = htmlspecialchars(strip_tags($phonenumber));



    if(empty($firstname)){
    $error = true;
    $errorFirstname = '<h6>Please input first name or last name.</h6>';
      }

    if(empty($phonenumber)){
    $error = true;
    $errorPhonenumber = '<h6>Please input phone number.</h6>';
     }

     $firstname = $_POST['firstname'];
     if(!preg_match("/^[a-zA-Z]*$/",$firstname)){
     $error = true;
     $errorFirstname = '<h6>Please input letters only.</h6>';
    }

    $lastname = $_POST['lastname'];
    if(!preg_match("/^[a-zA-Z]*$/",$lastname)){
    $error = true;
    $errorLastname = '<h6>Please input letters only.</h6>';
     }



    /*if($firstname = $int) {
    $error = true;
    $errorFirstname = 'Invalid entry! Letters only.';
     }*/

      /*  if (!filter_var($int, FILTER_VALIDATE_INT) === false) {
     echo("Integer is valid");    //work in progress
         } else {
      echo("Integer is not valid");
        }  */

       if(is_numeric($phonenumber)){
        $msg = 'This is a valid number.';
       }
       else{
       $error = true;
       $errorPhonenumber = '<h6>Invalid entry, numbers only.<h6>';
       }



      /*  if($lastname = $int) {
       $error = true;
       $errorLastname = 'Invalid entry! Letters only.';
     }  */


      if(empty($phonenumber)){
      $error = true;
      $errorPhonenumber = '<h6>Please Input Phone Number.</h6>';        
      }elseif(strlen($phonenumber)< 9){
      $error = true;
      $errorPhonenumber = '<h6> number must be at least 9 chars.';
      } 


     if(empty($phonenumber)){
     $error = true;
     $errorPhonenumber = '<h6>Please Input Phone Number.</h6>';     
     }elseif(strlen($phonenumber)> 11){
     $error = true;
     $errorPhonenumber = 'number must not exceed 11 characters.';
      } 





         if(!$error) {
         //search data if no errors
         $sql = "select * from subscribers";
         $conditions = array();

         if(!empty($firstname)){
         $conditions = "name='$firstname'";
         }

        if(!empty($lastname)){
        $conditions = "lastname='$lastname'";
        }

        if(!empty($sex)){
        $conditions = "gender='$gender'";
        }


        if(count($conditions)>0){
        $sql.="WHERE" .implode('AND',$conditions);
        }


       $result = mysqli_query($conn, $sql);


       while ($subscriber=mysqli_fetch_assoc($result)){

       $msg1 = $subscriber['firstname'];
       $msg2 = $subscriber['lastname'];
       $msg3 = $subscriber['phonenumber'];

       }        

       }
       /*(mysqli_query($conn, $sql)){
         }else{
         echo 'Error '.mysqli_error($conn);
       }    */

       }

       ?>
  • 0
    да, проблема в том, что я получаю ошибки .. см. выше.
Теги:

1 ответ

0

Исправьте это:

 if(!$error) {
     //search data if no errors
     $sql = "select * from subscribers";
     $conditions = array();

     if(!empty($firstname)){
     $conditions = "name='".$firstname."'";
     }

    if(!empty($lastname)){
    $conditions = "lastname='".$lastname."'";
    }

    if(!empty($sex)){
    $conditions = "gender='".$gender."'";
    }}
  • 0
    привет ... я не совсем понимаю тебя В чем проблема с этим? Спасибо
  • 0
    Замените в своем коде ту часть, которую я разместил в комментарии, она будет работать на вас.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню