autoko

Проблема проверки переменной

Рекомендуемые сообщения

autoko    0

Существует проблема

Скрипт падает с ошибкой:  PHP Notice: Undefined offset: 1 in...

Вот собственно кусок кода.

$cur_i = 0;
for ($i = 1; $i < $data->sheets[1]['numRows']; $i++) {
if($data->sheets[1]['cells'][$i][8] != ""){
if($cur_i == 0){
$cur_i++;
}else{
$sql = "SELECT * FROM av_product WHERE sku = '".$data->sheets[1]['cells'][$i][2]."'";
$cur_product_query = mysql_query($sql) or die('Query failed: ' . mysql_error());
$cur_product = mysql_fetch_array($cur_product_query);

if(!is_numeric(trim($data->sheets[1]['cells'][$i][8])))
$product_count = 5;
else $product_count = $data->sheets[1]['cells'][$i][8];
if($cur_product['sku'] != ""){

 

вот эта переменная из за которой по моим данным косяк

$data->sheets[1]['cells'][$i][8]

раньше был формата                                                                                                             1, а5; 
                                                                                                                                                2, а5; 
                                                                                                                                                3, a5....
сейчас же эта переменная по мои данным поменялась и стала формата     1, а; 
                                                                                                                           2, a; 
                                                                                                                           3, 50; 
                                                                                                                           4, a ....
а учитывая, что это изначально цикл...там он и застревает, так как не подходит проверка

!is_numeric(trim

Вопрос, как задать проверку, на числовые и буквенные значения.

isset   (не подходит)

завершает той же ошибкой, так как есть значения массива 0, а; либо "", a;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
freelancer    1 410

foreach ?

вы уверены что ошибка в той строке?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
autoko    0

foreach ?

вы уверены что ошибка в той строке?

не могу быть уверен, так как еще возможной причиной был вынужденный апдейт debian-a... (а именно php5 обновился...может синтаксис где поменялся...). Но, то что 

 

!is_numeric(trim
 

не может обработать из массива столбец 8 где присутствуют только числа и только текст, это по моему очевидно... если не так поправьте. 

Массив создает вот такая штука https://code.google.com/p/php-excel-reader/ , а там для меня вообще глухой лес....

ЗЫ. Ситуация острая

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
autoko    0

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

ругается на строчку 

 

for ($i = 1; $i < $data->sheets[1]['numRows']; $i++) {
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
freelancer    1 410

да, я на эту строчку и думал

$data->sheets[1]

вероятно вы парсите xls файл, где 1 это номер листа в этом файле

Изменено пользователем freelancer

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
autoko    0

да, я на эту строчку и думал

$data->sheets[1]

вероятно вы парсите xls файл, где 1 это номер листа в этом файле

да, щитс - это лист xls файла.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу