@MSAFT

Как занести в БД названия всех файлов из папки?

Есть небольшой скрипт, который по итогу должен заносить в БД MySQL название всех файлов из указанной папки.

Отрывок кода,

$directory = 'images/';
	$scandir = scandir($directory);


	for ($i=0; $i<count($scandir); $i++)

	{
		if ($scandir[$i] != '.' && $scandir[$i] != '..')

		{

			echo '<br><img width="50%" height="50%" src="'. $directory . $scandir[$i] . '" />';
			echo 'Название файла' . $scandir[$i] ;
		}

	}

   mysql_connect('localhost', 'root', '');
    $res = mysql_select_db('test'); 

    $sql = "INSERT INTO `people`(`id`, `name`, `deptId`) VALUES ('AUTO_INCREMENT', '" . $scandir[$i] . "', '3')";

    $res = mysql_query($sql);


Вывожу массивы переменной через цикл for, но в ячейке name добавляется только одна строка с пустым значением.
  • Вопрос задан
  • 502 просмотра
Решения вопроса 1
DevMan
@DevMan
жеванный крот!

долго объяснять, лучше станцую:
$directory = 'images/';

$files = glob($directory . '*');
$sql = '';
foreach ($files as $file) {
	if(is_dir($file)) {
		continue;
	}
	$sql .= '("' . $file . '", 3),';
}

$sql = 'INSERT INTO `people`(`name`, `deptId`) VALUES ' . substr($sql, 0, -1);
echo $sql;
надеюсь смысл понятен.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
Проверьте, что именно вы сканируете. У вас действительно такой путь?
$directory = 'images/';
Можете использовать document_root или realpath и __FILE__.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы