Как обойти массив выведенный с помощью бд в foreach?

199
16 октября 2017, 00:05

Как обойти 50 столбцов (то есть массив из бд) и найти нужное значение в таблице (50 - ид |100 количество) 50|100? Можно пример кода?

Answer 1

Массив из БД остаётся массивом. Значит, обходите его так, как обходите обычный массив и ищете значения, как ищете в обычном массиве. Это же очевидно. XD

Answer 2

Вместо того, чтобы нагружать бд запросом на все данные, можно выполнить запрос выборкой, и Вам не нужен будет уже массив и бд вздохнёт спокойно. Например, мы хотим узнать, какие темы были созданы пользователем sveta (id=4). Для этого в SQL есть ключевое слово WHERE, синтаксис у такого запроса следующий: SELECT имя_столбца FROM имя_таблицы WHERE условие; SELECT * FROM topics WHERE id_author=4; (пример выборки из таблицы автора, id которого равно 4)

Answer 3

Как вариант можно получить первым запросом имена всех столбов. А вторым с помощью foteach и union и SELECT WHERE создать 100 метровый запрос вместо 50 запросов к бд и после форейча отправить запрс на получение данных

Answer 4
<?php
ini_set('display_errors', 1);
$db = new PDO("mysql:host=localhost;dbname=Имя_Базы", 'Имя_таблицы', 'Пароль');
$query = "SHOW COLUMNS FROM `Имя_таблицы`";
$colName = $db->query($query)->fetchAll(PDO::FETCH_COLUMN);//все имена столбов
$string = 'бла бла бла';
$res = array();
$query = "SELECT * FROM  `Имя_таблицы` WHERE ";
 $cn = count($colName);
foreach ($colName as $item) {
$query .= "`" . $item . "` =  '" . $string . "' ";
if (--$cn > 0)
    $query .= "OR ";
}
$res = $db->query($query)->fetchAll(PDO::FETCH_ASSOC);
echo '<pre>';
 print_r($res);
echo '</pre>';

Работает Проверил!!

READ ALSO
Неправильно отображается рейтинг в wordpress

Неправильно отображается рейтинг в wordpress

Сделал магазин на woocommerce, все хорошо работает но вместо звездочек в рейтинге отображаются буквы SПодозреваю, что это косяк темы, но не смог...

188
Как передать GET И POST запрос одновременно.?

Как передать GET И POST запрос одновременно.?

Как передать GET И POST запрос одновременно? Задача: отправить GET запрос по клику на ссылку (отправить 2 переменные) и также отправить массив длинной...

262
Remember me в Symfony 3.1.4

Remember me в Symfony 3.1.4

Друзья, коллеги приветствую!

254