简体   繁体   中英

syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting '-' or identifier (T_STRING) its coming during using 'like clause (%) in query

Getting Error while running this code , and this is related to when search key is coming in search filter its making pagination correct but after clicking second page its lost the content of search filter and start showing normal index pagination , May be this error is generation when i am using like clause in query-

if(isset($_POST['submitSearch'])){
    $_session['$search']=$_POST['search'];  
    $all_post_query= "select * from files where recieved_by like '% $_session["$search"]%' or processed_by like  '% $_session["$search"]%' or   purpose like  '% $_session["$search"]%' or file_name like  '% $_session["$search"]%' order by date desc";
    $con=mysqli_connect("localhost","root","","fileprogramsysteeem");
    $all_post_run=mysqli_query($con,$all_post_query);
    $all_post=mysqli_num_rows( $all_post_run);
    $total_page=ceil($all_post/$total_num_page);
    $page_start_from=($page_id-1)*$total_num_page;
}

Someone help me please , i am new in php

check code :

if(isset($_POST['submitSearch']))
{
    $_session['$search'] = $_POST['search'];  
    $all_post_query= "select * from files where recieved_by like '%$_SESSION[$search]%' or processed_by like  '% $_SESSION[$search]%' or   purpose like  '%$_SESSION[$search]%' or file_name like  '%$_SESSION[$search]%' order by date desc";
    $con=mysqli_connect("localhost","root","","fileprogramsysteeem");
    $all_post_run=mysqli_query($con,$all_post_query);
    $all_post=mysqli_num_rows( $all_post_run);
    $total_page=ceil($all_post/$total_num_page);
    $page_start_from=($page_id-1)*$total_num_page;
 }

Most likely your problem is in the pagination itself. Your code takes $_POST parameter as search query, but when you click on pagination link, you create a new GET request and the search parameter is lost. You are saving the search parameter in session , so you need to alter your code:

if(isset($_POST['submitSearch']) || $_SESSION['search'])
            {
                if($_POST['submitSearch']){
                    $_SESSION['search']=$_POST['search'];  
                }

                $all_post_query= "select * from files where recieved_by like '%". $_SESSION["search"]. "%' or processed_by like  '%".$_SESSION["search"]."%' or   purpose like  '%".$_SESSION["search"]."%' or file_name like  '%".$_SESSION["search"]."%' order by date desc";
                $con=mysqli_connect("localhost","root","","fileprogramsysteeem");
                $all_post_run=mysqli_query($con,$all_post_query);
                $all_post=mysqli_num_rows( $all_post_run);
                $total_page=ceil($all_post/$total_num_page);
                $page_start_from=($page_id-1)*$total_num_page;

             }

Also i've changed the way you create your session variable:

$_session["$search"] -> $_SESSION["search"]

remove white space after %

%$_SESSION["$search"]% //remove wite space in your query and write $_session to $_SESSION so your query like below

"select * from files where recieved_by like '%$_SESSION["$search"]%' or processed_by like  '% $_session["$search"]%' or  purpose like  '%$_SESSION["$search"]%' or file_name like  '%$_SESSION["$search"]%' order by date desc";

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM