2017-04-18 2 views
1

사용자가 사원 이름과 성을 입력 할 수있는 양식을 만들었습니다. 제출하는 사용자가 항목이 employees 테이블의 first_name 열과 같은 직원 데이터베이스에서 모든 항목을 선택해야합니다. 그렇게하면 페이지에 표시되지 않으므로 찾을 수없는 잘못된 것이 있어야합니다.사용자 입력을 기반으로 한 데이터베이스 결과 표시

 <!doctype html> 
<html lang="en"> 
<head> 
    <link href="employeeStyles.css" rel="stylesheet"> 
    <title>Employee Search</title> 
</head> 
<body> 
    <div id="employeeArea"> 
     <h1>Employee Search Results</h1> 
     <?php 
     $firstName = $_GET['firstName']; 
     $lastName = $_GET['lastName']; 
     $resultsNumber = $_GET['resultsNumber']; 


     @ $db = new mysqli('localhost','root','','employees'); 

     $firstName = $db->real_escape_string($firstName); 
     $lastName = $db->real_escape_string($lastName); 
     $resultsNumber = $db->real_escape_string($resultsNumber); 

     if (mysqli_connect_errno()){ 
      echo 'Error: Could not connect to the database. Please try again later. </body></html>'; 
      exit; 
     } 
     $query = "SELECT * FROM employees WHERE first_name LIKE .$firstName.'%'"; 
     $result = $db->query($query); 
     $numResults = $result->num_rows; 

     echo 'Number of results found '.$numResults; 

     for ($i=0; $i<$result; $i++){ 
      $row = $result->fetch_assoc(); 
      echo $row ['first_name']."<br>"; 
      echo $row ['last_name']."<br>"; 
      echo $row ['emp_no']."<br>"; 
      echo $row ['hire_date']."<br>"; 
      echo $row ['birth_date']."<br>"; 
      echo $row ['gender']."<br>"; 
     } 

     $db->close(); 
     ?> 
    </div> 
</body> 

+1

'LIKE $ firstName을 '%'가'구문 오류와'mysqli_error ($의 dB)이다'그것에 대해 말했을 것이다. –

답변

1

음, 문제는 쿼리에 낳는다.

쿼리에 전달하는 변수는 따옴표로 묶지 않습니다. 시도가 :..

$query = "SELECT * FROM employees WHERE first_name LIKE '" . $firstName . "%'"; 
+0

그 쿼리는 작동하지만 오류가 발생합니다. mysqli_result 클래스의 객체를 int로 변환 할 수 없습니다. 결과를 표시하는 for 루프와 관련이 있다고 생각합니다. –

+0

'for ($ i = 0; $ i < $ numResults; $ i ++) {'귀하의 루프. – Thoby

관련 문제