Autor Zpráva
fpok
Profil
Ahoj, potřebuji prosím poradit.
Mám na stránkách cca 1000 obrázků. Uvedu příklad co bych potřeboval:
Zapracovat do stránek program, do kterého když zadám slovo "kočka", zobrazí se mi obrázky s kočkou, když zadám slovo "pes", zobrazí se mi obrázky se psem, když zadám slova "kočka, pes", zobrazí se mi obrázky na kterých jsou oba (prostě filtr). Je mi jasné, že všechny obrázky musím otágovat patřičnými klíčovými slovy, ale nevím jaký program by bylo nejvhodnější použít, pokud něco takového existuje. Těch klíčových slov by mohlo být v jednom obrázku i víc. Zná prosím někdo něco takového, co by se dalo vložit do stránek a po zadání klíčových slov by to prohlédlo všechny přítomné obrázky a umělo by to vygenerovat novou stránku s vyfiltrovanými obrázky?
Snad jsem to popsat srozumitelně. Neexistuje něco v Javascriptu?
Díky za odpověď
peta
Profil
sql tabulky?

tab obrazky
id_obr, cesta

tab slova
id_slo, slovo

tab obr_slov
id_obr, id_slo

A pak jednoduchy select
SELECT c.cesta
FROM obr_slov a
  LEFT JOIN slova b ON b.id_slo=a.id_slo
  LEFT JOIN obrazky c ON c.id_obr=a.id_obr
WHERE 
  b.slovo IN ('pes', 'kocka')
3 tabulky v sql, 1 sql prikaz, kratky php kod (10 radku), html formular. Otazka asi 10-20 min udelat ten program a pak je treba vlozit ty obrazky do tabulky (treba pres phpmyadmina).

"Neexistuje něco v Javascriptu? "
Javascript data neuklada. Tam bys musel stahovat celou tabulku pri kazdem vyhledavani. Viz treba sokoban levely, tam se musi natahnout 23k soubor, kdezto samotny program ma 6k. Podobne treba osmismerky
http://www.volny.cz/peter.mlich/hry/sokoban.htm
http://www.volny.cz/peter.mlich/hry/osm.htm
Vyhledavani neni problem, to jen pouzijes treba str.indexOf, regularni vyraz nebo proste porovnani
<script>
var pole, i;
pole = [
[1, ['pes', 'kocka']],
[2, ['krava', 'pes']]
];

function vyhledej(slova)
{
var i, j, k, out;
out = [];
for (i=0;i<pole.length;i++)
  {
  for (j=0;j<pole[i][1].length;j++)
    {
    for (k=0;k<slova.length;k++)
      {
      if (pole[i][1][j]==slova[k]) {out[out.length] = pole[i][0]; break;}
      }
    }
  }
return out;
}

alert(vyhledej(['pes']))
alert(vyhledej(['krava']))
alert(vyhledej(['kocka']))
</script>
fpok
Profil
peta:
Díky za odpověď. Pohrabu se v tom.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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