Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Копирование файлов в цикле.
юрьич  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Местный житель
****

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 163
Пользователь №: 35076
На форуме: 4 года, 3 месяца, 1 день
Карма:




Всем привет. Задача такая.
Есть директория /images/board. В ней две папки /small и /medium.В них фотки.
Есть база mysql c таблицей cms_board_items. В ней кроме всего прочего два поля user_id и file. В первом id юзеров, во втором уникальные имена фоток.
Нужно
Cоздать в /images/board папки /images/board/'.$user_id с вложенными /small и /medium
Скопировать в них фотки из общей дирректории по принадлежности к соответствующему юзеру.

Написал запрос
    $PathSmall = 'images/board/small';
$PathMedium = 'images/board/medium';

$dirctS = opendir($PathSmall);
$dirctM = opendir($PathMedium);

$sql = "SELECT user_id,file
FROM cms_board_items
WHERE published =1 "
;
$result = $inDB->query($sql);
if($inDB->num_rows($result)){
while($files = $inDB->fetch_assoc($result)){

// *********** Создаю папки для фото ******************* //

$dirPath = 'images/board/'.$files['user_id'];
$dirPathSmall = $dirPath.'/small';
$dirPathMedium = $dirPath.'/medium';
$dirExst = (is_dir($dirPath)) ? true : @mkdir($dirPath);
$dirExst = (is_dir($dirPathSmall)) ? true : @mkdir($dirPathSmall);
$dirExst = (is_dir($dirPathMedium)) ? true : @mkdir($dirPathMedium);

// ******Пытаюсь сравнить имена файлов из запроса и из папки и если совпадают скопировать в созданную папку ******** //

while(false !== ($fnameM = readdir($dirctM))){

if ($fnameM != '.' && $fnameM != '..' && $fnameM == $files['file']) {
copy($PathMedium .'/'.$fnameM, $dirPathMedium.'/'.$fnameM);

Но в результате копируется только один файл. Подскажите где ошибка.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Guest  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









Нафиг readdir?

Смотришь если $files['file'] есть в /small/ – копируешь в /id/small/.
Если $files['file'] есть в /medium/ – копируешь в /id/medium/.

---
Хоть бы код запостил полностью. Хотя бы цикл.
/me Наверное нужно завязывать с копрологией.
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 8737
Пользователь №: 26630
На форуме: 5 лет, 9 месяцев, 7 дней
Карма: 591




Цитата (юрьич @ 1.06.2016 - 17:56)
        $dirPath = 'images/board/'.$files['user_id'];
        $dirPathSmall = $dirPath.'/small';
        $dirPathMedium = $dirPath.'/medium';
        $dirExst = (is_dir($dirPath)) ? true : @mkdir($dirPath);
        $dirExst = (is_dir($dirPathSmall)) ? true : @mkdir($dirPathSmall);
        $dirExst = (is_dir($dirPathMedium)) ? true : @mkdir($dirPathMedium);

нужно включить рекурсию в mkdir, иначе вложенные папки не создадутся, будет ошибка.
И цикл непонятно зачем, когда путь к файлу известен rolleyes.gif
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
depp  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 299
Пользователь №: 40589
На форуме: 2 года, 5 дней
Карма: 20




вы сами то понимаете что ваш код делает.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса