Elena0394
@Elena0394

Есть ли разница SELECT * FROM `bd` WHERE `id` = '$id' и SELECT * FROM `bd` с поиском через цикл?

Я не понимаю, как формировать запрос для поиска товара.
Если вот так делать не безопасно
"SELECT * FROM `bd` WHERE `id` = '$id'"
то получается надо брать все товары и проходить циклом и сравнивать. Правильно?
$m_f_all = mysqli_fetch_all(mysqli_query($connect, "SELECT * FROM `bd`"));
  $m_q = mysqli_query($connect, "SELECT * FROM `bd`");

  foreach ($m_f_all as $item) {
    $m_f_assoc = mysqli_fetch_assoc($m_q);

    if ($m_f_assoc['id'] === $id) {
      break;
    }
  }

Больше похоже на трешь какой-то
  • Вопрос задан
  • 108 просмотров
Пригласить эксперта
Ответы на вопрос 2
BasiC2k
@BasiC2k
.NET developer (open to job offers)
Брать из таблицы все данные, чтобы найти нужное значение циклом - это плохой подход.
А если записей будет миллион, представляете, сколько времени займёт передача данных из БД и переборка их в цикле. Я уже не говорю про потребеление памяти.
Посмотрите примеры подготавливаемых запросов например здесь
Ответ написан
Комментировать
HemulGM
@HemulGM
Delphi Developer, сис. админ
Да, есть разница. Первый запрос будет быстрее и эффективнее, так как он использует индексирование для быстрого поиска записи по идентификатору. Второй запрос будет медленнее, так как он будет проходить циклом по всем записям в базе данных, чтобы найти нужную запись.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы