2025-08-10 11:48:29 +03:00

2.9 KiB
Raw Permalink Blame History

Получение данных

Итак, в прошлой статье мы наполнили таблицу users данными. Теперь она имеет вид:

id user_name user_mail
1 Ivan ivan@example.com
2 Olga olga@example.com
3 Oleg oleg@mail.ru
4 Nikolay nikolay@example.com

Попробуем теперь получить строку, где имя пользователя - Oleg. Для этого воспользуемся методом GetRow:

$user = $db->GetRow('users', where: new ConditionBuilder()->WhereEquals('user_name', 'Oleg'), className: "\\App\\Models\\User");

echo $user->Id; // Выведет 3
echo $user->Email; // Выведет oleg@mail.ru

Давайте теперь получим пользователей, у которых почта на домене example.com. Для этого нам потребуется метод GetRows:

$users = $db->GetRows('users', where: new ConditionBuilder()->WhereLike('user_mail', '%example.com'), className: "\\App\\Models\\User");

// Выведет:
// Ivan
// Olga
// Nikolay
foreach ($users as $user)
    echo $user->Name;

Давайте теперь немного изменим предыдущую задачу. Пусть нам требуется только столбец user_name для всех пользователей. Для этого нам потребуется метод GetCol:

$users = $db->GetCol('users', 'user_name');

$users = implode(', ', $users);

// Выведет: Ivan, Olga, Oleg, Nikolay
echo $users;

Далее, представим, что вы пишете функцию получения id по user_name. С помощью метода GetValue мы это сделаем ниже:

function GetUserId (string $userName): int {
    // Задаём условие
    $condition = new ConditionBuilder()->WhereEquals('user_name', $userName);
    
    // Получаем
    $id = $db->GetValue('users', 'id', $condition);
    
    // Возвращаю 0, если ошибка и $id, если всё хорошо
    return $id == null ? 0 : $id; 
}

Итак, мы рассмотрели все возможные способы получения данных.

Предыдущий пункт | На главную | Следующий пункт