Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/50: Рейтинг темы: голосов - 50, средняя оценка - 4.58
1 / 1 / 1
Регистрация: 18.01.2013
Сообщений: 79

Проверка массива на пустоту

29.01.2013, 05:40. Показов 10617. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
доброго времени суток!
в ходе написания скрипта возникла следующая проблема: из текстового файла вытаскиваю текст, вношу его в массив [1:6] и выбираю необходимые мне элементы для последующего внесения их в БД MySQL. вроде бы все и хорошо, НО! в текстовом файле в самом его конце имеется пустая строка, и мне нужно сделать проверку этого массива на пустоту.
код скрипта:
PHP
1
2
3
4
5
6
7
8
9
10
11
<?php
$db = mysql_connect("localhost", "root", "123123");
mysql_select_db("impb_coll", $db);
$text = fopen("impb_coll.txt","r");
while(!feof($text)) {
        $buffer = fgets($text);
        $words = preg_split("/\s+/s",$buffer);
        echo ($words[0]." - ".$words[1]." - ".$words[2]." - ".$words[5]."\n");
        mysql_query("insert into `impb_coll` (`IPsw`, `IPcl`, `MACcl`, `Psw`) values (INET_ATON('$words[0]'), INET_ATON('$words[1]'), '$words[2]', '$words[5]')");
}
?>
он работает правильно, единственная проблема с проверкой пустоты массива... еще пробовал сделать так:
PHP
1
2
3
4
5
6
7
8
9
10
while(!feof($text)) {
        $buffer = fgets($text);
        $words = preg_split("/\s+/s",$buffer);
        if (!($words == NULL) {  
        echo "запись невозможна - строка пустая"
        } else {
        echo ($words[0]." - ".$words[1]." - ".$words[2]." - ".$words[5]."\n");
        mysql_query("insert into `impb_coll` (`IPsw`, `IPcl`, `MACcl`, `Psw`) values (INET_ATON('$words[0]'), INET_ATON('$words[1]'), '$words[2]', '$words[5]')");
}
}
но показывает ошибку, ссылающуюся на { после оператора if.

Добавлено через 13 минут
немного переделал проверку на пустоту, получилось следующее:
PHP
1
2
3
4
5
6
7
8
9
10
while(!feof($text)) {
        $buffer = fgets($text);
        $words = preg_split("/\s+/s",$buffer);
        if (empty($words)) {
        echo "запись невозможна - строка пустая";
        } else {
        echo ($words[0]." - ".$words[1]." - ".$words[2]." - ".$words[5]."\n");
        mysql_query("insert into `impb_coll` (`IPsw`, `IPcl`, `MACcl`, `Psw`) values (INET_ATON('$words[0]'), INET_ATON('$words[1]'), '$words[2]', '$words[5]')");
        }
}
но на пустоту не проверяет... в конце выполнения скрипта пишет:
Undefined offset: 1 (2,5) in home/ironheaddd/script.php on line 11
Undefined offset: 1 (2,5) in home/ironheaddd/script.php on line 12

Добавлено через 1 минуту
PS: в предыдущих вариантах тоже самое пишет про элементы массива (undefined 1 (2, 5)) и строки
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.01.2013, 05:40
Ответы с готовыми решениями:

Проверка на пустоту
Здравствуйте, задача сделать выборку имени таблицы для дальнейшей работы с ней. имя таблицы выбирается с помощью &lt;select ...

Проверка на пустоту
Здравствуйте скажите please в чём ошибка на пустоту проверяет, ошибку выводит но в то же время отправляет данные!! Вот код: if...

Проверка на пустоту
Добрый вечер, я никак не пойму в чем ошибка. недавно начал изучать php. у меня есть по 3 поля. то есть всего 9. если я ввожу первые 3...

6
 Аватар для Dolphin
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
29.01.2013, 07:04
PHP
1
2
3
if (empty($words)) {  
        echo "запись невозможна - строка пустая";
}
0
1 / 1 / 1
Регистрация: 18.01.2013
Сообщений: 79
29.01.2013, 07:39  [ТС]
Цитата Сообщение от Dolphin Посмотреть сообщение
PHP
1
2
3
if (empty($words)) {  
        echo "запись невозможна - строка пустая";
}
а в чем отличие от моего кода? не вижу ничего, кроме табуляции
0
 Аватар для Dolphin
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
29.01.2013, 07:45
не заметил последнюю запись =)
Выведи массив и посмотри, что в нем. Может еще какие то записи есть кроме этих, поэтому и не считает его пустым
PHP
1
2
3
4
5
6
7
if (empty($words)) {
        echo "запись невозможна - строка пустая";
} else {
         var_dump($words);
        //echo ($words[0]." - ".$words[1]." - ".$words[2]." - ".$words[5]."\n");
        //mysql_query("insert into `impb_coll` (`IPsw`, `IPcl`, `MACcl`, `Psw`) values (INET_ATON('$words[0]'), INET_ATON('$words[1]'), '$words[2]', '$words[5]')");
}
0
1 / 1 / 1
Регистрация: 18.01.2013
Сообщений: 79
29.01.2013, 08:18  [ТС]
Цитата Сообщение от Dolphin Посмотреть сообщение
не заметил последнюю запись =)
Выведи массив и посмотри, что в нем. Может еще какие то записи есть кроме этих, поэтому и не считает его пустым
PHP
1
2
3
4
5
6
7
if (empty($words)) {
        echo "запись невозможна - строка пустая";
} else {
         var_dump($words);
        //echo ($words[0]." - ".$words[1]." - ".$words[2]." - ".$words[5]."\n");
        //mysql_query("insert into `impb_coll` (`IPsw`, `IPcl`, `MACcl`, `Psw`) values (INET_ATON('$words[0]'), INET_ATON('$words[1]'), '$words[2]', '$words[5]')");
}
с этим разобрался, теперь нужно сделать проверку одинаковых записей в БД по полям IPcl и MACcl, если есть одинаковые - то вывести их на экран... ушел кодить
0
 Аватар для ninja2
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
08.05.2016, 10:02
А как проверить есть ли в массиве хоть один пустой элементы без цикла? array_search? А может еще есть какие функции?
0
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
08.05.2016, 14:31
Цитата Сообщение от ninja2 Посмотреть сообщение
array_search?
PHP
1
2
3
4
$arr = [1,
        2=>'',
        ];
echo in_array("",$arr) ? 1 :0;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.05.2016, 14:31
Помогаю со студенческими работами здесь

Проверка на пустоту ячейки
Здрасти скажите как мне проверить пуста ячейка или нет!! Если ячейка пуста выводим форму, если нет то, то что там. Никак не получается...

Проверка поля БД на пустоту
Добрый вечер! Уважаемые, гуру! Прошу Вас помощи в таком случае: берется путь картинки с базы и выводится через переменную $imgs. Хочу...

Проверка поля на пустоту в базе
Как Проверить что поле text в базе пустое. если он пустое то вывести на &quot;экран эта страница пуста&quot; $query = &quot;select * from...

Проверка на пустоту множеств выпадающих полей
Подскажите пожалуйста, почему не срабатывают else { $strSQL = $strSQL.&quot; AND sex=&quot;.$_GET; и else { $strSQL = $strSQL.&quot; AND...

Проверка переменной на пустоту
Какая у тебя фамилия? &lt;br /&gt; &lt;input type=&quot;radio&quot; name=&quot;v2&quot; value=&quot;o1&quot;&gt;Иванов &lt;br /&gt; &lt;input type=&quot;radio&quot; name=&quot;v2&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru