NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Zobrazování miniatury u záznamu v SQL tabulce

V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Lucyk
Člen
Avatar
Lucyk:9.6.2015 13:42

Ahoj, ráda bych se na vás obrátila s dotazem týkající se zobrazování miniatury (obrázku) u daného záznamu. Zkoušela jsem hledat na internetu, na jakém principu udělat následující:
Mám tabulku naplněnou následujícími sloupci: ID, rok, vydavatel, popis, číslo, název, limitace. K této tabulce, resp. k jednotlivým položkám v tabulce bych chtěla přiřadit obrázek, (ten by byl ve formě např. fotoaparátu), na který pokud by se ukázalo ukázalo, tak by se zobrazil odpovídající obrázek vztahující se ke konkrétnímu záznamu.
Tzn. viděla bych to na vytvoření ještě jednoho sloupce "nahled", ale tady netuším, jak zapsat výše požadovaný formát.

Zkoušela jsem hledat na internetu, zda není někde něco podobného řešeno, resp. netuším, jakých případně klíčových slov se držet.

Děkuji za případné komentáře.

 
Odpovědět
9.6.2015 13:42
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Lucyk
David Hartinger:9.6.2015 14:02

Přidáš si tam normálně sloupec typu varchar, kde bude cesta k obrázku, který k záznamu patří.

Nahoru Odpovědět
9.6.2015 14:02
New kid back on the block with a R.I.P
Avatar
Odpovídá na Lucyk
Michal Haňáček:9.6.2015 15:49

Z tvého dotazu není (alespoň mě) vůbec jasné pro jaký účel to řešíš jestli to bude nějaká deskrop appka, nějaká web galerie, nebo já nevím co ... tak že existuje celá řada řešení. Některá vhodnější, jiná méně.

Jde mimo jiné i o to kde máš obrázky uložené. Pokud máš např. nějakou tabulku kam obrázky ukládáš, přidej do stávající tabulky sloupec s převzatým klíčem entity z tabulky obrázků. Pak se jednoduše na obrázek dostaneš přes ID. Případně to co říkal David je také správně, ale pokud budeš mít pro celou aplikaci jediný obrázek symbolizující "náhled" je zase kravina rozšiřovat kvůli tomu DB tabulku a u každého záznamu tam ukládat to stejné. V takovém případě si cestu k obrázku ulož někam jinam a jen jednou (nějaký config, ini, XML s nastavením, ... cokoli jiného).

Nahoru Odpovědět
9.6.2015 15:49
Každé rozhodnutí a každý krok v životě nás někam posune. Bohužel jen některé nás posouvají dopředu.
Avatar
Lucyk
Člen
Avatar
Lucyk:9.6.2015 18:21

Chci udělat web, kde se budou hledat jednotlivé produkty. A pak, aby v případě, že bude k danému produktu dostupný obrázek, aby měli možnost uživatelé po najetí myši se podívat na náhled daného produktu.

To, že bych tam mohla přidat k jednotlivým produktům i obrázek mě napadlo nyní, tzn. zatím mám jen vytvořenou tabulku popisovanou výše a nemám žádnou další tabulku pro ukládání obrázků apod.

Můžete mi, prosím, kluci dát nějaký příklad?

Když přidám tedy sloupeček typu VARCHAR, jak by měl být tento sloupeček zaplněn odkazem v případě, že obrázky budou uloženy na serveru, kde by web bežel?

Děkuji

 
Nahoru Odpovědět
9.6.2015 18:21
Avatar
Odpovídá na Lucyk
Martin Mandík:9.6.2015 22:43

Do sloupce s obrázkem uložíš cestu k obrázku: třeba www.web.cz/…/obrazek.jpg
A pak normálně do img src vložíš tuhle adresu, kterou vytáhneš z databáze, to už asi víš jak :-)

Editováno 9.6.2015 22:43
 
Nahoru Odpovědět
9.6.2015 22:43
Avatar
Lucyk
Člen
Avatar
Odpovídá na Martin Mandík
Lucyk:10.6.2015 2:34

Děkuji, snažím se zapsat cestu obrázku do pole typu VARCHAR, ale nějak si nevím rady s jeho fungováním.

1. pokus:

('1994','BARUM',' ','1','Pavel',' ','<img src="/pokus/1.jpg">'),
  • tady mi to hodí chybovou hlášku při zobrazení tabulky -> Parse error: syntax error, unexpected T_STRING in ... line ...

2. pokus:

('1994','BARUM',' ','1','Pavel',' ','<img src=/pokus/1.jpg>'),
  • tabulka se zobrazí, ale s prázdným polem pro obrázek, tzn. jako by tam nic nebylo

Předpokládám, že ani jeden z výše mnou uvedených způsobů nebude správně?

 
Nahoru Odpovědět
10.6.2015 2:34
Avatar
Odpovídá na Lucyk
Martin Mandík:10.6.2015 8:04

Ted uplně nevím o co se snažíš, chceš napsat SQL dotaz? A jinak piš tam jenom tu cestu, bez img src :-)

 
Nahoru Odpovědět
10.6.2015 8:04
Avatar
Lucyk
Člen
Avatar
Odpovídá na Martin Mandík
Lucyk:10.6.2015 13:10

Chtěla jsem do posledního sloupečku umístit odkaz, kde mám nahraný obrázek a pak pomocí SQL dotazu tuto tabulku zobrazit, abych zjistila, zda se obrázky zobrazují, či nikoliv.

pro zobrazení tabulky jsem použila:

<?php

$databaze="checklist";
$spojeni=mysql_connect("sql1.webzdarma.cz","checklist","heslo");
$co="SELECT * FROM tabulka";
$navrat=mysql_db_query("checklist", $co, $spojeni);
echo ("<table border=\"1\">");
for ($i=0;$i<mysql_num_fields($navrat); $i++){
echo ("<td><strong>".mysql_field_name($navrat, $i)."</strong></td>");
}
while (list($year, $distributor, $description, $number, $name, $limit, $img) = mysql_fetch_row($navrat)){
echo ("<tr><td>$year</td><td>$distributor</td><td>$description</td><td>$number</td><td>$name</td><td>$limit</td><td>$img</td></tr>");
}
echo ("</table>");

?>

Pokud uvedu do posledního sloupce (u mě pojmenovaného jako img) tento kód:

'/pokus/1.jpg'

Už by se měl obrázek zobrazit u daného záznamu, nebo mě napadá ještě jedna věc co se týká zobrazení, zda $img nevyžaduje nějaký speciální zápis?

 
Nahoru Odpovědět
10.6.2015 13:10
Avatar
Odpovídá na Lucyk
Martin Mandík:10.6.2015 14:21

Tak jestli do db ukládáš "/pokus/1.jpg" tak proměnnou img bys měla dosadit do img src:

<img src=$img>

A nepoužívej mysql_ ale koukni se na PDO.

Editováno 10.6.2015 14:21
 
Nahoru Odpovědět
10.6.2015 14:21
Avatar
Lucyk
Člen
Avatar
Odpovídá na Martin Mandík
Lucyk:10.6.2015 17:35

Tak jsem zkusila tyto možnosti:

('1994','BARUM',' ','1','Pavel',' ','/pokus/1.jpg'),
('1994','BARUM',' ','1','Pavel',' ','pokus/1.jpg'),
('1994','BARUM',' ','1','Pavel',' ','http://www.xxx.cz/pokus/1.jpg'),

A k tomu použila zatím mnou výše uvedený kód (upraven o pole pro img)

<?php

 $databaze="checklist";
 $spojeni=mysql_connect("sql1.webzdarma.cz","checklist","heslo");
 $co="SELECT * FROM tabulka";
 $navrat=mysql_db_query("checklist", $co, $spojeni);
 echo ("<table border=\"1\">");
 for ($i=0;$i<mysql_num_fields($navrat); $i++){
 echo ("<td><strong>".mysql_field_name($navrat, $i)."</strong></td>");
 }
 while (list($year, $distributor, $description, $number, $name, $limit, $img) = mysql_fetch_row($navrat)){
 echo ("<tr><td>$year</td><td>$distributor</td><td>$description</td><td>$number</td><td>$name</td><td>$limit</td><td><img src=$img></td></tr>");
 }
 echo ("</table>");

 ?>

Avšak v tabulce se mi nedaří obrázek zobrazit. :(

Obrázek je oficiálně uložen cestou:

http://www.xxx.cz/pokus/1.jpg

že by v ní byl nějaký problém?

 
Nahoru Odpovědět
10.6.2015 17:35
Avatar
Filip Stryk
Tvůrce
Avatar
Odpovídá na Lucyk
Filip Stryk:10.6.2015 17:44

to předposlední echo uprav na

echo ("<tr><td>$year</td><td>$distributor</td><td>$description</td><td>$number</td><td>$name</td><td>$limit</td><td><img src=\"$img\"></td></tr>");

chybí ti uvozovky u atributu src

 
Nahoru Odpovědět
10.6.2015 17:44
Avatar
Odpovídá na Filip Stryk
Martin Mandík:10.6.2015 17:53

To bude ono, počítal jsem s tím že to tam má uložený i s uvozovkama... :-D

 
Nahoru Odpovědět
10.6.2015 17:53
Avatar
Lucyk
Člen
Avatar
Odpovídá na Filip Stryk
Lucyk:10.6.2015 18:27

Tak netuším, kde může být chyba. Zkoušela jsem dávat

('1994','BARUM',' ','1','Pavel',' ','/pokus/1.jpg'),
('1994','BARUM',' ','1','Pavel',' ','http://www.xxx.cz/pokus/1.jpg'),
  • jsem použila výše uvedený kód upraven o echo:
<?php

  $databaze="checklist";
  $spojeni=mysql_connect("sql1.webzdarma.cz","checklist","heslo");
  $co="SELECT * FROM tabulka";
  $navrat=mysql_db_query("checklist", $co, $spojeni);
  echo ("<table border=\"1\">");
  for ($i=0;$i<mysql_num_fields($navrat); $i++){
  echo ("<td><strong>".mysql_field_name($navrat, $i)."</strong></td>");
  }
  while (list($year, $distributor, $description, $number, $name, $limit, $img) = mysql_fetch_row($navrat)){
  echo ("<tr><td>$year</td><td>$distributor</td><td>$description</td><td>$number</td><td>$name</td><td>$limit</td><td><img src=\"$img\"></td></tr>");
  }
  echo ("</table>");

  ?>

A výsledek stále stejný (viz vložený obrázek). Proč mi zároveň naskakuje do sloupečku "limit" zřejmě náznak na zobrazení souboru?

Nemá tam být v obrázku hockey_img, ale pouze img.

Editováno 10.6.2015 18:29
 
Nahoru Odpovědět
10.6.2015 18:27
Avatar
Lucyk
Člen
Avatar
Lucyk:11.6.2015 3:21

:o Jeee kluci, nedalo mi to a zkoušela různé kombinace a najednou to funguje. Alespoň tedy tak, že se zobrazí obrázek.

Zakopaný pes byl v tom, že když jsem dala "SELECT * FROM", tak mi to vypsalo všechny sloupečky vč. ID a tím se mi posunul i zápis pro zobrazení obrázku, a proto byla snaha ho zobrazit ve sloupci "limit".

Když jsem zadala "SELECT year, distributor .... FROM", tak už se mi obrázek zobrazuje v tabulce.

Ještě bych chtěla funkci zobrazování obrázku rozšířit o následující:
pokud by byl u dané položky obrázek dostupný, zobrazila by se např. ikonka fotoaparátu a když by se myší na tento fotoaparát najelo, tak by se ukázal daný obrázek.

Bude zapotřebí změnit jen tuto část kódu?

<img src=\"$img\">

googlitjsem různé kombinace

 
Nahoru Odpovědět
11.6.2015 3:21
Avatar
smiesek
Člen
Avatar
Odpovídá na Lucyk
smiesek:11.6.2015 10:28
<a href=\"$img\"><img src=\"$img\" width=\"50\" height=\"50\" alt=\"obrázek\"></a>
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
11.6.2015 10:28
Avatar
Lucyk
Člen
Avatar
Lucyk:14.6.2015 4:34

smiesek: Děkuji.

Trošku to plní jiný účel, než jsem si představovala a tak bych měla dotaz týkající se zobrazení obrázku do bubliny.

Na internetu jsem našla, že by se to dalo implementovat do

title=""

.
Zkoušela jsem různé kombinace a nějak se mi to nedaří. Máte někdo zkušenosti a mohl by mi poradit, jak zapsat do

title=""

cestu pro zobrazení obrázku z pole? V mém případě $img.

První pokus:

title=\"$img\"

Zobrazuje mi to pouze url cestu, kde je obrázek uložen.

Druhý pokus:

title=<img src=\"$img\" />

Tady mi už zlobí závorky. Asi místo závorek musím použít uvozovky, ale v těch se ztrácím a vždy kombinace co mě napadla, tak havarovala.

Vím, že tam budu muset asi nějak zakomponovat syntax pro img.

Děkuji za případné rady.

Editováno 14.6.2015 4:35
 
Nahoru Odpovědět
14.6.2015 4:34
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 16 zpráv z 16.