Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 28.09.2012
Сообщений: 7
1

вывод файлов и отправка имен в базу-ошибка

28.09.2012, 09:37. Показов 777. Ответов 9
Метки нет (Все метки)

Здравствуйте, начну сразу с проблемы.Есть скрипт который должен выводить все файлы они же"Картинки" из папки и их имена вносить в базу данных для дальнейших манипуляций.но вот беда, выдает такую ошибку Notice: Undefined offset: 58 in Z:\home\test2.ru\www\index.php on line 79 то есть "элемент не существует".Я пришел просить помощи у вас, если кто нибудь подскажет решение или подправит скрипт, буду очень благодарен.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php  
error_reporting(E_ALL);
$dt = date('Y-m-d');
$dir="uploads/"; //берем директорию 
 
 
$ar=array(); 
$dh = opendir($dir); 
while ($file_d = readdir($dh)) : 
if ($file_d[0] != ".") //не выводим вложенные папки 
{ 
array_push($ar, $file_d); //читаем все файлы в директории 
} 
endwhile; 
closedir($dh);
print "<br>";
 
sort($ar); //сортируем файлы по имени
 
for($i=0;$i<count($ar);$i++) { 
print "<br><a href='".$dir.$ar[$i]."' targer='_blank'>.$ar[$i].</a> "; //выводим на экран 
}
 
while(each($ar))
{
 
$result = mysql_query("INSERT INTO `brand_battle`.`brand` (brand_one,brand_two,url_one,date_add) VALUES('".$ar[$i]."', '".$ar[$i]."','".$dir.$ar[$i]."','".$dt."'");
 
   
 
if ($result=='true') 
{echo "Ваши данные успешно добавлены";}
else{echo "Ваши данные не добавлены";}
 
}
?>
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.09.2012, 09:37
Ответы с готовыми решениями:

Занесение имен файлов в базу
Несколько файлов через одно поле в форме загружаются. В таблице под них разные поля. Как занести в...

Вывод имён файлов
как сделать вывод на экран выбранных файлов через форму и тег input type=file? 1.php echo...

Вывод имен файлов в папке
Нужно вывести на экран имена всех фалов , но вместо этого выводит адреса #include...

Список имен файлов без имен папок и скрытых файлов
Здравствуйте Я пытаюсь вывести список имен файлов в текущей папке без отображения имен папок и...

__________________

Записывайтесь на профессиональные курсы Fullstack-разработчиков на PHP‌
9
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16827 / 6705 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
28.09.2012, 09:52 2
Цитата Сообщение от ver2hay Посмотреть сообщение
Notice: Undefined offset: 58 in Z:\home\test2.ru\www\index.php on line 79 то есть "элемент не существует"
не элемент не существует, а не существует значение в массиве с этим индексом. Здесь не видно ни этой строчки, ни каких то ошибок которые могли такое выдать.
0
0 / 0 / 0
Регистрация: 28.09.2012
Сообщений: 7
28.09.2012, 10:01  [ТС] 3
жалуется именно на эту строку

PHP
1
$result = mysql_query("INSERT INTO `brand_battle`.`brand` (brand_one,brand_two,url_one,date_add) VALUES('".$ar[$i]."', '".$ar[$i]."','".$dir.$ar[$i]."','".$dt."'");
0
Миниатюры
вывод файлов и отправка имен в базу-ошибка  
47 / 30 / 2
Регистрация: 11.06.2011
Сообщений: 206
28.09.2012, 10:21 4
PHP
1
$result = mysql_query("INSERT INTO `brand_battle`.`brand` (brand_one,brand_two,url_one,date_add) VALUES('".$ar[$i]."', '".$ar[$i]."','".$dir.$ar[$i]."','".$dt."'") or die(mysql_error()." ".mysql_errno());
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16827 / 6705 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
28.09.2012, 10:28 5
а, ну точно. откуда вы это самое $i берете, если цикл закончился выше?
0
0 / 0 / 0
Регистрация: 28.09.2012
Сообщений: 7
28.09.2012, 10:38  [ТС] 6
Цитата Сообщение от NoBodyIsPerfect Посмотреть сообщение
PHP
1
$result = mysql_query("INSERT INTO `brand_battle`.`brand` (brand_one,brand_two,url_one,date_add) VALUES('".$ar[$i]."', '".$ar[$i]."','".$dir.$ar[$i]."','".$dt."'") or die(mysql_error()." ".mysql_errno());

пишет теперь вот так
PHP
1
2
Notice: Undefined offset: 58 in Z:\home\test2.ru\www\index.php on line 78
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 1064
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16827 / 6705 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
28.09.2012, 10:49 7
ver2hay, у вас цикл for, где вы используете $i закончился выше. и $i осталась максимальной. А вы продолжаете ее использовать уже за циклом
0
0 / 0 / 0
Регистрация: 28.09.2012
Сообщений: 7
28.09.2012, 10:53  [ТС] 8
Цитата Сообщение от KOPOJI Посмотреть сообщение
а, ну точно. откуда вы это самое $i берете, если цикл закончился выше?
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php  
error_reporting(E_ALL);
$dt = date('Y-m-d');
$dir="uploads/"; //берем директорию 
 
 
$ar=array(); 
$dh = opendir($dir); 
while ($file_d = readdir($dh)) : 
if ($file_d[0] != ".") //не выводим вложенные папки 
{ 
array_push($ar, $file_d); //читаем все файлы в директории 
} 
endwhile; 
closedir($dh);
print "<br>";
sort($ar); //сортируем файлы по имени
for($i=0;$i<count($ar);$i++) { 
print "<br><a href='".$dir.$ar[$i]."' targer='_blank'>.$ar[$i].</a> "; //выводим на экран 
$result = mysql_query("INSERT INTO `brand_battle`.`brand` (brand_one,brand_two,url_one,date_add) VALUES('".$ar[$i]."', '".$ar[$i]."','".$dir.$ar[$i]."','".$dt."'");
if ($result=='true') 
{echo "Ваши данные успешно добавлены";}
else{echo "Ваши данные не добавлены";}
 
}
 
while(each($ar))
 
?>
HTML5
1
2
3
.d_4c14c1f7.jpg. Ваши данные не добавлены
.d_52d05697.jpg. Ваши данные не добавлены
.d_54d861d0.jpg. Ваши данные не добавлены
теперь пишет вот так
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16827 / 6705 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
28.09.2012, 11:02 9
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
....
for($i=0;$i<count($ar);$i++) { 
print "<br><a href='".$dir.$ar[$i]."' targer='_blank'>.$ar[$i].</a> "; //выводим на экран 
}
 
$vals = '';
$dir = mysql_real_escape_string($dir);
 foreach($ar as $v) {
    $v = mysql_real_escape_string($v);
    $vals .= "('".$v."','".$v."','".$v."','".$dir.$v."','".$dt."'),";
}
 
$vals = rtrim($vals,',');
 
$query= "INSERT INTO `brand_battle`.`brand` (brand_one,brand_two,url_one,date_add) VALUES ".$vals;
$result = mysql_query($query);
 
if(TRUE === $result)
  echo 'Ваши данные успешно добавлены';
else
  echo 'Ваши данные не добавлены: '.mysql_error();
1
0 / 0 / 0
Регистрация: 28.09.2012
Сообщений: 7
28.09.2012, 11:06  [ТС] 10
спасибо KOPOJI , помогли очередному нубу...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.09.2012, 11:06

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Вывод имен файлов с обратной сортировкой по дате
Помогите с задачкой пожалуйста! Задача: 2. Создать в каталоге c:\temp\FamiliaStudenta BAT-файл,...

Вывод имён файлов по дате и времени их создания
Добрый день. Помогите пожалуйста написать командный файл для вывода на экран названия файлов,...

Поиск всех файлов в папке и вывод их имен
Пытаюсь сделать программку, которая будет выводить название всех файлов формата .txt в определенной...

Вывод имен файлов с определенными расширениями из заданной папки
Создайте командный файл вывода имен файлов(с помощью команды dir) заданных типов из заданной...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.