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

Фотография

Ошибка, нужна помощьPHP


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 8

#1
Dj-Storm

Dj-Storm
  • Завсегдатай
  • 149 сообщений
Вообщем работал на сайте, добавлял данные, в итоге русская версия сайта выдала вот такую ошибку:

Fatal error

: Allowed memory size of 33554432 bytes exhausted (tried to allocate 32767983 bytes) in

/home/****/public_html/ru/cat.php

on line

71


Вот код:

for ($i=0; $i<sizeof($feelds_mass); $i  )
{
if ($i != sizeof($feelds_mass)-1)
{
$sql_query .= '`'.$feelds_mass[$i].'`, ';
} else {
$sql_query .= '`'.$feelds_mass[$i].'`';
}
} <================71 линия


Как исправить?


P.S Модератор измени пожалуйста слово ПОМОЩ в названии темы на ПОМОЩЬ, не дописал случайно

Сообщение отредактировал kornel: 29.02.2012, 09:15:29

  • 0

#2
pyramida

pyramida
  • Читатель
  • 741 сообщений
Зачем высчитывать каждый шаг раз sizeof($feelds_mass) ?

сделай
$size = COUNT( $feelds_mass);
for ($i=0; $i< $size; $i )
и дальше используй в переборе $size

Ошибка памяти может возникать если ты пытаешся создать массив или переменую с данными больше чем разрешено настройками для пхп. Смотри в настройках пхп memory_size_limit так кажется называется обычно стоит минимум.

#3
forspamonly

forspamonly
  • Гость
  • 34 сообщений
полагаю, дело в пропущенном инкременте и бесконечном цикле.
for ($i=0; $i< $size; $i ++ )
но это не говоря о том, что весь приведённый код эквивалентен чему-то вроде
if(count($feelds_mass) > 0) $sql_query .= '`'.join($feelds_mass, '`, `').'`';

зы. ещё и форматирование на форуме поломалось

Сообщение отредактировал forspamonly: 29.02.2012, 23:07:53

  • 0

#4
pyramida

pyramida
  • Читатель
  • 741 сообщений

полагаю, дело в пропущенном инкременте и бесконечном цикле.
for ($i=0; $i< $size; $i ++ )
но это не говоря о том, что весь приведённый код эквивалентен чему-то вроде

if(count($feelds_mass) > 0) $sql_query .= '`'.join($feelds_mass, '`, `').'`';

зы. ещё и форматирование на форуме поломалось

точно про ++ я и не заметил такой вот программист из меня :)

#5
Riki_tiki_tavi

Riki_tiki_tavi
  • Частый гость
  • 65 сообщений
Весь этот код можно написать одной строчкой вот так:
$sql_query .= '`' . implode('`, `', $feelds_mass) . '`';

А ещё поля по-английски не feelds, а fields :)
  • 0

#6
forspamonly

forspamonly
  • Гость
  • 34 сообщений

Весь этот код можно написать одной строчкой вот так:

$sql_query .= '`' . implode('`, `', $feelds_mass) . '`';


неправильно. при пустом массиве лишние кавычки попадут. а он пустой бывает, потому что раньше оно у автора топика работало и сломалось на первом же заполненном массиве уже потом.
  • 0

#7
WallEnd

WallEnd
  • Постоялец
  • 490 сообщений
if(count($feelds_mass)>0){
  $sql_query .= '`' . implode('`, `', $feelds_mass) . '`';
}

Как-то так мб?
  • 0

#8
vfvtnjd

vfvtnjd
  • Гость
  • 30 сообщений
поищите в норм. форуме, разработчиков.[ex]Предупреждение за нарушение п.2.2.7 Правил: http://vse.kz/index....post&p=21746791[/ex]
  • 0

#9
Iamdeclepto

Iamdeclepto
  • Гость
  • 7 сообщений
Памяти не хватает! который Вы выделил для php
  • 0


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

пользователей: 0, неизвестных прохожих: 1, скрытых пользователей: 0

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.