Autor Zpráva
fulltext
Profil *
Nevíte z jakého důvodu mi nefunguje u fulltextového hledání operace AND a OR? Mám 2 články a po zadání slov dvacetina AND chripka by se mi nemělo nic zobrazit, protože slovo dvacetina je pouze v prvním článku a chripka jen v druhém. Ale výsledkem jsou oba články... Chybí mi něco v dotazu?

$sql = "SELECT *
      FROM clanky
      WHERE MATCH(uvod,clanek) AGAINST ('$hledej' IN BOOLEAN MODE)                   
  ";
Kajman_
Profil *
A kde jste našel, že by tam takhle mělo and fungovat? V dokumentaci je zmíněn prefix +.
fulltext
Profil *
Kajman:
No myslel jsem si to... Viděl jsem to u pár vyhledávání. Ale díky za objasnění.
fulltext
Profil *
Jak prosím Vás převést
$ft_min_word_len = mysql_result(mysql_query("SHOW VARIABLES LIKE 'ft_min_word_len'", $this->link ), 0, 1);

do mysqli? Fce mysql_result v mysqli není.
Kajman_
Profil *
Zkuste použít např. http://www.php.net/manual/en/mysqli-result.fetch-row.php
fulltext
Profil *
Kajman:
Díky
fulltext
Profil *
Ahoj, jak udělat aby se vyhledalo totéž pokud zadám např. občanský průkaz, OP, občanka atd. Jiný příklad pas, cestovní doklad,...

Je nějaké řešení?
Díky
Kajman_
Profil *
Nativní fulltext v mysql synonyma nepodporuje. Musíte si asi naplnit nějakou svou tabulku se slovníkem a pak při dotazu kouknout na podobná slova a ty zahrnout do stávajícího vyhledávání.

Nebo si vyhledávání naprogramovat úplně od píky, přesně podle Vašich představ. K inspiraci by mohlo posloužit
http://www.root.cz/clanky/php-pro-experty-inteligentni-vyhledavani/
http://www.root.cz/clanky/php-pro-experty-vyhledavani-2-prakticka-realizace/
fulltext
Profil *
Kajman:
Ok, díky. Ale za boha nemůžu přijít na to, jak to nejjednodušeji udělat. Budu mít tabulku
synonyma [id, slovo, cisloSlova] = [1, občanský průkaz, 1], [2, op, 1], [3, občanka, 1] 

$podobne = array();
  $sql = "SELECT * FROM synonyma WHERE slovo ='$hledej'"; 
  $result = mysqli_query($spojeni, $sql);  
  while ($row = mysqli_fetch_assoc($result)) {
      $cisloSlova = $row['cisloSlova'];
  }
  $sql = "SELECT * FROM synonyma WHERE cisloSlova ='$cisloSlova'"; 
  $result = mysqli_query($spojeni, $sql); 
  while ($row = mysqli_fetch_assoc($result)) {
      $podobne[] = $row['slovo'];
  }

A teď budu mít v poli $podobne synonyma hledaného slova. Jak ale teď použít fulltext? Někdy bude pole prázdné, někdy bude mít větší počet prvků...
Takhle vyhledávám v novinkách (ještě před aplikací synonym), jinak toto se ještě opakuje pro diskuzi a jiné sekce:
echo "<p>Aktuality:</p>";
  $sql = "SELECT * FROM novinky WHERE MATCH(nadpis,novinka) AGAINST ('$hledej' IN BOOLEAN MODE)";   
  $result = mysqli_query($spojeni, $sql);  
  $zaznamu = mysqli_num_rows($result);
    if ($zaznamu == 0){
        echo "Nenalezeno.<br>"; 
    }
    else {
        while ($row = mysqli_fetch_assoc($result)) {
            $id = $row['id'];
            echo "<a href='novinky.php?id=$id'>" . $row['nadpis'] . "</a><br>";
        } 
    }

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: