Азбучник на българските думи
Автор: relax
Здравейте сега ще ви покажа как да си направите много прост азбучник или речник на българските думи
table.sql
CREATE TABLE dictionary (
id int(11) not null auto_increment primary key,
word varchar(255) not null,
body text not null
);conf.php
$host = ' '; //името на сървъра
$user = ' '; //потр. име на сървъра
$pass = ' '; //парола на сървъра
$dbname = 'dictionary'; //името на базата данни в случая dictionarydescription.php
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<?php
include('conf.php');
$conn = mysql_connect($host, $user, $pass) or die (mysql_error()); //свързваме се със сървъра
$select = mysql_select_db($dbname) or die (mysql_error()); //селектираме базата данни
$query = "select word, body from dictionary"; //изкарваме от базата данни думите и описанието на думите
$result = mysql_query($query) or die (mysql_error());
while($row = mysql_fetch_array($result))
{
$string[] = $row['word']; //чрез този while вкарваме всички думи в масива $string[] и всички описания в масива $body[]
$body[] = $row['body']; //$row['body'] трябва да е колоната където е описанието на думата в случая може да не е body а да е друго име
}
$arr = array_combine($string, $body); //чрез функцията array_combine() комбинираме двата масива така че да имат ключ + стойност в случая масивите са $string[] и $body[]
foreach($arr as $v=>$b) //от тука извикваме ключа и стойноста които са вкарани в масива $arr
{
switch($_GET['word']) //от тук проверяваме коя дума е натисната в dictionary.php
{
case "$v": //чрез тази променлива слагаме думата която се търси в случая която и дума да се натисне в dictionary.php то проверява в този case
if(count($arr) == 0) //от тука преброяваме дали $arr има стойности и ако има изкарва описанията на думата която е натисната в dictionary.php ако няма вади грешка
{
echo "Няма намерени резултати";
}
else
{
echo $b."<br />"; //извеждаме описанието на думата която се търси
}
break;
}
}
?>dictionary.php
<meta http-equiv="content-type" content="text/html; charset=windows-1251"> //това го слагаме за да може да вади резултатите на кирилица
<?php
include('conf.php');
$conn = mysql_connect($host, $user, $pass) or die (mysql_error()); //свързваме се със сървъра
$select = mysql_select_db($dbname) or die (mysql_error()); //селектираме базата данни
$query = "select word from dictionary"; //изкарваме от базата данни думите
$result = mysql_query($query) or die (mysql_error());
$cyr = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЬЮЯ"; //този ред ще ни полсужи по-надолу за проверка на първата буква на изведените думи
while($row = mysql_fetch_array($result))
{
$string[] = $row['word']; //чрез този while вкарваме всички думи в масива $string[]
}
if(count($string) == 0)
{
echo "Не са намерени думи в базата данни";
}
else
{
for($i = 0; $i < 29; $i++)
{
foreach($string as $v)
{
if(trim($v{0}) == trim($cyr{$i}))
{
${arr.$i}[] = $v;
}
}
}
}
for($j = 0; $j < 29; $j++)
{
switch($_GET['word']) //от тука взимаме дадена буква
{
case $cyr{$j}: //ако е избрана буква то вади всички резултати които започват с буквата която сте натиснали
if(count(${arr.$j}) == 0) //проверка дали масива $arrХ има стойности и ако има извежда всички записани в масива стойности ако няма извежда грешка
{
echo "Няма намерени резултати";
}
else
{
foreach(${arr.$j} as $c)
{
echo "<a href='description.php?word=$c'>$c</a><br />"; //чрез тези променливи взимаме целите думи записани в масива $arrХ като след това се правят проверки в description.php
}
}
break;
}
}
?>И сега остава да направим линковете
links.php
<?php
for ($i=0;$i<32;$i++) {
if(chr(192+$i) == "Ы"){
continue;
}
if(chr(192+$i) == "Э"){
continue;
}
echo('<a href="dictionary.php?word='.chr(192 + $i).'">'.chr(192 + $i).'</a>||');
}
?>има и по-лесен начин за извеждане на всички букви ама понеже бързам сега няма да го правя някой ден ще оправя урока
За сега демо няма
Урока е авторски и забранявам копирането в други сайтове без разрешение.


