Написал на pdo парсер теперь проблема с сортировкой так как в 1 папку залезает 10000 папок нужно разбить 100x100 папок. PHP: <?php $host = '127.0.0.1'; $db = 'gigal'; $user = 'root'; $pass = ''; $charset = 'utf8'; $objectId = ''; $image = ''; $row = ''; $id = ''; $dsn = "mysql:host=$host;dbname=$db;charset=$charset"; $opt = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, ]; $pdo = new PDO($dsn, $user, $pass, $opt); $stmt = $pdo->query('SELECT * FROM id_images'); /* TODO header("Content-Type: image/jpeg"); */ $number_catalog = 1; while ($row = $stmt->fetch(PDO::FETCH_LAZY)) { $row_object = $row['objectId']; $row_image = $row['image']; $id_image = $row['id']; $type_image = $row['ext']; $count_dir = count(glob("../uploads/image/{$number_catalog}/*.*")); if($count_dir = 0 || $count_dir = 100) { $strukture = "../uploads/image/{$number_catalog}/"; $path = $strukture.$row_object; mkdir($path,true); file_put_contents("../uploads/image/{$number_catalog}/{$row_object}/{$id_image}.{$type_image}", $row_image); } elseif ($count_dir = 101) { $number_catalog++; // Понимаю что это бред но как увеличить переменную на единицу? mkdir($path,true); file_put_contents("../uploads/image/{$number_catalog}/{$row_object}/{$id_image}.{$type_image}", $row_image); } } ?> Выручайте камрады, заранее Вам спасибо!
Весь код не читал, но здесь чет не так. Во-первых почему в условии одинарное равно? Почему && а не || ? Одновременно одна переменная не может быть равна двум значениям. И почему в переменной нет $ ?
Изменил код но все равно в 1 папку свыше 1000 элементов идет что делать подскажите? PHP: <?php $host = '127.0.0.1'; $db = 'gigal'; $user = 'root'; $pass = ''; $charset = 'utf8'; $objectId = ''; $image = ''; $row = ''; $id = ''; $number_catalog = 1; $dsn = "mysql:host=$host;dbname=$db;charset=$charset"; /* $opt = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, ]; */ // TODO $pdo = new PDO($dsn, $user, $pass); $stmt = $pdo->query('SELECT * FROM id_images'); while ($row = $stmt->fetch(PDO::FETCH_LAZY)) { $row_object = $row['objectId']; $row_image = $row['image']; $id_image = $row['id']; $type_image = $row['ext']; $count_dir = count(glob("../uploads/image/{$number_catalog}/*.*")); if($count_dir < 100) { $strukture = "../uploads/image/{$number_catalog}/"; $path = $strukture.$row_object; mkdir($path,true); file_put_contents("../uploads/image/{$number_catalog}/{$row_object}/{$id_image}.{$type_image}", $row_image); } else if ($count_dir > 100) { $number_catalog = $number_catalog + 1; mkdir($path,true); file_put_contents("../uploads/image/{$number_catalog}/{$row_object}/{$id_image}.{$type_image}", $row_image); } } ?>
Всем спасибо! Справился сам кому интересно или у кого похожие проблемы выкладываю код. PHP: <?php $host = '127.0.0.1'; $db = 'gigal'; $user = 'root'; $pass = ''; $charset = 'utf8'; $objectId = ''; $image = ''; $row = ''; $id = ''; $number_catalog = 1; $dsn = "mysql:host=$host;dbname=$db;charset=$charset"; /* $opt = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, ]; */ // TODO $pdo = new PDO($dsn, $user, $pass); $stmt = $pdo->query('SELECT * FROM id_images'); while ($row = $stmt->fetch(PDO::FETCH_LAZY)) { $row_object = $row['objectId']; $row_image = $row['image']; $id_image = $row['id']; $type_image = $row['ext']; $count_dir = count(glob("../uploads/image/{$number_catalog}/*")); if($count_dir < 100) { $strukture = "../uploads/image/{$number_catalog}/"; $path = $strukture.$row_object; mkdir($strukture,true); mkdir($path,true); file_put_contents("../uploads/image/{$number_catalog}/{$row_object}/{$id_image}.{$type_image}", $row_image); } else { $number_catalog++; mkdir($strukture,true); mkdir($path,true); file_put_contents("../uploads/image/{$number_catalog}/{$row_object}/{$id_image}.{$type_image}", $row_image); } } ?> Единственный вопрос у меня картинки не открываются но понятно там ширины и высоты у них нет но в базе данных есть таблицы с шириной и высотой можно же при выводе передавать из таблицы в файл ширину и высоту и при выводе они будут работать?
Да ну, смысл ее закрывать? Может кому полезно будет, может кто отпишется, или предложит альтернативу.