Autor Zpráva
fulltext
Profil *
Ahoj, v databázi mám záznamy v takovýchto tvarech:
<div id = "zdroj">Zdroj: http://www.mapy.cz</div>;
<h2 class = "velky">Historie</h2>
<h3>Školy</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc elementum velit eu mauris volutpat blandit. Aenean commodo semper libero, sit amet facilisis erat hendrerit non.</p>
......

Co když ale někdo zadá do vyhledávání třeba class (h2, id,...)? Jak to máte vyřešené Vy? Správně by se html tagy asi měly ignorovat ne? Díky
MCKAY
Profil
fulltext:
Měli, odstraníš je pomocí
<?php strip_tags(); ?>
, jestli ti jde o to, aby ti to vyhledávalo, když máš někde v textu ukázku zdrojového kódu, tak v něm je to převedené na entity, takže žádný strach;-)
fulltext
Profil *
MCKAY:
Používám vyhledávání od Vrány a pokud hledám slovo velky, které se vyskytuje jen v tagu <h2 class = "velky"> a jinde v textu ne, tak se zobrazí článek i když bych to nechtěl...
$hledej = "velky";
$sql = "SELECT *
    FROM vyhledavani
    WHERE MATCH(nadpis, clanek) AGAINST ('$hledej' IN BOOLEAN MODE)                   
    ORDER BY 5 * MATCH(nadpis) AGAINST ('$hledej') + MATCH(clanek) AGAINST ('$hledej') DESC
"; 


MCKAY:
"odstraníš je pomocí"
<?php strip_tags(); ?>

Kde to aplikovat v mém kódu?
Díky
fulltext
Profil *
Neví někdo?

Ještě mám další otázku:

Do databáze by se měly ukládat i odkazy na její obsah že? Např. tabulka novinky (id, datum, novinka), která obsahuje několik novinek, by měla také obsahovat sloupec odkaz pro zobrazení naleznuté novinky.
Joker
Profil
fulltext:
Potíž je v tom, že je potřeba nejdřív odstranit tagy, na což má zabudovanou funkčnost PHP, a poté fulltextově vyhledat v tom zbytku, na což má zabudovanou funkčnost MySQL.
Takže nejspíš bude potřeba si doprogramovat odstranění HTML tagů do tagy odstranit přímo v MySQL.
edit: "doprogramovat" bylo možná trochu silné a zavádějící vyjádření, možná by k uspokojivým výsledkům stačilo nahrazení pomocí regulárního výrazu.

Do databáze by se měly ukládat i odkazy na její obsah že?
To záleží jak je to udělané. Často se pro odkazování používá přímo ID (něco jako ukaz.php?id=1)
fulltext
Profil *
Snažím se vyhledávat ze 2 tabulek, ale pokud se slovo najde v jedné z nich, u druhé se vypíšou všechny záznamy...
Tabulka sekce (id, sekce, text), tabulka novinky (id, datum, novinka)
$sql = "SELECT * FROM sekce, novinky WHERE MATCH(sekce.sekce, sekce.text, novinky.novinka) AGAINST ('$search' IN BOOLEAN MODE)";

$vysledek = mysql_query($sql);  
  while ($zaznam = mysql_fetch_assoc($vysledek)) {
      echo "Sekce: ". $zaznam['sekce'] . "<br>";
      echo "Novinka: ". $zaznam['novinka'] . "<br>";
  }

Jak to udělat správně? Už se v tom strašně plácám... Díky
Joker
Profil
No, jestli se nezávisle na sobě snažíte hledat v sekcích a v novinkách (tj. výsledkem mají být na sobě nezávislé seznamy sekcí obcahujících hledaný termín a novinek obsahujících hledaný termín), udělejte to jako dva dotazy.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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