Как объединить результаты от 2х запросов?

D
На сайте с 20.09.2010
Offline
175
540

Подскажите как такое сделать:

Есть первый запрос:

$sql_1="select * from table1";

$res_1 = $mysqli->query($sql_1);

$total_res = $res_1;

$sql_2="select * from table2";

$res_2 = $mysqli->query($sql_2);

$total_res - как к тому что уже есть в этой переменной добавить набор $res_2 ??

danforth
На сайте с 18.12.2015
Offline
153
#1

$total_res = array_merge($total_res, $res_2);

Только вам вернется экземпляр класса mysqli_stmt.

Вам нужно добавить вызов метода


$result = $mysqli->query($query)->fetch_all(); // fetch_all
Junior Web Developer
D
На сайте с 20.09.2010
Offline
175
#2

Что-то я не совсем понял:

$total_res = array_merge($total_res, $res_2);

Как теперь вывести информацию в цикле? Раньше писал:

while($row=$total_res->fetch_array())

теперь не работает так..

---------- Добавлено 22.11.2016 в 18:18 ----------

тоесть все в куче сейчас так:

$sql_1="select * from table1";

$res_1 = $mysqli->query($sql_1);

$total_res = $res_1;

$sql_2="select * from table2";

$res_2 = $mysqli->query($sql_2);

$total_res = array_merge($total_res, $res_2);

while($row=$total_res->fetch_array()) - не работает вывод данных..

---------- Добавлено 22.11.2016 в 18:49 ----------

Сделал вывод типа переменных:

gettype ($res_1) - тип object

gettype ($res_2) - тип object

gettype ($total_res) - NULL

B
На сайте с 27.09.2011
Offline
38
#3

Вам же написали, query возвращает не массив, который можно смерджить, а mysqli_result. Чтобы получить массив надо вызвать fetch_all


$sql_1="select * from table1";
$res_1 = $mysqli->query($sql_1)->fetch_all(MYSQLI_BOTH);
$total_res = $res_1;

$sql_2="select * from table2";
$res_2 = $mysqli->query($sql_2)->fetch_all(MYSQLI_BOTH);

$total_res = array_merge($total_res, $res_2);

foreach ($total_res as $row) {
print_r($row);
}
S
На сайте с 25.11.2008
Offline
124
#4

Может через sql?


select field1,field2 from table1
union all
select field1,field2 from table2
Бесплатные виджеты для сайта (https://pfka.ru). Технический анализ сайта ( https://linkonavt.ru/services/sitetechnologies ).

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий