Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

fulltext.php

Fulltextové hledání v MySQL

php

<?php
$host = 'localhost';
$name = 'test';
$user = '';
$pass = '';
$options=array(
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
);
$db=new PDO("mysql:host=$host;dbname=$name", $user, $pass, $options);

try {
    $db->query("CREATE TABLE IF NOT EXISTS full(
        id INTEGER PRIMARY KEY AUTO_INCREMENT,
        titulek TEXT,
        clanek TEXT,
        FULLTEXT (titulek, clanek)
    )
    CHARACTER SET utf8 COLLATE utf8_general_ci");
    $insert = $db->prepare("INSERT INTO full(titulek, clanek) VALUES (?, ?)");
    $insert->execute(array('Muži', 'Franta, Pavel, Jindra a Josef'));
    $insert->execute(array('Ženy', 'Alena, Barbora, Cecilka a Dana'));
    $insert->execute(array('Koně', 'Příšerně žluťoučký kůň úpěl ďábelské ódy'));
    $select = $db->prepare("SELECT * FROM full WHERE MATCH(titulek, clanek) AGAINST(?)");
    echo "<table>\n";
    foreach (array('ódy', 'Barbora', 'jinDra') as $klic) {
        $select->execute(array($klic));
        foreach ($select->fetchAll(PDO::FETCH_OBJ) as $row) {
            echo "<tr><td>$klic:</td><td>$row->titulek</td><td>$row->clanek</td></tr>\n";
        }
    }
    echo "</table>\n";
} catch (Exception $e) {
    echo $e->getMessage(), "\n";
}

Neformátovaný

Přidáno: 4.1.2014
Expirace: Neuvedeno

Avatar
Autor: Kit
Aktivity