Переписать грамотно запрос

Фанат

oncle terrible
Команда форума
чтобы группировать имя документа с его id, надо их склеить сначала, используя concat()

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

Mick_20

Новичок
чтобы группировать имя документа с его id, надо их склеить сначала, используя concat()

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

Фанат

oncle terrible
Команда форума
что значит "не всё выводит"?
Значит ты не всё запрашиваешь.
или не всё выводишь, что запрос возвращает
 

Mick_20

Новичок
Информация к моему первому посту:

В подцикле используется $id который прокручивается в цикле.
Подцикл берет первый $id и выводит нужную инфу а для следующего $id ничего не выводит.
 

Фанат

oncle terrible
Команда форума
ещё одна жертва циклов. одному только последнее возвращает, другому только первое.

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

Mick_20

Новичок
//достаем id и и др инфу участников
PHP:
$query = $db->getQuery(true);
		$query->select('member, supervisor, region, id');
		$query->from('#__soin_action_members');
		$query->where("content_id = {$content_id}");
		$db->setQuery($query) or die("запрос1 не сработал"); 
		$data = $db->loadObjectList();
		
		foreach ($data as $var) 
		{
		$members[] = $var->member;
		$supervisors[] = $var->supervisor;
		$regions[] = $var->region;
		$ids[] = $var->id;
		}
		
		for ($i=0; $i < count($ids); $i++) 
		{
		$member = $members[$i];
		$supervisor = $supervisors[$i];
		$region = $regions[$i];
		$id = $ids[$i];

далее пошел подцикл

//достаем имена документов участников
		$query = $db->getQuery(true);
		$query->select('name');
		$query->from('#__soin_action_docs');
		$query->where("member_id = {$id}"); //тот который мы крутим в первом цикле
		$db->setQuery($query) or die("запрос1 не сработал"); 
		$data = $db->loadObjectList();
		
		foreach ($data as $var) 
		{
		$names[] = $var->name;
		}
		
		for ($i=0; $i < count($names); $i++) 
		{
		$docs_name .= $names[$i];
                 }
echo $member;

		echo $supervisor ;
		echo $region;
		echo "{$id} :  {$docs_name};
 

Фанат

oncle terrible
Команда форума
какой ужас
PHP:
$query = $db->getQuery(true);
$query->select('member, supervisor, region, id');
$query->from('#__soin_action_members');
$query->where("content_id = {$content_id}");
$db->setQuery($query) or die("запрос1 не сработал");
вот это - это что вообще? какой смысл во всех этих 5 строчках?
чем это лучше одной
PHP:
$result = mysql_query("select member, supervisor, region, id from #__soin_action_members where content_id = {$content_id}"") or die("запрос1 не сработал");
?
 

Фанат

oncle terrible
Команда форума
из твоего кода я не вижу, чтобы в нем не выводились документы для второго оборота цикла.
наоборот - во втором должны выводиться документы как для первого, так и для второго. и далее по нарастающей.
 

Фанат

oncle terrible
Команда форума
а, дошло.
из-за идиотского цикла внутри, перезаписывается $i

да, с хитрыми запросами тебе ещё сильно рано.
если даже такое простое действие, как
PHP:
$docs_name = "";
foreach ($data as $var) 
{
    $docs_name .= $var->name;
}
ты делаешь копипастой за два цикла.
 

Фанат

oncle terrible
Команда форума
Кстати, для чего и на первом уровне два цикла - обратно загадка.
зачем нужны все эти массивы и для чего понадобилось перекладывать в них переменные
Почему нельзя было сразу в первом цикле сделать
PHP:
foreach ($data as $var) 
{
        $member = $var->member;
и так далее
 

Mick_20

Новичок
Пять строчек это как в joomla пишут.
Сделал как вы говорили (в подцикле без FOR) и сразу все заработало ))))))) вы не Фанат вы Гений ))
 
Сверху