Vyhledávač na webu

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Uživatelský avatar
Stene
Level 6
Level 6
Příspěvky: 3124
Registrován: 11 úno 2009 15:44
Bydliště: Jihlava
Kontaktovat uživatele:

Vyhledávač na webu

Příspěvek od Stene »

Ahoj, snažím se o vyhledávač na webu, ale vůbec nevím, jak bych to měl dát do kupy ->

<?php
include '../db.php';

$objekt_vysledku = mysqli_query($db_spojeni, "SET NAMES 'UTF8'");

$objekt_vysledku = mysqli_query($db_spojeni,
'SELECT');

while ($radek = mysqli_fetch_array($objekt_vysledku))
{
echo 'vypis dat';
}

mysqli_free_result($objekt_vysledku);

if ($db_spojeni)
mysqli_close($db_spojeni);
?>

Potřeboval bych, aby po zadaném textu do formuláře se vypsala všechna zadaná slova. Nejdřív by se měly vypsat výskyty ve sloupci nadpis a až poté výskyty ve sloupci "text".. Poradí někdo?

klasická tabulka -
CREATE TABLE IF NOT EXISTS `texty` (
`id` int(11) NOT NULL auto_increment,
`nadpis` varchar(100) collate cp1250_czech_cs default NULL,
`text` varchar(5000) collate cp1250_czech_cs default NULL,
`info` varchar(100) collate cp1250_czech_cs default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1250 COLLATE=cp1250_czech_cs AUTO_INCREMENT=3 ;
Uživatelský avatar
jackm
Level 4.5
Level 4.5
Příspěvky: 1720
Registrován: 19 srp 2008 19:42
Kontaktovat uživatele:

Re: Vyhledávač na webu

Příspěvek od jackm »

http://php.vrana.cz/fulltextove-vyhledavani-v-mysql.php
Formulář v HTML udělej třeba <forma method="GET" action="soubor.php"><input type="text" name="search" /></form>.
Uživatelský avatar
X
Elite Level 12.5
Elite Level 12.5
Příspěvky: 19360
Registrován: 22 kvě 2007 11:34
Kontaktovat uživatele:

Re: Vyhledávač na webu

Příspěvek od X »

Co tohle?

Everyfind 6.0.2-umožní vytvoření vyhledávače pro váš web, intranet, CD, DVD nebo jakoukoliv dokumentaci.zip
Uživatelský avatar
jackm
Level 4.5
Level 4.5
Příspěvky: 1720
Registrován: 19 srp 2008 19:42
Kontaktovat uživatele:

Re: Vyhledávač na webu

Příspěvek od jackm »

X:lepší je PHP a MySQL, to by tam mohl rovnou hodit google formulář. :twisted:
Uživatelský avatar
Stene
Level 6
Level 6
Příspěvky: 3124
Registrován: 11 úno 2009 15:44
Bydliště: Jihlava
Kontaktovat uživatele:

Re: Vyhledávač na webu

Příspěvek od Stene »

Tak nějak mi to nejde do kupy..


formular.hml
<form method="GET" action="vyhledavac.php">
<input type="text" name="search">
</form>.


vyhledavac.php
<?php
include 'db.php';

$search = mysql_real_escape_string($_GET["search"]);
$result = mysql_query("
SELECT *
FROM texty
WHERE MATCH(nadpis, text) AGAINST ('$search' IN BOOLEAN MODE)
ORDER BY 5 * MATCH(nadpis) AGAINST ('$search') + MATCH(text) AGAINST ('$search') DESC
");


while ($radek = mysql_fetch_array($result))
{
echo '',$radek['nadpis'],'<br>';
echo '',$radek['text'],'';

}

if ($db_spojeni)
mysql_close($db_spojeni);
?>

db.php
$db_spojeni = mysql_connect
('mysql5-4', '------', '------', '------');
Naposledy upravil(a) Stene dne 09 lis 2010 09:04, celkem upraveno 2 x.
Uživatelský avatar
Stene
Level 6
Level 6
Příspěvky: 3124
Registrován: 11 úno 2009 15:44
Bydliště: Jihlava
Kontaktovat uživatele:

Re: Vyhledávač na webu

Příspěvek od Stene »

chyby jsou o příspěvek výš na vyznačených řádcích ->

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/velkyberanov-fotbal.cz/subdomeny/plastoma/vyhledavac.php on line 23
Uživatelský avatar
jackm
Level 4.5
Level 4.5
Příspěvky: 1720
Registrován: 19 srp 2008 19:42
Kontaktovat uživatele:

Re: Vyhledávač na webu

Příspěvek od jackm »

Zkus toto pozměnit.
$result ="SELECT * FROM texty WHERE MATCH(nadpis, text) AGAINST ('$search' IN BOOLEAN MODE) ORDER BY 5 * MATCH(nadpis) AGAINST ('$search') + MATCH(text) AGAINST ('$search') DESC";
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Vyhledávač na webu

Příspěvek od CZechBoY »

vždy ke query dávej na konec před středník or Die(MySQL_Error()) když to ještě není web, na který koukají lidi(prostě není dodělanej) pak ti to vypíše chybu v SQL dotazu ;-) pokud je chyba v SQL dotazu zkus něco zkoušet i v PMA třeba
já mám hledání lidí udělaný přes WHERE jmeno LIKE '%jmeno%' OR prijmeni LIKE '%neco%' atd.
příkazy MATCH a AGAINST mi nic neříkají a nepoužívám je, ale MATCH by mohlo vyhodit počet shodných znaků ne?
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Uživatelský avatar
Stene
Level 6
Level 6
Příspěvky: 3124
Registrován: 11 úno 2009 15:44
Bydliště: Jihlava
Kontaktovat uživatele:

Re: Vyhledávač na webu

Příspěvek od Stene »

Jak bys udělal SQL dotaz?
Potřebuju, aby se vyhledal zadaný text ve dvou sloupcích (nadpis, text) a pak se vypsaly (nejdřív by se vypsal ten výraz ze sloupce nadpis a potom až ze sloupce text)..
Potom by bylo fajn, aby se vypsal ze sloupce text ten výraz a před ním 50znaků a za ním 50znaků, ale kdyby to bylo složitý tak na to kašleme..
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Vyhledávač na webu

Příspěvek od CZechBoY »

hodil bych tam WHERE nadpis LIKE '%$promenna%' OR text LIKE '%$promenna%' vyhodí ti to miliony výsledků ;-)
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Uživatelský avatar
Stene
Level 6
Level 6
Příspěvky: 3124
Registrován: 11 úno 2009 15:44
Bydliště: Jihlava
Kontaktovat uživatele:

Re: Vyhledávač na webu

Příspěvek od Stene »

Tak byl problém v souboru db.php.. ač to ještě do teď nechápu..

Ještě bych rád radu, jak ošetřím aby se v DB vyhledávala malá i velká písmena (například zadaný text "okno" nic nenajde, protože v db je to uložené jako "Okno"...

A ještě mě napadlo jedno. Když ve sloupci "text" bude daný výraz, šlo by, aby se vypsal na webu ten výraz a před něj se vypsalo 50znaků a za něj 50znaků celého textu? Takže aby se ten text ořízl okolo daného výrazu? Pokud je to ovšem nějak složité, vykašlal bych se na to..
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: 20 srp 2008 14:02
Bydliště: Brno
Kontaktovat uživatele:

Re: Vyhledávač na webu

Příspěvek od CZechBoY »

v sQL přidej LCASE(sloupec)
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW
Odpovědět

Zpět na „Programování a tvorba webu“