Перейти к содержимому


Fatal error: Allowed memory size of 419430400 bytes exhausted


Сообщений в теме: 2

#1 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 19 Февраль 2014 - 07:02

Имеется скрипт на пхп в представлении. В какой-то момент времени сервер начал выдавать "Fatal error: Allowed memory size of 419430400 bytes exhausted (tried to allocate 77 bytes) in /home/tao/public_html/include/mysql_connect.php on line 85". Что мне непонятно. Во-первых до этого все работало прекрасно. Во-вторых количество записей мизерно. Аккаунт саас tao.clientbase.ru. Перенес код в отдельный файл и попытался исполнить. Результат тот же.

require_once "common.php";
require_once("include/functions1.php");
require_once("include/customs_function.php");
$result = data_select(91, "`status` = 0 AND `id` = 5183 LIMIT 1");
if(sql_num_rows($result) > 0) {
	$zakaz = array();
	while($row = sql_fetch_assoc($result)) {
		//выбираем позиции данного заказа
		$position_zakaz = data_select(11, "`status` = 0 AND `f571` = ", $row['id'], " ORDER BY `f731` ");
		if(sql_num_rows($position_zakaz) > 0) {
			while($rp = sql_fetch_assoc($position_zakaz)) {
				//Получаем количество QR-на позицию
				if($rp['f4171'] == 'Один') {
					$number_count = 1;
				}
				elseif($rp['f4171'] == 'Все') //количество наклеек равно количеству купленного товара
				{
					$number_count = $rp['f2061'];
				}
				//Если куплено > отпикано, тогда определяем позиции которые приедут следующим заказом
				unset($num_next);
				if($rp['f2061'] > $rp['f4181']) {
					//Выборка из таблицы отпиканные позиции
					$query_position = data_select(371, "`status` = 0 AND `f4231` = ", $rp['id']);
					//Если есть отпиканные позиции
					if(sql_num_rows($query_position) > 0) {
						//Записи из таблицы Отпиканные позиции
						while($rk = sql_fetch_assoc($query_position)) {
							//Формируем порядковые номера для позиций, которые приедут следующим заказом
							for($i = 1; $i <= $number_count; $i++) {
								if($rk['f4241'] != $i) {
									//формируем порядковые номера следующим заказом
									$num_next[] = $i;
								}
							}
						}
					}
					else {
						//Если нет отпиканных позиций, тогда порядковые номера равны количеству купленого
						for($i = 1; $i <= $number_count; $i++) {
							$num_next[] = $i;
						}
					}

					//Добавляем записи с статусом "Приедет следующим заказом"
					foreach($num_next as $n) {
						$insert_p = array();
						//№ п/п
						$insert_p['f4241'] = $n;
						//№ заказа
						$insert_p['f4281'] = $row['id'];
						//Позиция заказа
						$insert_p['f4231'] = $rp['id'];
						//Дата заказа
						$insert_p['f4261'] = $date_id;
						$insert_p['f4271'] = "Приедет следующим заказом";
						data_insert(371, EVENTS_ENABLE, $insert_p);
					}
				}
				/**
				 * Рассчитываем значения купленного товара
				 */
				//  $price = all_sum_uan(11, $rp[id], 91, 0, array('0' => 2));
				//$sum_buy_item += $price['f501'];
			}

			print_r($sum_buy_item);

		}
	}
}

Сообщение отредактировал wondertalik: 19 Февраль 2014 - 07:03


#2 Analitic

    Активный участник

  • Пользователи
  • PipPipPip
  • 700 сообщений
  • Пол:Мужчина

Отправлено 19 Февраль 2014 - 10:02

Чего-то недоговариваете?
Код:
home/tao/public_html/include/mysql_connect.php on line 85 p
код выполняется только в common.php. Соответственно либо код неполный, либо достаточно 1-ой строки для вызова ошибки?
require_once "common.php";

#3 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 19 Февраль 2014 - 11:37

Ответил в тп. Код полный. Вплоть до того, что я перенес для проверки все в отдельный файл. Вызов которого приводит к http://prntscr.com/2turco





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных