Autor | Zpráva | ||
---|---|---|---|
igy Profil * |
#1 · Zasláno: 26. 9. 2006, 13:31:20
Dobrý den,
potřebuju k výrobku přidat obrázek, mám dvě tabulky produkty a image v tab.produkty řádek id_zbozi a v tab image image_id (oba PRIMARY). Zkoušel jsem už všechno možné (pomoci inner join), ale buď se mi nezobrazil obrázek anebo ke všem výrobkům se přiřadil stejný. Tady je odkaz z menu: <a href="<?php echo $PHP_SELF ?>?exe=7&co=sportovni&iid=iid"> Tady je odkaz na skrip se zobrazením: <img src= \"ukaz_obr.php?iid=$iid\" border= 1 width=60 height=80 align=left> A tady mám skript z dotazem: $sql = "SELECT * FROM image WHERE image_id=".$_GET["iid"]; $result = mysql_query ($sql, $conn); if (mysql_num_rows ($result)>0) { $row = @mysql_fetch_array ($result); $image_type = $row["image_type"]; $image = $row["image"]; Header ("Content-type: $image_type"); echo $image; } Dá se to nějak upravit aby se výrobek a obrázek shodoval? V tabulkách mám id_výrobku 00001 image_id 00001. Děkuji za radu. |
||
igy Profil * |
#2 · Zasláno: 27. 9. 2006, 15:35:59
Jelikož to vypadá neřešiteně (prozatím alespoň pro mne) tak se zeptám jestli je nějaký rozdíl mít ty miniatury v databází anebo je načítat z adresáře. Krom toho že stím je víc práce. Jestli to na serveru nebude mít na něco vliv.
Protože z adresáře mi to jde v pohodě přiřadit k výrobků jeho miniaturu, ale z databázi nemůžu hnout. Kdyby byl třeba link kde se to řeší. Děkuji. |
||
AlešD Profil |
#3 · Zasláno: 27. 9. 2006, 16:17:25
Jelikož dost nerozumím ukázce, dovolím si pár dotazů:
- jak spolu souvisí tabulky produkty a image (je to 1:1 nebo 1:n - jeden produkt více -> obrázků, nebo jeden obrázek -> více produktů)? - opravdu jsou id_zbozi a image_id primary key? V tomto případě se jedná o vazbu 1:1, nepřipadá mi to však vhodné, lepší by bylo vytvořit v té tabulce, která je ve vztahu 1:n (ta "n") cizí klíč s hodnotou primary key (třeba zboziID) z druhé tabulky, potom by to bylo možné spojit pomocí JOIN produkty ON produkty.id_zbozi=image.zboziID |
||
igy Profil * |
#4 · Zasláno: 27. 9. 2006, 17:44:13
Je to 1:1 jeden produkt jeden obrázek
|
||
AlešD Profil |
#5 · Zasláno: 27. 9. 2006, 18:12:34
řešení 1:
dej to všechno do jedné tabulky (1:1 - kardinalita, v tomto případě asi nemá smysl) řešení 2: SELECT produkty.jméno_pole, produkty.jméno_pole... , image.jméno.pole FROM produkty, image WHERE produkty.id_zbozi=image.image_id nebo SELECT produkty.jméno_pole, produkty.jméno_pole... , image.jméno_pole FROM produkty JOIN image ON produkty.id_zbozi=image.image_id Vtip je v tom, že uvedeš z obou tabulek jen ty jména polí, která budeš potřebovat pro zobrazení a potom si v cyklu zobrazíš jednotlivé řádky, které budou obsahovat pole sloučená z obou tabulek podle produkty.id_zbozi=image.image_id |
||
igy Profil * |
#6 · Zasláno: 27. 9. 2006, 18:46:23
No tak už jsem na to přišel trochu jsem to poupravil a přidal jsem řádek kde začíná cyklus:
while ($zaznam = MySQL_Fetch_Array($vysledek)){ ...... ...... $iid =$zaznam["id_zbozi"]; <-- toto tam chybělo. Už to funguje jak má HEURÉKA. Díky moc za inspiraci. |
||
igy Profil * |
#7 · Zasláno: 27. 9. 2006, 19:06:09
Ale i tak ještě otázečka, kde je výhodnější mít velké obrázky cca 300px na 400px. V adresáři na serveru nebo taky v databázi? Miniatury v databázi to chápu jsou objemově malé, ale ty velké a ještě k tomu když jich bude hodně? nehledě na to, že v databázi jsou další informace o zboží, zákaznícich atd., tzn. spousta dalších dotazů na db a ještě k tomu ty obrázky?
Děkuji. |
||
tiso Profil |
#8 · Zasláno: 27. 9. 2006, 19:59:38
igy
Osobne som za obrázky na disku, v databáze iba linky na ne, príslušnosť do galérie a podobne... |
||
igy Profil * |
#9 · Zasláno: 27. 9. 2006, 21:01:51
JJ taky mám dojem že tak bude lepší Díky za názor.
|
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0