kod który dodaje zdjęcia do galeri:
<?php } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <head> <title>ADM - edycja galeri</title> <link rel="stylesheet" href="../css/style.css" type="text/css"> <meta http-equiv="content-type" content="text/html; charset=utf-8"> </head> <body> <?php include("menu.php"); ?> <div id="tresc"> <fieldset><legend>Galeria</legend> <?php // potrzebne foldery (chmod 777) galeria, galeria/orginal, galeria/miniatury include('config.php'); //łącze się z bazą $f = $_FILES['zdj']; $spr= '../galeria/orginal/'.$data; //ścieżka (tam gdzie mają znajdować się zdjęcia) $zdj=$f['name']; $opi=$_POST['opi']; $kat=$_POST['kat']; { { if ($f['type']=='image/bmp') $typ='bmp'; elseif ($f['type']=='image/jpeg' || $f['type']=='image/pjpeg') //sprawdza format jpg lub dla Internet Explorera pjpg $typ='jpg'; elseif ($f['type']=='image/png' || $f['type']=='image/x-png') //sprawdza format png lub dla Internet Explorera x-png $typ='png'; elseif ($f['type']=='image/gif') $typ='gif'; else $tekst='Niepoprawny format obrazu.<br><br>'; } elseif(!$tekst) $tekst='Nie wczytano obrazu<br>'; if (!$tekst) { if ($typ=='jpg') $img=imagecreatefromjpeg('../galeria/orginal/'.$zdj); elseif ($typ=='png') $img=imagecreatefrompng('../galeria/orginal/'.$zdj); elseif ($typ=='gif') $img=imagecreatefromgif('../galeria/orginal/'.$zdj); elseif ($typ=='bmp') $img=imagecreatefromwbmp('../galeria/orginal/'.$zdj); $x = imagesx($img); $y = imagesy($img); if($x > $y){ $nx = 200; $ny = 200 * ($y / $x); $mx = 800; $my = 800 * ($y / $x); } elseif($x < $y){ $nx = 200 * ($x / $y); $ny = 200; $mx = 800 * ($x / $y); $my = 800; } else{ $nx = 200; $ny = 200; $mx = 800; $my = 800; } $mini_img = imagecreatetruecolor($nx, $ny); imagecopyresampled($mini_img, $img, 0, 0, 0, 0, $nx, $ny, $x, $y); $new_img = imagecreatetruecolor($mx, $my); imagecopyresampled($new_img, $img, 0, 0, 0, 0, $mx, $my, $x, $y); if ($typ=='jpg') imagejpeg($mini_img, '../galeria/miniatury/'.$zdj) && imagejpeg($new_img, '../galeria/'.$zdj) ; elseif ($typ=='png') imagepng($mini_img, '../galeria/miniatury/'.$zdj) && imagepng($new_img, '../galeria/'.$zdj); elseif ($typ=='gif') imagegif($mini_img, '../galeria/miniatury/'.$zdj) && imagegif($new_img, '../galeria/'.$zdj); elseif ($typ=='bmp') imagewbmp($mini_img, '../galeria/miniatury/'.$zdj) && imagewbmp($new_img, '../galeria/'.$zdj); zdjecie='$zdj',opis='$opi', kategoryID='$kat'"); //dodaje nazwę pliku i nazwę kategori do bazy danych } } } $i = 1; $rezultat=mysql_query('SELECT g.*,k.kategoria FROM gallery AS g LEFT JOIN kategory AS k ON(g.kategoryID=k.kategoryID)ORDER BY id desc'); { if($i % 2 == 0){ } $i++; } { $id=$_GET['id']; $plik= $row ['zdjecie'] ; $zapytanie="DELETE FROM gallery WHERE id='$id'"; } else{ } } ?> <fieldset> <legend>Dodaj zdjęcie</legend> <form action="gallery_edycja.php?page=addzdj" enctype="multipart/form-data" method="post"> <div><label for="plik">Wybierz zdjęcie:</label><br> <input id="plik" name="zdj" size="32" type="file" /></div> <div> <div><label for="opi">Opis:</label><br> <input id="kat" name="opi" size="32" type="text" /></div><br> <div><label for="kat">Kategoria:</label><br> <select id="kat" name="kat"> <option value="1">projektor</option> <option value="2">lampa</option> <option value="3">laptop</option> </select> </div><br> <div><input class="submit" type="submit" value="Wyślij" /></div> </div> </form> </fieldset> </fieldset> </div> </body>
oraz tabele
gallery z polami : id, zdjecie, kategoryID, opis
kategory z polami : kategoryID, kategoria
połączone tak
ALTER TABLE `gallery` ADD FOREIGN KEY ( `kategoryID` ) REFERENCES `thor_thor`.`kategory` ( `kategoryID` ) ON DELETE CASCADE ON UPDATE CASCADE ;
problem mam z selektem w formularzu. jest możliwość żeby wartości pobierane były automatycznie do niego z tabeli "kategory"
tzn zamiast wpisywać ręcznie
samo by sie wypełniało.
drugi problem to jeśli dodaje zdjęcie to dodać moge tylko trzy zdjęcia i to każde musi mieć inne "kategoryID" jeśli chce dodać np z kategoryID = 1 a w tabeli gallery jest już rekord z taką wartością to nie dodaje rekordu i wywala błąd że już rekord z ta wartością jest.