Азбучник на българските думи

  • Автор Автор relax
  • Начална дата Начална дата

relax

Registered
Понеже немога да намеря бутона за редактиране на този код http://web-tourist.net/login/login/view.php?st=2224 ще постна тука съкратения начин...

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'; //името на базата данни в случая dictionary

description.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>||');
}
?>

Всъщност само dictionary.php съм го съкратил драстично дано да сте доволни :) Последна промяна ако мога ще е да го напрая като лесно използваемите класове... ;)
 
http://87.120.15.67/stefan/dictionary/links.php ето думите съм ги вкарвал с цикъл затова са така иначе може да си направите да се добавят...
 
relax каза:
http://87.120.15.67/stefan/dictionary/links.php ето думите съм ги вкарвал с цикъл затова са така иначе може да си направите да се добавят...
The server at 87.120.15.67 is taking too long to respond
 
Hous каза:
relax каза:
http://87.120.15.67/stefan/dictionary/links.php ето думите съм ги вкарвал с цикъл затова са така иначе може да си направите да се добавят...
The server at 87.120.15.67 is taking too long to respond
Еми нормално да не го отвори тогава защото или интернета е бил слаб или компа е бил бавен... Скоро няма да има демо защото сега няма комп в къщи... Ще го кача на някой хост като се прибера което може да е на края на лятото ама не е сигурно сорка...
 
relax каза:
Hous каза:
relax каза:
http://87.120.15.67/stefan/dictionary/links.php ето думите съм ги вкарвал с цикъл затова са така иначе може да си направите да се добавят...
The server at 87.120.15.67 is taking too long to respond
Еми нормално да не го отвори тогава защото или интернета е бил слаб или компа е бил бавен... Скоро няма да има демо защото сега няма комп в къщи... Ще го кача на някой хост като се прибера което може да е на края на лятото ама не е сигурно сорка...
жалко искам да видя за какво става дума :)
 
Ето забавения пост който обещах http://relax4o.my32.net/diction/links.php вече можете да видите как изглежда на Ь ще видите и като няма резултати ;)
 
Направих още една промяна или по скоро ми помогнаха... като съкратих и links.php вече не е простия HTML код :)
 

Back
Горе