foreach придава резултат на другите и се получава замяна или

novakabg

Registered
Здравейте, имам следният проблем и не знам от къде се появява, имам замяна на променлива или присвояване на променлива.
Първият елемент почва да за меня на другите.

Еко кода:

Код:
			foreach ($grp as $grpa) {					
						  foreach ($grpa['attribute'] as $grpt) {
						    if ($grpt['name'] != "Тип") {
							 continue;
						    }  
						 
						 
							$text = $grpt['text'];
							 
						   }
						  }


И се получава следното, имам две пици.

Първа пица има цена 10.00
Втора пица има 20.00

При изкарване и двете пици имат стойноста на първата пица 10.00

Благодаря за отделеното време! :)[/code]
 
Тая променлива каква е $attributeatr['text']?

В случая дори не ти трябва foreach като така или иначе имаш:


$text = $attributeatr['text'];

Аз никъде във foreach-а не виждам $attributeatr.
 
topchokt каза:
Тая променлива каква е $attributeatr['text']?

В случая дори не ти трябва foreach като така или иначе имаш:


$text = $attributeatr['text'];

Аз никъде във foreach-а не виждам $attributeatr.

Нещо май не е дал пълния код.. Иначе ако тва $text ти е цената, не го декларираш с правилната стойност явно.
 
В целия код няма грам смисъл или от това, което пита автора. Не може да се отговаря адекватно на така зададени въпроси.

Не се научихте, че тука няма гадатели.
 
Моля да ме извините в бързината съм редактирал нещо което не трябва,

attributeatr е grpt

Код:
   foreach ($grp as $grpa) {                
                    foreach ($grpa['attribute'] as $grpt) { 
                      if ($grpt['name'] != "Тип") { 
                      continue; 
                      }  
                   
                   
                     $text = $grpt['text']; 
                      
                     } 
                    }

Благодаря за отговорите, като цяло не разбирам къде бъркам, нещо не е наред явно. Има ли вариант нещо да бъркам в този код?
 
novakabg каза:
Моля да ме извините в бързината съм редактирал нещо което не трябва,

attributeatr е grpt

Код:
   foreach ($grp as $grpa) {                
                    foreach ($grpa['attribute'] as $grpt) { 
                      if ($grpt['name'] != "Тип") { 
                      continue; 
                      }  
                   
                   
                     $text = $grpt['text']; 
                      
                     } 
                    }

Благодаря за отговорите, като цяло не разбирам къде бъркам, нещо не е наред явно. Има ли вариант нещо да бъркам в този код?

В кое поле е цената? $text или друго?
 
Значи явно съм тъп и давам кода много лошо.

Имам следната заявка всичко е в MVC модел.

PHP:
	public function getPizzaAttributes($pizza_id) {
		$pizza_attribute_group_data = array();

		$pizza_attribute_group_query = $this->db->query("SELECT ag.attribute_group_id, agd.name FROM " . DB_PREFIX . "pizza_attribute pa LEFT JOIN " . DB_PREFIX . "attribute_pizza a ON (pa.attribute_id = a.attribute_id) LEFT JOIN " . DB_PREFIX . "attribute_pizza_group ag ON (a.attribute_group_id = ag.attribute_group_id) LEFT JOIN " . DB_PREFIX . "attribute_pizza_group_description agd ON (ag.attribute_group_id = agd.attribute_group_id) WHERE pa.pizza_id = '" . (int)$pizza_id . "' AND agd.language_id = '" . (int)$this->config->get('config_language_id') . "' GROUP BY ag.attribute_group_id ORDER BY ag.sort_order, agd.name");

		foreach ($pizza_attribute_group_query->rows as $pizza_attribute_group) {
			$pizza_attribute_data = array();

			$pizza_attribute_query = $this->db->query("SELECT a.attribute_id, ad.name, pa.text FROM " . DB_PREFIX . "pizza_attribute pa LEFT JOIN " . DB_PREFIX . "attribute_pizza a ON (pa.attribute_id = a.attribute_id) LEFT JOIN " . DB_PREFIX . "attribute_pizza_description ad ON (a.attribute_id = ad.attribute_id) WHERE pa.pizza_id = '" . (int)$pizza_id . "' AND a.attribute_group_id = '" . (int)$pizza_attribute_group['attribute_group_id'] . "' AND ad.language_id = '" . (int)$this->config->get('config_language_id') . "' AND pa.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY a.sort_order, ad.name");

			foreach ($pizza_attribute_query->rows as $pizza_attribute) {
				$pizza_attribute_data[] = array(
					'attribute_id' => $pizza_attribute['attribute_id'],
					'name'         => $pizza_attribute['name'],
					'text'         => $pizza_attribute['text']
				);
			}

			$pizza_attribute_group_data[] = array(
				'attribute_group_id' => $pizza_attribute_group['attribute_group_id'],
				'name'               => $pizza_attribute_group['name'],
				'attribute'          => $pizza_attribute_data
			);
		}

		return $pizza_attribute_group_data;
	}
	
	
	
		




// Проблемният код

$attribute_groups  = $this->catalog_getpizza->getPizzaAttributes($p['pizza_id']);
 
 
 
 
 
 				if ($attribute_groups) {
						foreach ($attribute_groups as $attribute_groupatr) {					
						  foreach ($attribute_groupatr['attribute'] as $attributeatr) {
						    if ($attributeatr['name'] != "Тип") {
							 continue;
						    }  
						 
						 
							$AttType = $attributeatr['text'];
							 
						   }
						  }
						}
 
Не знам защо ви е толкова трудно да си задавате въпросите и си скатавате от кода все едно някой ще ви го открадне.

1. Това е най-ужасния начин за използване на MVC. Това е просто процедурен код наблъскан по модели и контролери без капка мисъл.
2. Никой няма никаква представа кое какво връща, в какъв формат и т.н.
3. Имената на променливите са неразбираеми
4. Няма коментари
5. if() който проверява дали е различно от "Тип" нищо не говори.

По всички тези точки, аз все още не намирам свързаност с въпроса ти и проблема ти.

Съжалявам, ако ти звуча заядливо, но за да получите отговори на проблемите си и вие трябва да се постараете малко, за да получите такъв.
 
Да добавя, че с най-обикновено форматиране на кода и използване на [рhр] тага вместо [соdе] за подходящо оцветяване ще улесниш тези, които ти го гледат.
Счупената индентация само пречи, и многото празни редове единствено утежняват поста. Ако сам не си форматираш кода, поне като постваш въпроси го прави, за да е ясно на останалите кой for кой if коя функция къде е вложена etc..
 
Revelation каза:
Не знам защо ви е толкова трудно да си задавате въпросите и си скатавате от кода все едно някой ще ви го открадне.

1. Това е най-ужасния начин за използване на MVC. Това е просто процедурен код наблъскан по модели и контролери без капка мисъл.
2. Никой няма никаква представа кое какво връща, в какъв формат и т.н.
3. Имената на променливите са неразбираеми
4. Няма коментари
5. if() който проверява дали е различно от "Тип" нищо не говори.

По всички тези точки, аз все още не намирам свързаност с въпроса ти и проблема ти.

Съжалявам, ако ти звуча заядливо, но за да получите отговори на проблемите си и вие трябва да се постараете малко, за да получите такъв.

Това за MVC не го казвай на никой да не ти се смеят :), този мит е само в България и в първите основи на MVC това от доста време неважи, ако трябва да направиш оптимизация за бързина в някой случай няма как да не ползваш процедурен, MVC е архитектура на шаблон никъде не се казва че не може да пишеш процедурен код, по твоята логика половината системи които се ползват от милиони хора няма да работят и са грешно написани така ли ? :shock:
 
anonimen каза:
Да добавя, че с най-обикновено форматиране на кода и използване на [рhр] тага вместо [соdе] за подходящо оцветяване ще улесниш тези, които ти го гледат.
Счупената индентация само пречи, и многото празни редове единствено утежняват поста. Ако сам не си форматираш кода, поне като постваш въпроси го прави, за да е ясно на останалите кой for кой if коя функция къде е вложена etc..

Благодаря за съвета приятел, ще се опитам да го спазвам.
 
novakabg каза:
Revelation каза:
Не знам защо ви е толкова трудно да си задавате въпросите и си скатавате от кода все едно някой ще ви го открадне.

1. Това е най-ужасния начин за използване на MVC. Това е просто процедурен код наблъскан по модели и контролери без капка мисъл.
2. Никой няма никаква представа кое какво връща, в какъв формат и т.н.
3. Имената на променливите са неразбираеми
4. Няма коментари
5. if() който проверява дали е различно от "Тип" нищо не говори.

По всички тези точки, аз все още не намирам свързаност с въпроса ти и проблема ти.

Съжалявам, ако ти звуча заядливо, но за да получите отговори на проблемите си и вие трябва да се постараете малко, за да получите такъв.

Това за MVC не го казвай на никой да не ти се смеят :), този мит е само в България и в първите основи на MVC това от доста време неважи, ако трябва да направиш оптимизация за бързина в някой случай няма как да не ползваш процедурен, MVC е архитектура на шаблон никъде не се казва че не може да пишеш процедурен код, по твоята логика половината системи които се ползват от милиони хора няма да работят и са грешно написани така ли ? :shock:

1. Проблема ти е, че не разбираш MVC
2. Проблема ти е, че си с ограничени знания и за друго освен MVC не си чувал.
3. Аз спирам да пиша вече в този форум. Нивото е ужасно ниско и хора, които си нямат и идея от програмиране ми дават акъли да не ми се смеели хората.

Успех в начинанията. Изглежда никога няма да се научиш да програмираш.
 
Revelation каза:
novakabg каза:
Revelation каза:
Не знам защо ви е толкова трудно да си задавате въпросите и си скатавате от кода все едно някой ще ви го открадне.

1. Това е най-ужасния начин за използване на MVC. Това е просто процедурен код наблъскан по модели и контролери без капка мисъл.
2. Никой няма никаква представа кое какво връща, в какъв формат и т.н.
3. Имената на променливите са неразбираеми
4. Няма коментари
5. if() който проверява дали е различно от "Тип" нищо не говори.

По всички тези точки, аз все още не намирам свързаност с въпроса ти и проблема ти.

Съжалявам, ако ти звуча заядливо, но за да получите отговори на проблемите си и вие трябва да се постараете малко, за да получите такъв.

Това за MVC не го казвай на никой да не ти се смеят :), този мит е само в България и в първите основи на MVC това от доста време неважи, ако трябва да направиш оптимизация за бързина в някой случай няма как да не ползваш процедурен, MVC е архитектура на шаблон никъде не се казва че не може да пишеш процедурен код, по твоята логика половината системи които се ползват от милиони хора няма да работят и са грешно написани така ли ? :shock:

1. Проблема ти е, че не разбираш MVC
2. Проблема ти е, че си с ограничени знания и за друго освен MVC не си чувал.
3. Аз спирам да пиша вече в този форум. Нивото е ужасно ниско и хора, които си нямат и идея от програмиране ми дават акъли да не ми се смеели хората.

Успех в начинанията. Изглежда никога няма да се научиш да програмираш.

По-добре слушай какво ти казва @Revelation. Човека е много в час с нещата. Аз съм съгласен че, от кода ти нищо не се разбира и за това никой не може да ти помогне. Това което виждам е някакви заявки които връщат масиви. Вместо да върнеш резултат ти ги обхождаш и ги слагаш в други масиви, които после пак обхождаш. С други думи не се разбира смисъла на цялото упражнение. Нито кое какво е, нито от къде идва и къде отива. Не го казвам за да те обиждам или нещо подобно, и аз имам подобни теми :D. Слагай var_dump на масивите за да видиш дали съдържат правилната информация. Според мен това че мяташ инфото от едни масиви в други ти прави проблема и някъде там се объркват нещата.
 

Горе