Autor Zpráva
Mufna
Profil
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
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
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
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
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;
   }

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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