Autor Zpráva
frauen
Profil *
Zdravím,

mám následující problém. Mám vytvořenou fotogalerii, ale při nahrávání fotek dochází k problému. Nahraji několik fotek a po té se mi třeba od 10 fotky nahrává pořád stejný obrázek, ikdyž vybírám pokaždé jiný.

PHP:
<?php

// Images
if (isset($path[1]) && $path[1] == 'obrazky') {
    $query = mysql_query("SELECT `date`, `id`, `title` FROM `gallery-events` WHERE `id` = " . intval($path[2]));
    $row = mysql_fetch_array($query);
    if (mysql_num_rows($query) > 0) {

        // Add - Images
        if (isset($path[3]) && $path[3] == 'pridat') {
            if (isset($_POST['sent'])) {
                $allowed_types = array('image/gif', 'image/jpeg', 'image/pjpeg', 'image/png');
                if (isset($_FILES['image']) && $_FILES['image']['error'] > 0) {
                    if ($_FILES['image']['error'] == UPLOAD_ERR_INI_SIZE) {
                        $image_error_message = 'Nahrávaný obrázek překročil hodnotu upload_max_filesize nastavenou v php.ini.';
                    } elseif ($_FILES['image']['error'] == UPLOAD_ERR_FORM_SIZE) {
                        $image_error_message = 'Nahrávaný obrázek překročil hodnotu MAX_FILE_SIZE nastavenou v HTML formuláři.';
                    } elseif ($_FILES['image']['error'] == UPLOAD_ERR_PARTIAL) {
                        $image_error_message = 'Nahrávaný obrázek byl nahrán pouze částečně.';
                    } elseif ($_FILES['image']['error'] == UPLOAD_ERR_NO_FILE) {
                        $image_error_message = 'Nebyl nahrán žádný obrázek.';
                    } elseif ($_FILES['image']['error'] == UPLOAD_ERR_NO_TMP_DIR) {
                        $image_error_message = 'Chybí dočasná složka pro nahrávaný obrázek.';
                    } elseif ($_FILES['image']['error'] == UPLOAD_ERR_CANT_WRITE) {
                        $image_error_message = 'Nepodařilo se uložit nahrávaný obrázek na disk.';
                    } elseif ($_FILES['image']['error'] == UPLOAD_ERR_EXTENSION) {
                        $image_error_message = 'Nahrávání obrázku bylo ukončeno.';
                    } else {
                        $image_error_message = 'Neznámá chyba.';
                    }
                }

                if (isset($_FILES['image']) && empty($_FILES['image']['name'])) {
                    $error = 'Nebyl vybrán žádný obrázek.';
                } elseif (!in_array($_FILES['image']['type'], $allowed_types)) {
                    $error = 'Nepovolený typ obrázku (GIF, JPEG, PNG).';
                } elseif ($_FILES['image']['error'] > 0) {
                    $error = $image_error_message;
                } else {
                    $query_max = mysql_query("SELECT MAX(`image`) AS `max` FROM `gallery-images` WHERE `gallery_event_id` = " . $row['id']);
                    $row_max = mysql_fetch_array($query_max);
                    $max_id = explode('.', $row_max['max']);
                    $image_id = $max_id[0] + 1;
                    $image_path = pathinfo($_FILES['image']['name']);
                    $image = $image_id . '.' . $image_path['extension'];
                    if ($image_id == 1) {
                        mkdir('../misc/foto-video/' . $row['id'], 0777);
                        mkdir('../misc/foto-video/' . $row['id'] . '/thumbs', 0777);
                    }
                    $target = '../misc/foto-video/' . $row['id'] . '/' . $image;
                    $target_thumb = '../misc/foto-video/' . $row['id'] . '/thumbs/' . $image;

                    $query_image = mysql_query("INSERT INTO `gallery-images` SET `image` = '" . mysql_real_escape_string($image) . "', `gallery_event_id` = " . $row['id']);

                    if ($query_image) {
                        move_uploaded_file($_FILES['image']['tmp_name'], $target);
                        list($imgWidth, $imgHeight) = getimagesize($target);
                        if ($imgHeight > $imgWidth) {
                            resizeImage($target, $target, $image_path['extension'], 0, 640);
                            resizeImage($target, $target_thumb, $image_path['extension'], 0, 118);
                        } else {
                            resizeImage($target, $target, $image_path['extension'], 640, 0);
                            resizeImage($target, $target_thumb, $image_path['extension'], 118, 0);
                        }
                    }

                    $success = true;
                    $msg = 'Obrázek události byl úspěšně přidán.';
                }
            }
        }
    }
}

?>

MySQL:
--
-- `gallery-events`
--

CREATE TABLE IF NOT EXISTS `gallery-events` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    `author` int(10) unsigned NOT NULL,
    `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
    `published` tinyint(1) unsigned NOT NULL DEFAULT '0',
    `title` varchar(255) NOT NULL,
    `title_rewrite` varchar(255) NOT NULL,
    PRIMARY KEY (`id`),
    UNIQUE KEY `title_rewrite` (`title_rewrite`)
) ENGINE = MyISAM DEFAULT CHARSET = utf8 COLLATE = utf8_czech_ci AUTO_INCREMENT = 1;

--
-- `gallery-images`
--

CREATE TABLE IF NOT EXISTS `gallery-images` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    `image` varchar(15) NOT NULL DEFAULT '',
    `gallery_event_id` int(10) unsigned NOT NULL,
    PRIMARY KEY (`id`),
    KEY `gallery_event_id` (`gallery_event_id`)
) ENGINE = MyISAM DEFAULT CHARSET = utf8 COLLATE = utf8_czech_ci AUTO_INCREMENT = 1;


Chtěl bych se zeptat, v čem je problém? Děkuji mnohokrát.
frauen
Profil *
Napadlo mě, že by problém mohl být nejspíš v mysql_query, kde vytahuji MAX hodnotu obrázků a pak z něj vytáhnu pouze id, které inkrementuji. Je to takto špatně, případně jak to opravit? Děkuji.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: