Объединить массивы в цикле

usascha

Новичок
Объединить массивы в цикле

Всем здрасте. Нужно объединить заранее неизвестное количество массивов.
Делаю следующее, но пока безуспешно:

PHP:
for($w=0; $w < $sqls; $w++) {
	$sql[$w] = "SELECT q.*, a.*
			FROM answers a
			LEFT JOIN questions q ON a.a_question_num = q.qid
			WHERE q.q_active = 1
				AND (q_level_num <= ".$_POST['level_num']."
				AND q_group_num = ".$_POST['group_num'][$w].")
			ORDER BY q_level_num ASC, q_group_num ASC
			LIMIT 0,".(($_POST['razmer']/$sqls)*3);
	echo "<p>".nl2br($sql[$w])."</p>";

	$query[$w] = mysql_query($sql[$w]) or error();


	$query[$w] = mysql_query($sql[$w]) or error();
	$query_ar = mysql_fetch_array($query[$w]);
	var_dump($query_ar);
}
Сейчас опробую код на двух $sql[$w], в дальнейшем их может быть и 1 и 5.

Проблема заключается в том, что в таком коде каждый $query_ar содержит только по одному значению от $query[$w] - первому. При этом каждый из запросов делает выборку по 15 строк.

Чувствую, что надо $query_ar собирать как-то в цикле, но не понимаю как. Подскажите, пожалуйста.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
usascha

А что сразу все данные запросом выбрать нельзя?
WHERE IN

-~{}~ 20.12.07 12:13:

2. $query_ar[] =
3. Mysql UNION
 

Фанат

oncle terrible
Команда форума
usascha
научись сначала выводить результаты запроса в цикле, что ли
а не один только
 

usascha

Новичок
Mr_Max, к сожалению нельзя.
К тому же так я уже сделал, теперь мне надо улучшить мою программу и разделить запросы, чтобы вопросы и ответы к ним выбирались равным количеством. Когда-то я спрашивал здесь, можно ли в одном запросе выбрать вопросы (речь о тесте) чтобы из разных тематик выбиралось одинаковое количеством. Мне сказали делать разными запросами, вот и мучаюсь.

фанат, выводить в цикле я уже давно умею. Сейчас речь о том, чтобы объединить неизвестное заранее количество массивов. Какой функцией это можно сделать. array_merge предполагает, что количество массивов известно.
 

Фанат

oncle terrible
Команда форума
тебе не надо ничего объединять.
тебе НЕЧЕГО пока объединять - у тебя ни одного массива нету.

читай про массивы, и про то, как в них добавлять новые значения. http://php.net/types.array

потом сначала из ОДНОГО цикла получи массив из 15 массивов.
потом уже о других думай
 

usascha

Новичок
hammet, спасибо за напоминание. Это у меня пока проблема.

-~{}~ 20.12.07 17:07:

фанат, ссылку эту и вообще этот сайт я посещаю регулярно.
Но вот, что странно, нигде нет примера как создать массив. Всегда даются примеры, когда какой-либо массив есть.

Вот в моём случае, я не понимаю почему в массив складывается только первое значение выборки. Я полагал, что mysql_query отрабатывает весь запрос и в значении mysql_resource_id(x) лежит вся выборка. На которую только и остаётся, что натравить mysql_fetch_array...
 

Фанат

oncle terrible
Команда форума
"сайт" посещать не надо. надо читать СТРАНИЦУ.
ТУ которую я дал. как создать массив, там НАПИСАНО.

чтобы не гадать, как бабка, что отрабатывает mysql_query и на что надо натравливать mysql_fetch_array, надо читать документацию по этим функциям.
фанат, выводить в цикле я уже давно умею.
это твои слова?
и что ты нам на что натравливал? И какое у тебя в массив складывалось там значение выборки? АСЬ?!
 

usascha

Новичок
да, фанат, это мои слова и я могу сделать однократный вывод в цикле всего содержимого из массива - результат работы mysql_fetch_array.

В этом случае моих познаний не хватает.

Mr_Max, там, конечно, написано, что результат работы mysql_fetch_array есть некая область в памяти, но для простоты я это назвал "всей выборкой".

-~{}~ 27.12.07 00:30:

в общем додумался как сделать:

PHP:
	for($i=0; $i<mysql_num_rows($query[$w]); $i++) {
		$query_ar[$i] = mysql_fetch_assoc($query[$w]);
	}
но вопрос о том как объединить заранее неизвестное количество массивов остаётся. Подскажите, кто знает.
 

Фанат

oncle terrible
Команда форума
ты вот этот код видел? Из первого же ответа на твой вопрос.
2. $query_ar[] =
 

usascha

Новичок
да, видел, но я не понял как его применить, к сожалению.

-~{}~ 27.12.07 01:21:

можно сказать ткнул пальцем в небо и удачно:

$query_ar[] = mysql_fetch_assoc($query[$w]);
 
Сверху