Diskuze: Vyhledávání

PHP PHP Vyhledávání American English version English version

Avatar
smoukey
Člen
Avatar
smoukey:

Zdravím všechny čtenáře.

Vyskytl se problém. Tvořím si web (o čem, není důležité). Zkrátka chtěl bych na svůj web začlenit vyhledávání v podstatě čehokoliv, co se na webu nachází (uživatelé, skupiny, atd...). A už tady je problém. Vůbe cnevím jak na to. Googlil jsem x hodin. Našel jsem dost zajímavých věcích, ale všechno mi nějak hlava nebere.

Tak se chci zeptat, je tu někdo, kdo by mi mohl pomoci s vyhledáváním?

Předem děkuji za rady.

 
Odpovědět 22.10.2014 0:08
Avatar
mayo505
Redaktor
Avatar
Odpovídá na smoukey
mayo505:

https://support.google.com/…swer/2630969
Nastavenie vyzerá dosť jednoducho, ale toto by malo prehľadávať iba to kam majú roboti prístup. Takže keď potrebuješ prehľadávať v sekcii s autentizáciou asi si budeš musieť niečo napísať sám :)

 
Nahoru Odpovědět 22.10.2014 0:29
Avatar
smoukey
Člen
Avatar
Odpovídá na mayo505
smoukey:

Počítám že do mé DB roboti přístup nemají, takže jsem opět na začátku.

btw: Toto jsem zkoušel, avšak neúspěšně..

 
Nahoru Odpovědět 22.10.2014 0:41
Avatar
Ori
Člen
Avatar
Odpovídá na smoukey
Ori:

ten nepristupuje do tvojej db, ale prehľadáva verejne prístupné časti webu(html kód).

Inak keď chceš niečo tak komplexné ako opisuješ, tak to ani týmto nedosiahneš, odporúčam si pozrieť fulltext indexy a taktiež to nebude najjednoduchšie, možno aj nejaké pomocné tabuľky budeš potrebovať

 
Nahoru Odpovědět  +1 22.10.2014 1:01
Avatar
tomasmanhal
Člen
Avatar
Odpovídá na smoukey
tomasmanhal:

Vůbec nechápu, proč chceš aby Ti vyhledávač lezl do databáze :-) Pokud chceš začlenit na webovky vyhledávání, tak se tam dává klasický fulltext a hledá jen obsah, který je vidět na stránkách :-) DB bych sem vůbec nepletl a hlavně nevidím důvod, proč bys někomu měl umožnit vyhledávat data v tvojí DB :-)

Nahoru Odpovědět  +1 22.10.2014 2:02
Kdyby nám dodali k životu zdrojový kód, vše by bylo jednodušší...
Avatar
smoukey
Člen
Avatar
Odpovídá na tomasmanhal
smoukey:

Prostě potřebuji dostat data z databáze. Uživatel napíše do inputu nějaký řetězec a podle něj pak chci vyhledávat, jestli něco, co obsahuje ten řetězec je v db.

Jak říkáš ať použiji fulltextové vyhledávání. Rád bych, ale nevím jak.

Ale možná jak se říká, ráno moudřejší večera. Odpoledne na to mrknu znovu a třeba mi to hlava pobere.

 
Nahoru Odpovědět 22.10.2014 7:22
Avatar
kxmx
Redaktor
Avatar
Avatar
mayo505
Redaktor
Avatar
Odpovídá na smoukey
mayo505:

tak si napíš aspoň takýto dotaz

SELECT ... FROM tabulka WHERE stlpec LIKE '%hladany_retazec%'
 
Nahoru Odpovědět 22.10.2014 10:31
Avatar
smoukey
Člen
Avatar
Odpovídá na mayo505
smoukey:

Dotaz jsem zkoušel, nic mi to nevrátilo. Psalo to, že to nenašlo žádný fulltext colum. Což jsem pochopil, že tma žádný není, ale už nevím jak ho vytvořit..

 
Nahoru Odpovědět 22.10.2014 13:36
Avatar
smoukey
Člen
Avatar
Odpovídá na kxmx
smoukey:

Přesně něco takového. Něco takového jsem i zkoušel, ale už vím i kde byla chyba. takže vyzkouším.
Děkuji.

 
Nahoru Odpovědět 22.10.2014 13:40
Avatar
kxmx
Redaktor
Avatar
Odpovídá na smoukey
kxmx:

určitě někde nějak vypisuješ data stylem

SELECT * FROM tabulka WHERE id = ".$_GET['id']."

to co hledáš je podobnej způsob jen klíč podle kterýho hledáš nezískáš z url ale z odeslanýho formuláře a v sql dotazu se pak neptáš přesně na atribut = hodnota ale použiješ like
třeba takhle

SELECT * FROM tabulka WHERE titulek LIKE '".$_POST['titulek']."%'

takže si jen do toho dotazu dostaň hodnotu z formuláře, napiš to bez sql injection a primitivní vyhledávání je na světě

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 22.10.2014 13:53
Avatar
smoukey
Člen
Avatar
Odpovídá na kxmx
smoukey:

Takto vypadá nyní skript na vyhledávání.

$vyraz=mysql_real_escape_string($_POST['vyhledavani']);


$uzivatele=mysql_query("select username, name from users where ");
$vysledek_uzivatele=mysql_fetch_array($uzivatele);
if (mysql_error()){
        echo mysql_error();
}
while ($vysledek_uzivatele){
        echo $vysledek_uzivatele['username'];
        echo '<br />';
        echo $vysledek_uzivatele['name'];
}

Mohlo by to vypadat takto?

$uzivatele=mysql_query("select username, name from users where username LIKE '%".$vyraz."%' OR name LIKE '%".$vyraz."%' ");
 
Nahoru Odpovědět 22.10.2014 15:41
Avatar
smoukey
Člen
Avatar
smoukey:

Odpovím si sám. Ano takto to funguje.

 
Nahoru Odpovědět 22.10.2014 23:46
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 13 zpráv z 13.