PHP

Как проще, лучше и быстрее из бд получить данные и поместить сразу в переменную или поместить в цикл и оттуда извлекать

вот я извлёк данные из бд нужно для работы извлечь сначала первую строку для работы и если не подойдёт тогда вторую и последующие
ps ещё вопрос в догонку можно или нет извлечь несколько разных строк в переменные и потом в определённой последовательности их поставить если результат не совпадёт то в эти же переменные извлечь другие данные (всё это будет происходить не выводя на страницу)
Sherhan Karibaev
Sherhan Karibaev
169
Если ты извлекаешь не миллионы записей, то в случае использования единственного SQL-запроса разницы в скорости работы этих вариантов ты не заметишь.

Но 100 запросов SELECT, возвращающих по одной строке, будут заметно медленнее одного SELECT, возвращающего 100 строк.
АС
Александр Скрыпник
67 216
Лучший ответ
Sherhan Karibaev Всего будет 256 строк и с каждым нужно Бут поработать отдельно
Наиболее эффективно и быстро будет извлечь все нужные данные из базы данных в один запрос с помощью оператора SELECT с условиями, которые вы описали. Затем вы можете поместить эти данные в массив или объект, в зависимости от ваших потребностей, и работать с этими данными в любом порядке, который вам нужен.

Например, если вы хотите сначала проверить первую строку и затем перейти ко второй строке, вы можете использовать цикл foreach и перебирать элементы массива по порядку.

Что касается вашего дополнительного вопроса, да, вы можете извлекать несколько разных строк в переменные и затем использовать их в любом порядке, который вам нужен. Например, вы можете извлечь первые три строки и поместить их в переменные $a, $b и $c, затем проверить их значения и, если они не подходят, извлечь следующие три строки и поместить их в эти же переменные.
SY
Serkan Yakut
59 846
Извлечение данных из БД и помещение их в переменные зависит от конкретной задачи и используемой БД. Однако, в целом, для ускорения работы рекомендуется извлекать все необходимые данные сразу и сохранять их в переменные, чтобы избежать повторных обращений к БД во время работы цикла.

Если вы хотите извлечь первую строку и затем, если она не подходит, извлечь вторую и последующие строки, вы можете использовать конструкцию цикла для перебора всех строк, пока не будет найдена подходящая.

Что касается второго вопроса, то вы можете сохранять различные строки в различные переменные и затем использовать их в определенной последовательности, если результат не совпадает. Однако, убедитесь, что вы не забываете очищать переменные перед их повторным использованием, чтобы избежать ошибок.

Ниже приведен пример использования PDO для извлечения данных из БД и сохранения их в переменные:
 // создание подключения к БД 
$dsn = 'mysql:host=localhost;dbname=test';
$username = 'username';
$password = 'password';

try {
$pdo = new PDO($dsn, $username, $password);
} catch (PDOException $e) {
echo 'Подключение не удалось: ' . $e->getMessage();
}

// запрос на извлечение данных
$stmt = $pdo->query('SELECT * FROM users');

// извлечение первой строки
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$variable1 = $row['column1'];
$variable2 = $row['column2'];

// перебор остальных строк для поиска подходящей
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
if ($row['column1'] == 'some_value') {
$variable1 = $row['column1'];
$variable2 = $row['column2'];
break;
}
}

// очистка переменных перед повторным использованием
unset($variable1);
unset($variable2);
Обратите внимание, что в этом примере данные извлекаются с помощью метода fetch, который извлекает одну строку за раз. Если вы хотите извлечь все строки сразу, вы можете использовать метод fetchAll.