Autor | Zpráva | ||
---|---|---|---|
frauen Profil * |
#1 · Zasláno: 8. 2. 2011, 16:49:27
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 * |
#2 · Zasláno: 8. 2. 2011, 17:12:55
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.
|
||
Časová prodleva: 13 let
|
0