Пошук у базі PHP або як я залишився без смачного бутерброда!

35

Від автора: добре тренований пес завжди візьме слід! Але навіть він не допоможе знайти потрібну інформацію в MySQL. Сьогодні ми розглянемо, як відбувається пошук базі PHP. І як у цій справі обійтися без одної людини.

Як шукати?

В одному з минулих уроків ми розглядали висновок даних в MySQL. Я розповів вам, що для цього використовуються запити SQL. Точніше, тільки одна команда – SELECT. Але в тому раз я дещо про що промовчав: її можна використовувати не тільки для вибірки даних та сортування, але і для пошуку.

Щоб знайти конкретну рядок, що відповідає заданій умові, застосовується оператор where. Для демонстрації всіх прикладів пропоную перейти в phpMyAdmin.

Припустимо, що потрібно здійснити з допомогою PHP пошук у базі MySQL. Нам треба знайти рядок, в якій значення стовпця Name одно Aruba. Щоб «відсіяти» цей рядок з усієї таблиці, слід скласти правильний запит.

Згадуємо все вищесказане і беремося за справу. Спочатку розбираємося з умовами, яким повинна відповідати знайдений рядок. І зі стовпцями, значення яких повинен повернути запит.

Сказано, що в шуканої рядку значення стовпця Name повинно бути одно вказаною. Це умова ми пропишемо після оператора where. Всі дані цього рядка потрібно відображати? Припустимо, що так:

SELECT * FROM `country` where name=’Aruba’;

Поиск в базе PHP или как я остался без вкуснейшего бутерброда!

Ускладнюємо запити

Але не єдиним запитом живе MySQL :) . У цієї СУБД цих запитів, хоч завалися! Можна і «завалитися», якщо не знати, як їх правильно складати. Тоді PHP пошук у базі даних перетвориться в справжній кошмар. Але так як ми не любимо ужастики, то розглянемо ще кілька запитів для знаходження шуканого в БД MySQL.

Якщо потрібно вивести не всі значення рядка, тоді в команді прописуємо потрібні. Приклад:

SELECT name,population FROM `country` where name=’Aruba’;

Поиск в базе PHP или как я остался без вкуснейшего бутерброда!

Після SELECT ми вказали ті стовпці, значення яких нам цікаві. Але у двох попередніх прикладах пошук відбувається тільки за строковим значенням. А в БД можуть зберігатися і інші типи даних. Наприклад, числові:

SELECT name, population FROM `country` where population=103000;

Я трохи «перекроїв» попередній запит, задавши в якості умови числового значення стовпця. Хоча обидва запиту повернуть один і той же результат. Доказ:

Поиск в базе PHP или как я остался без вкуснейшего бутерброда!

Крім цього можна розширити рамки сортування, і вивести рядки таблиці, в яких числове значення менше або більше заданого. Наприклад, виведемо країни, де «популяція» більше 103000:

SELECT name, population FROM `country` where population>103000;

Або більше:

SELECT name, population FROM `country` where population<103000;

Але в обох випадках ми втрачаємо шуканий рядок – рідну Aruba :) . Щоб включити її в результат вибірки, слід використовувати інший оператор порівняння. Більше або дорівнює:

SELECT name, population FROM `country` where population>=103000;

Менше або дорівнює:

SELECT name,population FROM `country` where population<=103000;

Завдяки цим оператором рідна Aruba нікуди з вибірки не поділася:

Поиск в базе PHP или как я остался без вкуснейшего бутерброда!

Поки що все. Тепер я впевнений, що ваш пошук по базі даних MySQL і PHP увінчається успіхом, і для цього не потрібно досвідчена собака-шукач. Хоча мені, напевно, знадобиться… Поки писав матеріал, мій «домашній друг людини» поцупив зі столу смачний бутерброд з ковбасою і шинкою. Але діватися нікуди – з друзями потрібно ділитися :) .