2011-08-15 3 views
0

검색 양식을 사용하여 검색 쿼리를 수행 한 후에 결과가 없습니다라는 메시지가 표시되는 데 어려움을 겪고 있습니다. 아래 내 코드. 누군가 도움을 청할 수 있습니까?검색하기 전에 검색 결과가없고 검색어가 명확하지 않은 Mysql 검색 메시지?

예를 들어 3 페이지에있는 경우 검색을 제출 한 다음 내 양식으로 검색을 수행하면 쿼리 문자열을 지울 수 있기를 원합니다. m 이미 3 페이지에 설정되어 있기 때문입니다. 희망은 그 말이 맞습니다.

function supportquery($viewstate) { 

$display = 6;// number of results per page 

     if (isset($_GET['np'])) { 
    $num_pages = $_GET['np']; 
} else { 

    $where = "1"; // default 
    switch ($viewstate) { 
     case "open": $where = "status='Open'"; break; 
     case "pending": $where = "status LIKE 'Pending%'"; break; 
     case "closed": $where = "status='Closed'"; break; 
    } 

    $query = "SELECT ticket_number, first_name, surname, email, product, retailer, DATE_FORMAT(dop, '%d %M %Y') AS dop, 
     message, address, DATE_FORMAT(created, '%d %M %Y %r') AS created, status FROM support_dev WHERE $where ORDER BY ticket_number DESC"; 
     $search = "%" . $_POST["search"] . "%"; 
    if ($_POST["search"]) { $query = "SELECT ticket_number, first_name, surname, email, product, retailer, DATE_FORMAT(dop, '%d %M %Y') AS dop, message, address, DATE_FORMAT(created, '%d %M %Y %r') AS created, status FROM support_dev WHERE ticket_number LIKE '$search' OR email LIKE '$search' ORDER BY ticket_number DESC"; 

} 

    $query_result = mysql_query ($query); 
    $num_records = @mysql_num_rows ($query_result); 
    if ($num_records > $display) { 
     $num_pages = ceil ($num_records/$display); 
    } else { 
     $num_pages = 1; 
    } 
} 



if (isset($_GET['startoftable'])) { 
    $start = $_GET['startoftable']; 
} else { 
    $start = 0;// start of results from row 0 in table 

} 

    $query = "SELECT ticket_number, first_name, surname, email, product, retailer, DATE_FORMAT(dop, '%d %M %Y') AS dop, message, address, DATE_FORMAT(created, '%d %M %Y %r') AS created, status FROM support_dev ORDER BY ticket_number DESC LIMIT $start, $display"; 
    if ($viewstate=='open') { 

     $query = "SELECT ticket_number, first_name, surname, email, product, retailer, DATE_FORMAT(dop, '%d %M %Y') AS dop, message, address, DATE_FORMAT(created, '%d %M %Y %r') AS created, status FROM support_dev WHERE status='Open'ORDER BY ticket_number DESC LIMIT $start, $display"; 
     } 
      elseif ($viewstate=='pending') { 
     $query = "SELECT ticket_number, first_name, surname, email, product, retailer, DATE_FORMAT(dop, '%d %M %Y') AS dop, message, address, DATE_FORMAT(created, '%d %M %Y %r') AS created, status FROM support_dev WHERE status LIKE 'Pending%' ORDER BY ticket_number DESC LIMIT $start, $display"; 
     } 
     elseif ($viewstate=='closed') { 
     $query = "SELECT ticket_number, first_name, surname, email, product, retailer, DATE_FORMAT(dop, '%d %M %Y') AS dop, message, address, DATE_FORMAT(created, '%d %M %Y %r') AS created, status FROM support_dev WHERE status='Closed' ORDER BY ticket_number DESC LIMIT $start, $display";} 


    if ($_POST["search"]) { 
     $query = "SELECT ticket_number, first_name, surname, email, product, retailer, DATE_FORMAT(dop, '%d %M %Y') AS dop, message, address, DATE_FORMAT(created, '%d %M %Y %r') AS created, status FROM support_dev WHERE ticket_number LIKE '$search' OR email LIKE '$search' ORDER BY ticket_number DESC LIMIT $start, $display"; 


     } 

     $result = @mysql_query ($query); 
     $num = mysql_num_rows ($result); 

if ($num > 0) { 

    if ($num_pages > 1) { 
     echo '<div class="pagination"><p>'; 
     $current_page = ($start/$display) + 1; 

     if ($current_page != 1) { 
      echo '<a href="?page_id=1072&amp;startoftable=' . (0) . '&np=' . $num_pages . '&viewstate=' . $viewstate .'">First</a> '; 
      echo '<a href="?page_id=1072&amp;startoftable=' . ($start - $display) . '&np=' . $num_pages . '&viewstate=' . $viewstate . '"><</a> '; 
     } 

    // range of num links to show 
$range = 4; 

// loop to show links to range of pages around current page 
for ($i = ($current_page - $range); $i < (($current_page + $range) + 1); $i++) { 
    // if it's a valid page number... 
    if (($i > 0) && ($i <= $num_pages)) { 
     // if we're on current page... 
     if ($i == $current_page) { 
     // 'highlight' it but don't make a link 
     echo " [<b>$i</b>] "; 
     // if not current page... 
     } else { 
     // make it a link 
    echo ' <a href="?page_id=1072&amp;startoftable=' . (($display * ($i - 1))) . '&np=' . $num_pages . '&viewstate=' . $viewstate .'">' .$i .'</a> '; 

     }}} 

     if ($current_page != $num_pages) { 

      echo '<a href="?page_id=1072&amp;startoftable=' . ($start + $display) . '&np=' . $num_pages . '&viewstate=' . $viewstate .'">></a> '; 
      echo '<a href="?page_id=1072&amp;startoftable=' . ($display * $num_pages-$display) . '&np=' . $num_pages . '&viewstate=' . $viewstate .'">Last</a> '; 
     } 

     echo '</p></div> '; 

    } 

     if ($result = mysql_query ($query)) { 
     echo ' 
    <div id="supviewwrapperheader"> 
    <div id="supviewticket"><p>Ticket</p></div> 
    <div id="supviewfirst"><p>First Name</p></div> 
    <div id="supviewlast"><p>Last Name</p></div> 
    <div id="supviewemail"><p>Email</p></div> 
    <div id="supviewproduct"><p>Product</p></div> 
    <div id="supviewretailer"><p>Retailer</p></div> 
    <div id="supviewdop"><p>D.O.P.</p></div> 
    <div id="supviewmessage"><p>Message</p></div> 
    <div id="supviewaddress"><p>Address</p></div> 
    <div id="supviewcreated"><p>Date created</p></div> 
    <div id="supviewstatus"><p>Status</p></div> 
    <div id="supviewbuttons"><p></p></div> 
    </div> 
    '; 

    while ($row = mysql_fetch_array($result, MYSQL_NUM)) { 
     echo " 
     <div id=\"supviewwrapper\" class=\"".($row[10])."\"> 
     <div id=\"supviewticket\"><p><a name=\"a".$row[0]."\"></a>$row[0]</p></div> 
     <div id=\"supviewfirst\"><p>$row[1]</p></div> 
     <div id=\"supviewlast\"><p>$row[2]</p></div> 
     <div id=\"supviewemail\"><p>$row[3]</p></div> 
     <div id=\"supviewproduct\"><p>$row[4]</p></div> 
     <div id=\"supviewretailer\"><p>$row[5]</p></div> 
     <div id=\"supviewdop\"><p>$row[6]</p></div> 
     <div id=\"supviewmessage\"><p>$row[7]</p></div> 
     <div id=\"supviewaddress\"><p>$row[8]</p></div> 
     <div id=\"supviewcreated\"><p>$row[9]</p></div> 
     <div id=\"supviewstatus\"><p>$row[10]</p></div> 
     <div id=\"supviewbuttons\"><p><form method=\"post\" action=\"".htmlentities($_SERVER['REQUEST_URL'])."#a".$row[0]."\"><input type=\"hidden\" name=\"close_row\" value=\"".($row[0])."\" /><input type=\"hidden\" name=\"viewstate\" value=\"".$viewstate."\" /><INPUT TYPE=\"submit\" name=\"open\" VALUE=\"\" class=\"submit_open\"><br /><INPUT TYPE=\"submit\" name=\"pending\" VALUE=\"\" class=\"submit_pending\"><br /><INPUT TYPE=\"submit\" name=\"pending_ami\" VALUE=\"\" class=\"submit_pendingami\"><br /><INPUT TYPE=\"submit\" name=\"pending_arp\" VALUE=\"\" class=\"submit_pendingarp\"><br /><INPUT TYPE=\"submit\" name=\"close\" VALUE=\"\" class=\"submit_closed\"></form></p></div></div>"; 



    } 


    } 

    mysql_free_result ($result); 

    } 

답변

1

문자열 내의 문자열과 일치 시키려면 LIKE "%{$search}%"을 사용해야합니다.

+0

안녕하세요. 팁을 주셔서 감사 드리며 여전히 다른 문제를 해결하지 못합니다. – Lee