Мой запрос Currect работает, вот мой текущий подход:
//loop through the defined fields & build query
foreach($searchFields as $searchField){
// if the field is set and not empty
if(isset($_POST[$searchField]) && $_POST[$searchField] != '') {
// create a new condition while escaping the value inputed by the user (SQL Injection)
$searchConditions[] = "`$searchField` LIKE '%" . $_POST[$searchField] . "%'";
}
}
//build the query
//$getExperts_sql = "SELECT * FROM $tablename";
$getExperts_sql = "SELECT *, COUNT(*) as casecount FROM $tablename";
// if there are conditions defined
if(count($searchConditions) > 0) {
// append the conditions
$getExperts_sql .= " WHERE " . implode (' AND ', $searchConditions) ." GROUP BY first,last"; // you can change to 'OR', but I opt'd to apply the filters cumulative
}
Как уже упоминалось, это работает .. (как и должно быть) .. но мне нужна помощь, чтобы получить немного более детальный / конкретный.
в том виде, в каком оно есть .. он выбирает только разные / уникальные имена … (это то, что мне нужно) … но мне также нужно добавить другой фрагмент данных, чтобы он был «отличным» (если это имеет смысл)
В настоящее время … если у меня есть записи с дублирующимися именами … он возвращает только 1 … но если у них другое состояние … он не учитывает это.
пример структуры данных:
Джон Доу CA
Джон Доу CA
Джон Доу CA
Джейн Доу CA
Джейн Доу CA
Джон Доу Нью-Йорк
Джон Доу Нью-Йорк
Дженни Доу WI
Билли Боб П.А.
Билли Боб П.А.
Джон Доу, Вашингтон
Питер Пол FL
Питер Пол FL
Питер Пол FL
Питер Пол FL
в моем столе ..
Я хочу, чтобы он возвратил только 1 John Doe (для CA) … но также вернул John Doe NY (1 раз), а также John Doe WA (1 раз) … ну, он только там один раз … но Вы поняли 🙂
Прямо сейчас я верну Джона Доу только 1 раз … (должен взять первый, найденный в таблице, которую я считаю)
Где, как я ищу, чтобы получить «3» Джон ли вернулся …
Я думаю, я ищу другое имя & государство? вместе? … но не уверен, как я могу изменить свой текущий запрос, чтобы туда попасть.
Я не могу использовать DISTINCT только для имени / фамилии .. и я не могу просто использовать его для состояния ..
Если состояние находится в вашей таблице, это будет работать. Просто добавьте состояние к вашему Group By
заявление.
$getExperts_sql .= " WHERE " . implode (' AND ', $searchConditions) ." GROUP BY first,last, state"; // you can change to 'OR', but I opt'd to apply the filters cumulative
Других решений пока нет …