Autor Zpráva
igy
Profil *
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 *
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
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 *
Je to 1:1 jeden produkt jeden obrázek
AlešD
Profil
ř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 *
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 *
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
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 *
JJ taky mám dojem že tak bude lepší Díky za názor.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0