Я пытаюсь написать функцию для моей клиентской системы, которая может искать таблицу «клиентов» на основе одного (или нескольких) входов из формы поиска. Код размещен нижеПоиск таблицы MySQL на основе дополнительных входных данных формы
$lookupCust['userid'] = mysqli_real_escape_string($mysqli, $_POST['userid']);
$lookupCust['name'] = mysqli_real_escape_string($mysqli, $_POST['name']);
$lookupCust['phone'] = mysqli_real_escape_string($mysqli, $_POST['phone']);
$lookupCust['balance'] = mysqli_real_escape_string($mysqli, $_POST['balance']);
$lookupCust['credit'] = mysqli_real_escape_string($mysqli, $_POST['credit']);
$lookupCust['notes'] = mysqli_real_escape_string($mysqli, $_POST['notes']);
$query = "SELECT * FROM customers WHERE
userid = '" . $lookupCust['userid'] . "' OR
name = '" . $lookupCust['name'] . "' OR
phone = '" . $lookupCust['phone'] . "' OR
balance = '" . $lookupCust['balance'] . "' OR
credit = '" . $lookupCust['credit'] . "' OR
notes = '" . $lookupCust['notes'] . "'";
$lookupCust['result'] = '<table border="1"><tr><td>Username</td><td>Name</td><td>Phone</td><td>Balance</td><td>Credit</td><td>Notes</td></tr>';
while($row = mysqli_fetch_assoc($result))
$lookupCust['result'] .= "<tr><td>".$row['userid']."</td><td>".$row['name']."</td><td>".$row['phone']."</td><td>".$row['balance']."</td><td>".$row['credit']."</td><td>".$row['notes']."</td></tr>";
Проблема здесь в том, что независимо от того, что получает набрано, все клиенты будут перечислены из, в связи с запросом, имеющим пробелы (из полей, которые не заполнены). Может ли кто-нибудь написать пример о том, как искать только то, что представлено в запросе?
Рассмотрите возможность использования 'if (empty' и STOP их прямо у передних ворот. –
Если вам нравится вводить лишние данные, придерживайтесь этой техники, иначе я бы использовал' new mysqli() 'и Object Oriented. – PHPglue