Данные в моей базе данных имеют список имен, и каждое имя имеет идентификатор. Я пытаюсь сделать простой поиск, чтобы вытащить идентификатор лица, когда имя совпадает с искомым именем.MYSQL SELECT запрос с WHERE не работает
if(isset($_POST['submit'])&& empty($_POST['personName'])==FALSE){
$name=$_POST['personName'];
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
echo "No numeric characters allowed";
}else{
include('connect.php');
if($con==false){
}else if ($con==true){
$cleanName=mysqli_real_escape_string($con,$name);
$getPersonID="SELECT person_ID FROM person WHERE Name='$cleanName'";
$resultGetPersonID=mysqli_query($con,$getPersonID)or die(mysqli_error($con));
if(mysqli_num_rows($resultGetPersonID)>0){
echo "query sucessrful";
}else{
echo "query failed";
}
}
}
}else{
echo "Data entered wrong";
}
HTML
<div class="searchBox">
<form action="getPerson.php" method="POST">
Name: <input id='personName' type="text" name="personName" > <input type="submit" value="Search" id="search" name="submit">
</form>
</div>
Нам нужна структура таблицы для того, чтобы помочь. Кроме того, где $ clearName инициализировано? –
Попробуй и привыкнуть к вещам вроде '$ x == false'. Большинство методов предназначены для возврата правдивых значений, поэтому вы можете делать 'if ($ con)' без всякой суеты. – tadman
** ПРЕДУПРЕЖДЕНИЕ **: при использовании 'mysqli' вы должны использовать [параметризованные запросы] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) и [' bind_param'] (http://php.net/manual/en/mysqli-stmt.bind-param.php), чтобы добавить данные пользователя в ваш запрос. ** НЕ ПРИНИМАЙТЕ ** использовать ручное экранирование и интерполяцию строк или конкатенацию, чтобы выполнить это, потому что вы создадите серьезные [SQL-инъекции ошибок] (http://bobby-tables.com/), если вы когда-нибудь забудете что-то избежать. – tadman