Поиск базы данных в PHP

Я хотел иметь возможность искать в базе данных в любой таблице, будь то имя, фамилия, имя и т.д. … проблема в том, что я всегда получаю от запроса пустой результат

Это моя попытка

Я использую HTML-форму для пользователя для поиска с нажатием нужной нулевой точки.

<table border='0' align='right'> <tr> <td > <select name='SEARCH' id='SEARCH'> <option value='ID_NO' selected='selected'>ID Number</option> <option value='FNAME'>First Name</option> <option value='LNAME' >Last Name</option> <option value='MNAME'>Middle Name</option> <option value='DATE'>Birthday</option> <option value='SEX'>SEX</option> <option value='AGE'>Age</option> <option value='STATUS'>Status</option> <option value='TEL_NO'>Landline Number</option> <option value='ADDRESS'>Address</option> <option value='OCCUPATION'>Occupation</option> <option value='REFERRED_BY '>Referrals</option> <option value='itResult'>Result</option> </select> </td> <td rowspan =2><input name='SUBMIT' type='SUBMIT' id='SUBMIT' value='Search!'></td> </tr> <tr> <td><input name='INPUT' type='text' id='INPUT'></td> </tr> </table> 

Затем введенная данность проходит здесь и проверяет базу данных

 <?php print "<center><H2>Search User</H2></center>"; $ID_CHECK = clean($_POST['chck']); $SEARCH = clean($_POST['SEARCH']); $INPUT = clean($_POST['INPUT']); $result = mysql_query("SELECT * FROM user_info WHERE '$SEARCH' = '$INPUT'" ) or die('Error, query failed'); if(!mysql_num_rows($result)) { print "<BR>There is no $INPUT in the Database <BR><A HREF ='SearchUser.php'>Go Back</A>"; exit(); } else { $row_array = mysql_fetch_array($result, MYSQL_ASSOC); ?> 

Проблема в том, что я всегда получаю пустой запрос и что я думаю, что использование этого неверно

 $result = mysql_query("SELECT * FROM user_info WHERE '$SEARCH' = '$INPUT'" ) or die('Error, query failed'); 

есть ли другой способ? Возможно, JavaScript?

Моя чистая функция делает это .. она очищает ценность данных, которые я думаю

 <?php function clean($str) { $str = @trim($str); if(get_magic_quotes_gpc()) { $str = stripslashes($str); } return mysql_real_escape_string($str); } ?> 

Проблема в том, что в вашем запросе вы сравниваете две строки. Это должно работать:

 $result = mysql_query("SELECT * FROM user_info WHERE $SEARCH = '".$INPUT."'") or die('Error, query failed'); 

Я удалил одиночные котировки из $ SEARCH.

Прежде всего, что делает ваша clean функция? Если он цитирует ваш контент, вы можете получить дополнительные кавычки с помощью «$ SEARCH». Во-вторых, вы можете взглянуть на сравнение LIKE MySQL, если хотите провести более тщательный поиск.

Попробуйте использовать конкатенацию:

 $result = mysqli_query($con, "SELECT * FROM userinfo WHERE concat(//add the database rows here) LIKE '%$something%' ");