Autor | Zpráva | ||
---|---|---|---|
Mufna Profil |
#1 · Zasláno: 9. 4. 2008, 18:19:09
Zdravím Vás. Řeším problém, jak zařídit, aby se link na uploadované fotky uložil do databáze ke konkrétnímu ID, ke kterému jsem se dostal výběrem na jiné stránce. Tzn. mám stránku "display_all.php" -na ní se zobrazují všechny položky v db. U každé z nich je pak možnost úpravy - tzn. např přidání fotky. Kliknutím na "Přidat foto" se dostanu na stránku "detail.php?ID". Zobrazí se daná položka dle konkrétního ID (zatím bez fotek) + uploadovací formulář. Uživatel naplní formulář, odešle ho skriptu upload.php. Ten provede kontrolu a fotky uloží do konkrétních adresářů (řekněme "photos" a tn_photos").
Tohle vše mi zatím funguje. A teď by se linky k fotkám, které byly k tomu konkrétnímu ID přidány (resp. byly mu zatím předány uživatelem, který netuší, že to ještě já - a db - neví :-) , uložit do db. Mám tedy 3 skripty: display_all.php, detail.php a upload.php a jde mi v podstatě o dvě věci: jak předat skriptu upload.php konkrétní ID z detail.php + jak zformulovat na konci upload.php dotaz na db a jak mu předat konkrétní ID. Uvedu ještě, jak mám zformulované předávání a výběr ID na detail.php. if (isset($_POST["confirm"])) { $res=query("SELECT ".$tbl_prefix."karavany.id FROM ".$tbl_prefix."karavany WHERE id='".addslashes($_POST["id"])."'"); if (mysql_num_rows($res) == 0) { Header("Location: admin.php?msg=6"); exit; } } |
||
WertriK Profil |
#2 · Zasláno: 9. 4. 2008, 18:38:05
Doufám, že jsem to z tvého - dle mne zbytečně složitě položeného dotazu - pochopil správně.
Uplně stejně jak předáváš id na stránku detail.php, ho předáš i do upload.php A po uploadu obrázku provedeš dotaz, něco jako tohle (ale to jen tipuju, nevím jakou máš strukturu tabulek) $query=query("INSERT INTO ".$tbl_prefix."karavany SET fotka = '".$_FILES["soubor"]["name"]."' WHERE id='".addslashes($_POST["id"])."'"); |
||
Mufna Profil |
#3 · Zasláno: 9. 4. 2008, 18:48:12
Wertrik
Zatím díky, jo asi se vyjadřuju složitě (nebo i ty moje PHP kombinace možná nejsou nejlepší - nevím, v PHP nejsem tak pevnej v kramflecích). Jdu to nějak vyzkoušet. A dík hlavně za tu strukturu dotazu, to by mi asi chvíli trvalo, než bych přišel na to "SET" |
||
Mufna Profil |
#4 · Zasláno: 9. 4. 2008, 19:03:23
Wertrik
Hm, ale teď mě napadá, že když použiju SET, tak když tam bude již nějaká hodnota předtím, tak ji to asi přepíše. Nebo ne ? Já bych chtěl těch fotek ve sloupci "photos" mít pro jeden řádek vždy víc. Tzn. do db by se mělo ke konkrétnímu ID ve sloupci "photos" uložit toto: fotka1.jpg;fotka2.jpg;fotka3.jpg; atd. - podle toho, kolik jich bude k dané položce nahráno. Uploadovací formulář je pro více fotek najednou a v upload.php používám pro $_FILES cyklus foreach. Taky mě napadlo, že bych v tom cyklu nějak ty fotky (názvy), které "projdou kontrolou", ukládal do nějakého pole a to pak po skončení cyklu vypsal, resp. jeho hodnoty pak uložil do db, ale zatím jsem nevymyslel, jak to udělat. |
||
Mufna Profil |
#5 · Zasláno: 9. 4. 2008, 20:53:55
Uplně stejně jak předáváš id na stránku detail.php, ho předáš i do upload.php]
Můžu ještě požádat o pomoc ? Mám teď problém s předáním ID do upload.php. Chodí mi to z display_all.php - tam je to zařízeno v rámci zobrazení jedné položky linkem echo '<p><a href="detail.php?id='.$row["id"].'">Detail</a></p>'; - do detail.php, ale odtud do upload.php už ne. Uploadovací formulář z detail.php mám takto: <form name="multiup_form" id="multiup_form" method="POST" action="upload.phptady by asi mělo něco být, ale na $_GET["id"] ani na $row["id"] mi to nejde a skript upload.php vyhodí hlášku, že položka neexistuje - na jeho začátku se ptám databáze, zda id existuje - dotaz uveden níže" enctype="multipart/form-data"> <fieldset> <legend>PĹ™idánĂ fotografiĂ</legend> <div class="row"> <?php if (isset($_GET["max_no_images"])) { $max_no_img = $_GET["max_no_images"]; } else { $max_no_img=12; } ?> <table border="0" width="400" cellspacing="0" cellpadding="0" align="center"> <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $upload_max_size;?>"> <input type="hidden" name="return_page" value="photos.php"> <input type="" name="id" value="<?php echo $_GET["id"];?>"> <?php for($i=1; $i<=$max_no_img; $i++) { echo '<tr><td>Image '.$i.'</td>'; echo '<td><input type="file" name="userfile[]" class=""></td></tr>'; } ?> </table> <input type="submit" name="upload" value="Nahrát fotografie"> </div> </fieldset> </form> </div> dotaz na začátku upload.php - jinak úplně stejný jako na začátku detail.php if (isset($_POST["upload"])) { $res=query("SELECT ".$tbl_prefix."karavany.id FROM ".$tbl_prefix."karavany WHERE id='".addslashes($_GET["id"])."'"); if (mysql_num_rows($res) == 0) { Header("Location: admin_main.php?msg=6"); exit; } |
||
Časová prodleva: 16 let
|
0