• Jak vytvořit vyhledávací algoritmus pro několik slov v PHP z databáze. Jak vytvořit víceslovný vyhledávací algoritmus v PHP z databáze What man search php author id

    V tomto článku se dozvíte, jak vytvořit vyhledávání obsahu databáze pro váš web. Tento algoritmus podporuje vyhledávání více klíčových slov. Algoritmus vybere řádky databázové tabulky, které obsahují všechna zadaná klíčová slova.

    Tady je stůl zprávy, který obsahuje následující pole: id, titul A obsah:

    Je vyžadováno vyhledávání v terénu obsah v naší databázi, která se skládá z následujících sloupců, viz příklad na obrázku výše. Pojďme k implementaci. Nejprve si vytvoříme stránku, na které otestujeme práci. Bude obsahovat formulář se vstupním polem pro klíčové slovo a tlačítkem „hledat“:

    Výpis html kódu:

    Vyhledávání v databázi

    V atributech formuláře zadáváme cestu k handleru obsahujícímu algoritmus a metodu post.

    K předání pole vybraných prvků používáme relaci.

    Za tímto účelem jej spustíme na samém začátku stránky.

    Pro výstup použijeme funkci print_r().

    Aby se výsledek po opětovném načtení stránky nezobrazil podruhé, použijte odstaveno zabijeme relaci.

    Vytvoříme handler hledat.php. Nejprve spusťte relaci a připojte se k databázi:

    "localhost", "dbname" => "ggwp", "user" => "ggwp", "password" => "123456",); $dsn = "mysql:host=($params["host"]);dbname=($params["dbname"])"; $db = nové PDO($dsn, $params["uživatel"], $params["heslo"]); $db->exec("názvy sad utf8"); ?>

    Další informace o připojení k databázi prostřednictvím CHOP viz tento článek.

    Činnost algoritmu je znázorněna na obrázku:

    Rozeberme si výběr podle prvního slova, jako příklad použijeme vyhledávací dotaz „jak udělat web“:

    dotaz($sql); $result->setFetchMode(PDO:: FETCH_ASSOC); $id_mass = pole(); $i=1; while ($row=$result->fetch()) ( $id_mass[$i] = $row["id"]; $i++; ) $id_count = count($id_mass); ?>

    První ke změně $str získat řetězec z formuláře POŠTA. Tento řádek pomocí funkce rozdělíme na slova oddělená mezerou exodovat a spočítat počet slov. Provedeme dotaz, ve kterém zkontrolujeme přítomnost prvního slova ve sloupci obsah. Vytvoříme prázdné pole a zapíšeme do něj hodnoty získané jako výsledek výběru dotazu. Zapisujeme se $id_count počet přijatých položek.

    dotaz($sql); $result->setFetchMode(PDO:: FETCH_ASSOC); $vysledek->execute(); $id_mass2 = pole(); $row=$result->fetch(); $temp = $řádek["id"]; if($temp!=$id_mass[$j]) ( $id_mass[$j] ​​​​= -1; ) ) ?>

    Tato část algoritmu funguje na principu „siftingu“. Řekněme, že v databázi je deset článků. Po vzorkování podle prvního slova dostaneme idčlánků, ve kterých je slovo "jak", takových článků bylo šest. Dále hledáme druhé slovo mezi těmito šesti články, čímž zužujeme rozsah hledání. Tato iterace ponechává čtyři články, které obsahují slova „jak“ a „dělat“. V poslední iteraci mezi zbývajícími čtyřmi články hledáme slovo „site“. Po tomto průchodu dostáváme id jeden jediný článek, který obsahuje všechna klíčová slova.

    Počet iterací se rovná počtu slov ve vyhledávacím dotazu. Konečná přijatá částka id může být cokoliv, v závislosti na dotazu a obsahu databázové tabulky.

    Pokud v důsledku provedení dotazu ve smyčce dostaneme id(proměnná tepl) rovný jedné z id předchozí ukázka ( id_mass), pak toto id necháme beze změny. V opačném případě prvek přiřadíme id_mass[j] hodnotu -1, čímž se vyloučí ze zpracování.

    Po dokončení smyček získáme pole z id, ve kterém byla nalezena klíčová slova a -1. Dát uživateli jen to potřebné id, používáme cyklus, který kontroluje, aby byly vyřazeny všechny prvky rovné -1. Zbývající prvky předáme do pole relace:

    Funkce záhlaví slouží k přesměrování klienta na stránku vyhledávání.

    V důsledku provedených akcí jsme obdrželi vyhledávací funkci pro tabulku databáze. S menšími úpravami lze tento algoritmus použít k načtení a prohledání libovolného pole v jakékoli databázi.

    Viz také další články o MVC

    Jednou z nejoblíbenějších a nezbytných funkcí na jakémkoli webu je vyhledávání, implementované pomocí speciálního formuláře. Tato funkce umožňuje návštěvníkům rychle najít na webu obsah, který je zajímá.

    Dnes vám chceme říci, jak vyhledávat na webu pomocí speciálního formuláře, který bude dotazovat databázové tabulky a zobrazovat informace o aktuálních manažerech na webu. Dozvíte se, jak vytvořit databázovou tabulku, která bude obsahovat informace o aktuálním kádru.

    Vyvíjejte vyhledávací formuláře pomocí PHP a seznamte se s SQL ( strukturovaný dotazovací jazyk) je speciální jazyk pro shromažďování, záznam a úpravu informací obsažených v databázích. Než začnete, doporučujeme vám stáhnout soubory projektu.

    Co budete potřebovat

    • Databázový nástroj MySQL.
    • Lokální nebo vzdálený server s podporou PHP.
    • Textový editor.

    Vytvoření databáze

    Pokud si nejste zcela jisti, že si s databází na svém hostingu poradíte, kontaktujte hostitele s žádostí o pokyny nebo pomoc. Po vytvoření databáze ji budete muset připojit, vytvořit tabulku a zapsat do ní potřebná data.

    Nejoblíbenějším nástrojem pro správu MySQL je PHP My Admin , tento nástroj bude pro našeho dnešního průvodce stačit.

    Vytvořte tabulku

    Naše tabulka by měla být vytvořena v následujícím formátu:

    název sloupce datový typ Délka Null or Not Null primární klíč? Automatické zvýšení
    ID INT 1 Nenulový Ano Ano
    Jméno Varchar 50 Nenulový Ne Ne
    příjmení Varchar 50 Nenulový Ne Ne
    E-mailem Varchar 50 Nenulový Ne Ne
    Telefonní číslo Varchar 15 Nenulový Ne Ne

    Databázová tabulka se skládá ze sloupců a řádků, stejně jako v Excelu. První sloupec umožňuje identifikovat data podle názvu. Dále následuje sloupec Datové typy (datový typ), který nám udává typ dat obsažených ve sloupci. V poli Délka (Length) udává maximální velikost paměti (úložiště) pro sloupec tabulky. Používáme proměnné, které poskytují větší flexibilitu. Jinými slovy, pokud je délka celého jména menší než 50 znaků, bude obsazena pouze část přiděleného prostoru.

    A mezi personálními údaji nemohou být prázdné hodnoty ( null, prázdný). První řádek je zvýrazněn žlutě, protože sloupec ID je naším hlavním klíčem. Primární klíč v databázi zaručuje, že každý záznam bude jedinečný. Tento sloupec je také automaticky inkrementován, což znamená, že každému záznamu v naší databázi bude automaticky přiděleno jedinečné číslo.

    Do tabulky zapisujeme zástupce zaměstnanců

    Jakmile pochopíte tabulku, začněte ji plnit daty. 6 záznamů stačí k tomu, aby se postup zafixoval v mysli. Zde je můj vlastní příklad:

    ID sloupce Jméno příjmení E-mailem Telefonní číslo
    2 Ryane komorník [e-mail chráněný] 417-854-8547
    3 Brent Callahan [e-mail chráněný] 417-854-6587

    Vývoj formy

    Chcete-li vytvořit formulář pro vyhledávání na webu přes Google, otevřete jakýkoli vhodný textový editor. Doporučuji používat bezplatný PSPad. Můžete použít jakýkoli textový editor, který má zvýraznění syntaxe. To značně usnadní proces psaní a ladění PHP kódu. Když vytváříte stránku pro vyhledávací formulář, nezapomeňte ji uložit ve formátu .php, jinak nebude kód PHP správně analyzován. Jakmile dokument uložíte, zkopírujte do něj následující označení:

    Vyhledávání kontaktů:

    Podrobné vyhledávání kontaktů

    Můžete vyhledávat podle jména nebo příjmení

    Pokud se vyznáte v jazyce HTML, pak by vám mělo být vše jasné alespoň po úvodní značku formuláře. Uvnitř tohoto tagu je nejdůležitější prvek celého kódu – atribut action. Jako akci našeho formuláře jsme zadali název našeho souboru a poté použili řetězec dotazu „ jít”.

    Kontrola kritérií

    Když uživatel zadá jméno nebo příjmení a poté klikne na tlačítko Odeslat, formulář odešle data sám sobě a připojí řetězec dotazu „ jít". V tomto okamžiku kontrolujeme přítomnost řetězce dotazu go. Pokud je výsledek kladný, zobrazíme výsledky vyhledávání.

    Před zobrazením požadovaných výsledků musíme znovu zkontrolovat: (1) byl formulář odeslán, (2) obsahoval řetězec dotazu hodnotu go, (3) byl hledaný výraz zadán malými nebo velkými písmeny? Pokud žádná z kontrol nedává pozitivní výsledek ( skutečný), nejsme povinni podnikat žádné kroky.

    Nejprve přidáme za uzavírací značku malý blok PHP kódu pro vyhledávání na webu.:

    Nejprve otevřeme blok PHP kódu s tagem „“.

    Jakýkoli PHP kód v tomto páru značek bude spuštěn serverem. Poté zkontrolujeme, zda byl formulář odeslán:

    Zadejte hledaný výraz

    "; } ?>

    Použijeme vestavěnou funkci isset, která vrací boolovu hodnotu, a vložíme do ní pole $_POST. Logický výraz v programování nám umožňuje získat buď true nebo false .

    Pokud tedy funkce vrátí true , pak byl formulář odeslán a musíme pokračovat ve spouštění kódu dále. Pokud funkce vrátí false , zobrazí se chybová zpráva. Uložte veškerý napsaný kód do souboru search_submit.php.

    Zadejte hledaný výraz

    "; } } } ?>

    Do toho hlavního vnoříme další podmíněný booleovský výraz, ale tentokrát použijeme pole $_GET spolu s hodnotou „ jít". Uložte změny do souboru search_go.php.

    Nyní se musíme ujistit, že návštěvníci mohou zadat první písmeno v řetězci dotazu pouze velkými písmeny nebo pouze malými písmeny. Musíme také poskytnout způsob, jak vzít v úvahu vyhledávací kritéria zadaná návštěvníkem. Nejlepší způsob, jak ověřit vstup návštěvníků, je pomocí regulárního výrazu:

    Do našich dvou vnoříme další podmíněný booleovský výraz. Tentokrát k ověření vstupu používáme regulární výraz. Používáme vestavěnou funkci preg_match se dvěma parametry: regulárním výrazem a polem formuláře, na které se má ověření aplikovat.

    V našem případě to bude pole " Jméno"( název). Pro načtení parametrů vyhledávání zadaných návštěvníkem vytvoříme proměnnou $name a navážeme k ní hodnotu POST s názvem pole z formuláře, který bude použit v SQL dotazu. Nyní jsme implementovali: (1) odeslání dat formuláře, (2) řetězec dotazu obsahuje hodnotu go a (3) návštěvník zadal buď velké nebo malé první písmeno. A všechny tyto kontroly probíhají ještě před provedením změn v databázi. Uložte všechny změny.

    Připojit, vybrat, dotazovat a vrátit výsledky z databázové tabulky

    Chcete-li získat data z tabulky, musíte se nejprve připojit k serveru ve skriptu pro vyhledávání na webu. K tomu používáme následující kód:

    ", "") nebo zemřít (" Nemohu se připojit k databázi, protože: " . mysql_error()); else( echo "

    Zadejte hledaný výraz

    "; } } }?>

    Vytvoříme proměnnou $db a svážeme ji s vestavěnou funkcí MySQL mysql_connect , která přebírá tři parametry: server s databází ( localhost, pokud pracujete lokálně), přihlašovací jméno a heslo.

    Poté spustíme vestavěnou PHP funkci die , která zastaví další spouštění kódu, pokud není připojení k databázi. A vytiskněte informace o chybě spuštěním vestavěné funkce MySQL mysql_error , která vrátí důvod chyby. Uložte soubor search_connectdb.php.

    Zadejte hledaný výraz

    "; } } } ?>

    Vytvořte proměnnou s názvem mydb a svažte ji s vestavěným Funkce MySQL mysql_select_db a poté zadejte název databáze, kterou jsme vytvořili dříve. Dále dotazujeme databázovou tabulku pomocí SQL dotazu s proměnnou name obsahující parametry vyhledávání zadané návštěvníkem:

    Zadejte hledaný výraz

    "; } } } ?>

    Při dotazu na databázovou tabulku vytvoříme proměnnou $sql a navážeme ji na řetězec obsahující SQL dotaz. K načtení hodnot ze sloupců id a jména a příjmení z tabulky kontaktů používáme příkaz SELECT. K zúžení vyhledávání pak použijeme klauzuli WHERE spolu s hodnotami jména a příjmení.

    Společně s operátorem LIKE používáme znak procenta (%) - speciální znak, který vrací 0 nebo více znaků, a také proměnnou název z hledaného řetězce. Výsledkem je LIKE ( v kombinaci se zvláštní postavou) najde jakýkoli odpovídající název v databázové tabulce. Celý proces lze popsat následovně: Z tabulky kontaktů vybereme jména a příjmení, která odpovídají těm, která zadal návštěvník". Uložte soubor search_query.php.

    Zadejte hledaný výraz

    "; } } } ?>

    Vytvoříme proměnnou $result a přiřadíme k ní hodnotu funkce mysql_query() a vložíme ji do $query. Nyní je náš dotaz uložen v proměnné result. Pro výstup výsledku v PHP vytvoříme smyčku a poté vypíšeme data v neuspořádaném seznamu:

    n"; echo"

  • " . "
  • n"; echo"";)) else( echo "

    Zadejte hledaný výraz

    "; } } } ?>

    Nejprve vytvoříme while smyčku, v ní vytvoříme proměnnou s názvem row a inicializujeme ji návratovou hodnotou funkce mysql_fetch_array, která přebírá výslednou proměnnou obsahující náš SQL dotaz. Uvnitř cyklu while přiřadíme každé hodnotě sloupce hodnotu proměnné se stejným názvem. Hodnoty pak vypíšeme do neuspořádaného seznamu.

    Zde je třeba poznamenat dvě důležité věci: (1) uvnitř smyčky while nemusíte přiřazovat hodnoty proměnným pole řádků, protože hodnoty lze převzít přímo z pole řádků; (2) značka ukotvení, kterou používáme v názvu souboru spolu s id a hlavním klíčem. Důvodem je, že mnoho položek vyhledávání zpočátku nic nezobrazuje.

    Protože jméno a příjmení zobrazujeme pouze přidáním ID na konec naší kotvící značky, můžeme ID použít pro další dotaz, který zobrazí další informace o zaměstnancích. Uložte soubor a otestujte formulář PHP pro vyhledávání na webu ( search_display.php).

    Odstraňte záložky

    Výsledky jsou zobrazeny jako neuspořádaný seznam, ale podstatou je, že nepotřebujeme karty. Chcete-li se toho zbavit, přidejte následující pravidlo CSS na úplný začátek souboru in head :

    Vyhledávání podle písmen

    Implementace hledání kouzla vyžaduje pouze několik řádků kódu navíc. Přidejme tuto pohodlnou funkci pro návštěvníky. Budou tak moci vyhledat zástupce zaměstnanců podle písmen obsažených ve jménu nebo příjmení.

    Za koncovou značku formuláře přidejte následující řádek kódu:

    A | b | K

    Svážeme štítek na řetězec dotazu pomocí kotvy a nastavte jej na konkrétní písmeno. Abychom mohli implementovat funkci vyhledávání pravopisu, musíme přidat následující kód hned za uzavírací složenou závorku v původním skriptu, jak je znázorněno níže:

    )//Konec skriptu vyhledávacího formuláře if(isset($_GET["by"]))( $letter=$_GET["by"]; //Připojování k databázi $db=mysql_connect ("název serveru", " uživatelské jméno" , "heslo") nebo zemřít ("Nemohu se připojit k databázi, protože: " . mysql_error()); //-Vyberte databázi $mydb=mysql_select_db("vašeDatabáze"); //-Dotaz na databázi table $sql="SELECT ID, First Name, LastName FROM Contacts WHERE FirstName LIKE "%" . $letter . "%" OR LastName LIKE "%" . $letter ."%""; //-Spustit dotaz funkce MySQL Query $ result=mysql_query($sql); //-Výsledky počítání $numrows=mysql_num_rows($result); echo "

    " .$numrows ." nalezeny výsledky pro " . $letter."

    "; //-Spusťte smyčku a seřaďte výsledky while($row=mysql_fetch_array($result))( $FirstName =$row["FirstName"]; $LastName=$row["LastName"]; $ID=$ row[ "ID"]; //-Zobrazení výsledku v poli echo "
      n"; echo"
    • " . "" .$FirstName . " " . $LastName ."
    • n"; echo"
    "; } }

    Zde jsme změnili čtyři úryvky kódu skriptu pro vyhledávání na webu:

    • Použijeme funkci isset() a vložíme do ní pole $_GET a poté zkontrolujeme hodnotu by;
    • Vytvořte proměnnou $písmeno a inicializujte její hodnotu pomocí pole $_GET;
    • Přidat proměnné písmeno do SQL dotazu;
    • Proměnnou písmeno specifikujeme uvnitř výrazu, ve kterém dostaneme spočítaný počet řádků.

    Uložte soubor search_byletter.php a zkontrolujte výsledek.

    Vyhledejte konkrétního zaměstnance

    Chcete-li zobrazit informace o zbytku personálu, které jsou předávány prostřednictvím jedinečného ID uvnitř našeho odkazu, musíme přidat následující kód hned za uzavírací složenou závorku ve skriptu písmen, jak je znázorněno níže:

    )//Konec skriptu if(isset($_GET["id"]))( $contactid=$_GET["id"]; //Připojování k databázi $db=mysql_connect ("název serveru", "uživatelské jméno" , " password") nebo zemřít ("Nemohu se připojit k databázi, protože: " . mysql_error()); //-vyberte databázi pro použití $mydb=mysql_select_db("yourDatabase"); //- Dotaz na databázi table $sql="SELECT * FROM Contacts WHERE ID=" .$contactid; //- Spustit dotaz na funkci mysql_query() $result=mysql_query($sql); //- Spustit smyčku a seřadit výsledky while($row=mysql_fetch_array ($result))( $FirstName =$row["FirstName"]; $LastName=$row["LastName"]; $PhoneNumber=$row["PhoneNumber"]; $Email=$row["E-mail"]; //- Zobrazit výsledek v poli echo "

    "; } }

    Zde jsme změnili čtyři části kódu:

    • Ke kontrole hodnoty ID v poli $_GET používáme funkci isset();
    • Vytvořte proměnnou $contactid a inicializujte ji polem $_GET;
    • V tabulce vyberte vše, co je označeno hvězdičkou * . Hvězdička je zkrácený zápis v SQL, který znamená " dej mi všechny sloupce a řádky z tabulky". Abychom určili, jaké informace se mají zobrazit, zmiňujeme proměnnou contactid na konci příkazu SQL;
    • Zobrazujeme další informace o každém zástupci personálu.

    Uložte soubor search_byid.php a zkontrolujte výsledek.

    Upozorňujeme, že naše funkce fungují podle očekávání. Když do pole zadáte jméno nebo příjmení nebo když vyberete písmeno jako hypertextový odkaz, zobrazí se pouze jména zaměstnanců. Pokud na odkaz umístíte ukazatel myši, ve stavovém řádku uvidíte jedinečné ID. Pokud kliknete na konkrétní osobu, změní se adresní řádek a zobrazí se další informace o tomto zaměstnanci.

    SQL injekce

    Důvod, proč jsme do našeho vyhledávacího pole přidali regulární výraz, je ten, že nikdo nemůže manipulovat s naším SQL dotazem. V minulosti byl tento problém běžný a hackerům se při manipulaci s vaší aplikací dařilo spouštět vlastní SQL dotazy. Pokud bychom například povolili možnost použití apostrofu v našem poli, pak by hacker mohl jednoduše smazat databázi pomocí dotazu:

    „PUSTIT STŮL

    Jak již bylo uvedeno, regulární výraz zajišťuje, že návštěvník může jako první znak zadat pouze malá nebo velká písmena.

    Na závěr

    V dnešním článku jsme se podívali na to, jak provádět vyhledávání na webu, a také na:

    • Vytvářejte databáze a související tabulky;
    • Používejte nástroje pro správu databází, vytvářejte sloupce a zadávejte data;
    • Vyvíjet vyhledávací formuláře založené na PHP, které dokážou kontrolovat vstupní data, přítomnost proměnných v požadavku a také se připojovat k databázi a zobrazovat výsledky z tabulky;
    • Jak chránit vaši aplikaci a databázi před SQL injection.

    Pomocí znalostí získaných z tohoto článku můžete snadno upravit cizí kód a v případě potřeby také rozšířit funkčnost vyhledávacího formuláře.

    Tato publikace je překladem článku " Jak vytvořit funkci vyhledávání pomocí PHP a MySQL» připravil přátelský projektový tým

    Online hudební obchody jako Musikload jsou dnes stále populárnější. V tomto článku vám ukážeme, jak můžete číst metainformace souboru mp3 pomocí PHP, což vám pomůže vytvořit hudební katalog. Tento…

    Nejlepší způsob, jak udržet uživatele na webu, je nechat ho najít to, co hledá. Pokud pro to vytvoříte vhodný systém, úroveň preference vašeho webu poroste a uživatel se určitě vrátí, aby našel to, co ho zajímá.

    Ukážu vám, jak vytvořit jednoduchý, ale funkčně efektivní vyhledávací formulář, který bude sloužit k vyhledávání článků na webu. Výsledky se na stránce objeví bez jakéhokoli opětovného načítání, což je bezpochyby nejlepší způsob prezentace informací.

    Vytvořím 2 soubory: search.php, které budou obsahovat HTML a JavaScript. Druhý soubor, do_search.php, bude obsahovat kód PHP. Začneme vytvářet první soubor:

    PHP, ukázka vyhledávání jQuery

    Zkuste zadat slovo ajax


    Výsledky pro

    V tomto souboru jsme vytvořili normální HTML formulář, který odesílá požadavek POST na back-end, soubor do_search.php.

    select_list($sql); if(count($row)) ( $end_result = ""; foreach($row as $r) ( $result = $r["title"]; $bold = " ". $word.""; $end_result .="

  • " .str_ireplace($word, $bold, $result) ."
  • "; ) echo $end_result; ) else ( echo "
  • Pro váš požadavek nebylo nic nalezeno
  • "; } } ?>

    Kód PHP obsahuje komentáře, které vám usnadní pochopení toho, jak skript funguje. Pokud jsou v databázi shody, zobrazíte je svému uživateli tak, že slova, která uživatel hledal, zvýrazníte tučným písmem.

    Dejme tomu všemu nějaké CSS:

    Body( font-family:Arial, Helvetica, sans-serif; ) *( margin:0;padding:0; ) #container ( margin: 0 auto; width: 600px; ) a ( color:#DF3D82; text-decoration: none ) a:hover ( color:#DF3D82; text-decoration:underline; ) ul.update ( list-style:none;font-size:1.1em; margin-top:10px ) ul.update li( height:30px; border-bottom:#dedede solid 1px; text-align:left;) ul.update li:first-child( border-top:#dedede solid 1px; height:30px; text-align:left; ) #flash ( margin- top:20px; text-align:left; ) #searchresults ( text-align:left; margin-top:20px; display:none; font-family:Arial, Helvetica, sans-serif; font-size:16px; barva: #000; ) .word ( font-weight:bold; color:#000000; ) #search_box ( padding:4px; border:solid 1px #666666; width:300px; height:30px; font-size:18px;-moz- border-radius: 6px;-webkit-border-radius: 6px; ) .search_button ( border:#000000 solid 1px; padding: 6px; color:#000; font-weight:bold; font-size:16px;-moz- border-radius: 6px;-webkit-border-radius: 6px; ) .found ( font-weight: bold; styl písma: kurzíva; barva: #ff0000; ) h2 (pravý okraj: 70px; )

    Takže jste se naučili, jak vytvořit jednoduchý vyhledávací formulář, který funguje bez opětovného načítání stránky. Doufám, že se vám lekce líbila.

    V dnešní lekci se na to podíváme php vyhledávání mysql. Vyhledávacích skriptů je spousta, některé využívají databázi, jiné se obejdou bez ní, existují pokročilé vyhledávání s přesným řazením. Zaměříme se na obvyklé jednoduché vyhledávání, které hledá informace na dvou tabulkách z databáze MySQL.

    První krok. MySQL databáze.

    Vytvoření databáze search_lite, má dvě tabulky zprávy- novinky a vac- volná místa.

    Nastavit oprávnění:

    Přihlásit se - " vykořenit",

    Heslo - "",

    Host - " localhost".

    Skládka novinového stolu.

    Struktura tabulky pro tabulku `news` -- CREATE TABLE IF NOT EXISTS `news` (`id` int(2) NOT NULL, `title` varchar(255) NOT NULL, `text` text NOT NULL, PRIMARY KEY (`id `)) ENGINE=MYISAM DEFAULT CHARSET=cp1251;

    Vysypaný stůl vac - volná pracovní místa.

    Struktura tabulky pro tabulku `vac` -- CREATE TABLE IF NOT EXISTS `vac` (`id` int(2) NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, `text` text NOT NULL, PRIMARY KEY (` id`)) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=3 ;

    Druhý krok. HTML a PHP.

    Připojíme se k databázi. Nastavte podmínku pro proměnnou $hledat, ve kterém není zadán vyhledávací dotaz, nebo má méně než 4 znaky, a také zkontrolujte lomítka a ořízněte proměnnou. Vytvoříme dva dotazy, které v databázi vyhledávají dvě tabulky zprávy A vac podle podmínek vyhledávání v poli text. (Už si můžete vybrat, kolik stolů potřebujete prohledat. Budete mít například tabulky lekce, materiálů, články atd. Můžete také změnit podmínky vyhledávání místo pole text, můžete vybrat pole titul nebo jiné pole.) Poté při zobrazení hledání v proměnné uvedeme, kolik znaků v textu je $symboly. Pokud v tabulkách zprávy A vac Při hledání nebylo nic nalezeno, zobrazujeme zprávu. Pokud je nalezen, vytiskne data ze dvou tabulek zprávy A vac pro daný vyhledávací dotaz.

    Výsledky vyhledávání pro dotaz: $hledat


    "; echo"
    Vyhledávací dotaz není zadán nebo má méně než 4 znaky!

    ";) jinak ( echo "
    Výsledky vyhledávání pro dotaz: $hledat

    "; $search = htmlspecialchars(stripslashes(trim($search))); $sql_news = mysql_query("SELECT id, title, text FROM news WHERE text LIKE "%$search%""); $news = mysql_num_rows($sql_news ); $sql_vac = mysql_query("SELECT id, titulek, text FROM vac WHERE text LIKE "%$search%""); $vac = mysql_num_rows($sql_vac); $najít = $hledat; $symbolls = "80"; if ($news==0 and $vac==0) echo "
    Vašemu vyhledávání \"$search\" neodpovídají žádné výsledky! Odešlete další žádost!

    "; else ( /*News/news - table*/ for($i=1; $news = mysql_fetch_array($sql_news); $i++) ( $search_text = $news["text"]; $search_text = strip_tags($ hledaný_text, "
    "); $search_txt_length = strlen($search_text); $search_first_enter = strpos(strtolower($search_text), strtolower($find)); $pad_left = $search_first_enter - $symbolls; $pad_right = $search_first_enter + $symbolls + 5; if ($pad_right><0) $pad_left = "0"; $search_text = substr($search_text, $pad_left, $pad_right); $search_text = str_replace (strtolower($find), "".strtolower($find)."
    $i. $news
    ...$search_text...
    najdete ve zprávách

    "; ) /*Jobs/vac - table*/ for($i=1; $vac = mysql_fetch_array($sql_vac); $i++) ( $search_text = $vac["text"]; $search_text = strip_tags($search_text ,“
    "); $search_txt_length = strlen($search_text); $search_first_enter = strpos(strtolower($search_text), strtolower($find)); $pad_left = $search_first_enter - $symbolls; $pad_right = $search_first_enter + $symbolls + 5; if ($pad_right>$search_txt_length) $pad_right = $search_txt_length; if ($pad_left<0) $pad_left = "0"; $search_text = substr($search_text, $pad_left, $pad_right); $search_text = str_replace (strtolower($find), "".strtolower($find)."", strtolower($search_text)); echo"
    $i. $vac
    ...$search_text...
    našel na volných místech

    "; } } } } ?>

    Třetí krok. CSS.

    Pojďme si napsat nějaké styly, které budou formovat naše hledání.

    Search_name ( barva: černá; font-size: 18px; ) .search_questions ( color: black; font-weight: bold; font-size: 15px; ) .search_query (color: blue; font-style: Italic; ) .search_error ( barva: červená; font-size: 15px; ) .search_input ( okraj: 1px plná černá; šířka: 500px; výška: 30px; ) .search_word ( color: blue; ) .search_title ( font-size: 20px; color: blue; font-weight: bold; ) .search_text (font-size: 15px; color: black; ) .search_cat (font-size: 12px; color: gray; float: right; margin-top: 20px; )

    Zvažovali jsme s vámi jednoduché php vyhledávání mysql A, které vyhledává informace z databáze. Podle podmínky se používají dvě tabulky, můžete si je přizpůsobit jakýmkoli pohodlným způsobem. Příští lekce bude věnována obdobě jednoduchého vyhledávání, pouze s pokročilými funkcemi.

    28.02.2012 Romčik

    Dobrý den. Pokračujeme ve studiu značek pro šablony WordPress. V minulém článku jsme se podívali na hlavní tagy pro WordPress šablony. Dnes se zaměříme na tagy pro práci s autorem (autory) příspěvků ve WordPressu. Značky autora příspěvku WordPress nám umožňují: zobrazit autora příspěvku, zobrazit odkaz na zdroj autora, zobrazit další informace o autorovi a mnoho dalšího.

    autor()
    Tato značka zobrazuje autora příspěvku. Tag musí být použit uvnitř mechanismu The Loop. Pokud potřebujete získat data pro další zpracování, pak je potřeba použít tag. Může převzít parametr $post-id - id příspěvku.
    Příklad:

    Tento příspěvek napsal

    get_the_author()
    Tato značka vrátí autora příspěvku k dalšímu zpracování. Musí být použito v mechanismu The Loop.
    Příklad:

    the_author_link()
    Tato značka zobrazuje odkaz na web autora. Tato adresa se nastavuje v administrační oblasti WordPressu. Používá se v mechanismu The Loop. Pokud potřebujete získat odkaz na stránky autora pro další zpracování, pak použijte funkci get_the_author_link();
    Příklad:

    Napsáno:

    get_the_author_link()
    Tato funkce vrací odkaz na stránky autora pro další použití.

    the_author_meta()
    Zobrazuje metadata autora. Vyžaduje dva parametry $field, $userID, kde $field může nabývat následujících hodnot:

    • uživatelské přihlášení
    • user_pass
    • user_nicename
    • user_email
    • user_url
    • user_registered
    • uživatelský_aktivační_klíč
    • stav_uživatele
    • zobrazovaný_název
    • přezdívka
    • jméno
    • příjmení
    • popis
    • brebentit
    • uživatelská_úroveň
    • uživatelské_jméno
    • uživatelské_příjmení
    • user_description
    • rich_editing
    • zástupce_komentářů
    • admin_color
    • plugins_per_page
    • plugins_last_view

    a $userID je ID uživatele. Pokud je tato funkce použita v mechanismu The Loop, není nutné zadávat $userID.
    Příklad:

    E-mailová adresa pro ID uživatele 25 je

    the_author_posts()
    Zobrazuje celkový počet příspěvků napsaných tímto autorem. Používá se uvnitř mechanismu The Loop.
    Příklad:

    má blogpříspěvky

    the_author_posts_link()
    Zobrazí odkaz na všechny příspěvky autora. Musí být použito v mechanismu The Loop.
    Příklad:

    Další příspěvky od

    wp_dropdown_users()
    Vytvoří rozevírací seznam autorů tohoto zdroje. Jako parametr bere pole $args v následujícím tvaru:

    null, // řetězec "show_option_none" => null, // řetězec "hide_if_only_one_author" => null, // řetězec "orderby" => "display_name", "order" => "ASC", "include" => null, // řetězec "exclude" => null, // řetězec "multi" => false, "show" => "display_name", "echo" => true, "selected" => false, "include_selected" => false, "name" => "user", // řetězec "id" => null, // celé číslo "class" => null, // řetězec "blog_id" => $GLOBALS["blog_id"], "who" => null //řetězec); ?>

    • show_option_all - vyvolá rozevírací html pro výběr všech uživatelů
    • show_option_none – vyvolá rozevírací html, aby nevybral žádného uživatele
    • hide_if_only_one_author - skrýt, pokud existuje pouze jeden uživatel
    • orderby - řazení podle pole, má následující hodnoty: ID, user_nicename, display_name - standardně
    • order - pořadí řazení, může nabývat následujících hodnot: 'ASC' - výchozí, 'DESC'
    • include - čárkami oddělený seznam identifikátorů uživatelů, kteří budou zahrnuti do seznamu. Všechny jsou ve výchozím nastavení povoleny.
    • vyloučit – čárkami oddělený seznam uživatelských ID, která nebudou zahrnuta v rozevíracím seznamu. Ve výchozím nastavení neexistují žádné výjimky.
    • multi - Ignoruje atribut ID u vybraného prvku, výchozí: false.
    • show - které pole se má v seznamu zobrazit, má následující hodnotu: 'ID', 'user_login', 'display_name' - ve výchozím nastavení
    • echo - zobrazit uživatele (true) nebo vrátit výsledek (false) k dalšímu zpracování.
    • selected - id uživatele, který má být vybrán. Výchozí: prázdné.
    • include_selected - vždy obsahuje vybrané ID uživatele. Výchozí: false.
    • jméno je uživatelské jméno, které bude vybráno v rozevíracím seznamu. Výchozí: uživatel.
    • id - atribut vybraného prvku.
    • class - třída vybraného prvku.
    • blog_id – id blogu (pouze pro více stránek). Výchozí: aktuální.
    • kdo – kteří uživatelé se mají dotazovat, aktuálně podporuje pouze autory.

    wp_list_authors()
    Zobrazí seznam autorů stránek jako odkazy na příspěvky. Tato značka volitelně zobrazuje příspěvky každého autora a odkaz na RSS kanál. Jako parametr může mít pole ve tvaru:

    "name", "order" => "ASC", "number" => null, "optioncount" => false, "exclude_admin" => true, "show_fullname" => false, "hide_empty" => true, "echo " => true, "feed" => , "feed_image" => , "feed_type" => , "style" => seznam, "html" => true); ?>

    • orderby – pole používané k řazení výsledků, může nabývat následujících hodnot: name – ve výchozím nastavení email, url, register, id, user_login, post_count
    • order - pořadí řazení, nabývá hodnot: ASC - výchozí, DESC
    • počet - maximální počet uživatelů k zobrazení, výchozí: bez omezení
    • optioncount – zda ​​zobrazit počet příspěvků odeslaných uživatelem či nikoli, přijímá: 1(true) – výchozí nebo 0(false)
    • exclude_admin - vyloučit správce ze seznamu, přijímá 1 (true) - ve výchozím nastavení nebo 0 (false)
    • show_fullname - zobrazuje celé jméno autora (jméno a příjmení), může nabývat dvou hodnot 1(true) a 0(false) - ve výchozím nastavení
    • hide_empty - zobrazit nebo nezobrazit seznam autorů, pokud je prázdný. Nabývá dvou hodnot 1 (pravda) – výchozí a 0 (nepravda)
    • echo - zobrazí nebo vrátí výsledek k dalšímu zpracování, může nabývat dvou hodnot 1(true) - výchozí a 0(false)
    • feed - text odkazu na RSS zdroj pro každého autora
    • feed_image — cesta k obrázku/soubor
    • feed_type - typ zdroje. Může nabývat následujících hodnot: - default, rss2, atom, rss, rdf
    • styl - styl, ve kterém se bude zobrazovat seznam autorů, může nabývat následujících hodnot: seznam - výchozí, žádný
    • html - jak vypsat prvky jako html nebo jako seznam. Mrzhet přijímat dvě hodnoty ​​1 (true) — ve výchozím nastavení jako html nebo 0 (false) jako text

    get_author_posts_url()
    Získá adresu autora daného ID autora. Může mít dva parametry $author_id a $author_nicename, kde $author_id je ID autora, $author_nicename je přezdívka uživatele.

    Tímto končíme naši recenzi tagů autorů příspěvků pro téma WordPress. A v příštím článku se podíváme na záložky záložek pro WordPress šablony. Nenechte si tedy ujít vydání nových příspěvků přihlášením k odběru RSS tohoto blogu.
    To je prozatím vše. Vše úspěšný vývoj.