- foreach придава резултат на другите и се получава замяна или
12
WT форуми -> PHP MySQL ASP.NET -> foreach придава резултат на другите и се получава замяна или
Създайте нова тема Напишете отговор 
Автор Съобщение
novakabg
Турист
Турист

Регистриран на: 13/05/2016 2:29 pm

Support: 5
Bonus: 10
Мнения: 337
Мнение 07/02/2019 4:12 pm     foreach придава резултат на другите и се получава замяна или Отговорете с цитат


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

Еко кода:

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



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

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

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

Благодаря за отделеното време! Smile[/code]

Последната промяна е направена от novakabg на 08/02/2019 9:58 am; мнението е било променяно общо 1 път
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
topchokt
Редовен
Редовен

Регистриран на: 14/11/2008 7:48 am

Support: 22
Bonus: 39
Мнения: 2134
Мнение 07/02/2019 4:55 pm      Отговорете с цитат


Тая променлива каква е $attributeatr['text']?

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


Цитат:
$text = $attributeatr['text'];


Аз никъде във foreach-а не виждам $attributeatr.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
deam0n
Tourist Defender

Регистриран на: 01/10/2005 6:33 pm

Support: 200
Bonus: 953
Мнения: 2992
Мнение 07/02/2019 5:34 pm      Отговорете с цитат


topchokt написа:
Тая променлива каква е $attributeatr['text']?

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


Цитат:
$text = $attributeatr['text'];


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


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

Регистриран на: 24/03/2013 3:23 pm

Support: 56
Bonus: 112
Мнения: 736
Мнение 08/02/2019 1:08 am      Отговорете с цитат


В целия код няма грам смисъл или от това, което пита автора. Не може да се отговаря адекватно на така зададени въпроси.

Не се научихте, че тука няма гадатели.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
novakabg
Турист
Турист

Регистриран на: 13/05/2016 2:29 pm

Support: 5
Bonus: 10
Мнения: 337
Мнение 08/02/2019 9:55 am      Отговорете с цитат


Моля да ме извините в бързината съм редактирал нещо което не трябва,

attributeatr е grpt


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


Благодаря за отговорите, като цяло не разбирам къде бъркам, нещо не е наред явно. Има ли вариант нещо да бъркам в този код?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
topchokt
Редовен
Редовен

Регистриран на: 14/11/2008 7:48 am

Support: 22
Bonus: 39
Мнения: 2134
Мнение 08/02/2019 10:20 am      Отговорете с цитат


novakabg написа:
Моля да ме извините в бързината съм редактирал нещо което не трябва,

attributeatr е grpt


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


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


В кое поле е цената? $text или друго?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение Посетете сайта на потребителя
novakabg
Турист
Турист

Регистриран на: 13/05/2016 2:29 pm

Support: 5
Bonus: 10
Мнения: 337
Мнение 08/02/2019 10:46 am      Отговорете с цитат


Значи явно съм тъп и давам кода много лошо.

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

PHP code:


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'];

}
}
}
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Revelation
Потребител
Потребител

Регистриран на: 24/03/2013 3:23 pm

Support: 56
Bonus: 112
Мнения: 736
Мнение 09/02/2019 9:16 pm      Отговорете с цитат


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

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

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

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

Регистриран на: 11/06/2012 8:07 pm

Support: 160
Bonus: 319
Мнения: 1495
Мнение 10/02/2019 12:00 pm      Отговорете с цитат


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

Регистриран на: 13/05/2016 2:29 pm

Support: 5
Bonus: 10
Мнения: 337
Мнение 11/02/2019 4:15 pm      Отговорете с цитат


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

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

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

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


Това за MVC не го казвай на никой да не ти се смеят Smile, този мит е само в България и в първите основи на MVC това от доста време неважи, ако трябва да направиш оптимизация за бързина в някой случай няма как да не ползваш процедурен, MVC е архитектура на шаблон никъде не се казва че не може да пишеш процедурен код, по твоята логика половината системи които се ползват от милиони хора няма да работят и са грешно написани така ли ? Shocked
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
novakabg
Турист
Турист

Регистриран на: 13/05/2016 2:29 pm

Support: 5
Bonus: 10
Мнения: 337
Мнение 11/02/2019 4:16 pm      Отговорете с цитат


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


Благодаря за съвета приятел, ще се опитам да го спазвам.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Revelation
Потребител
Потребител

Регистриран на: 24/03/2013 3:23 pm

Support: 56
Bonus: 112
Мнения: 736
Мнение 12/02/2019 9:54 am      Отговорете с цитат


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

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

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

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


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


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

Успех в начинанията. Изглежда никога няма да се научиш да програмираш.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Покажи мнения от преди:    
Създайте нова тема   Напишете отговор    web-tourist.net Форуми -> PHP MySQL ASP.NET Часовете са според зоната GMT + 2 Часа
12
Страница 1 от 2


 
Идете на:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети