Документ взят из кэша поисковой машины. Адрес оригинального документа : http://genphys.phys.msu.su/mikromag/catalog/catalog.php3
Дата изменения: Mon Nov 1 03:19:49 2010
Дата индексирования: Mon Oct 1 22:12:36 2012
Кодировка: Windows-1251

// create table cat_new (
// cat_sname varchar(20) not null,
// primary key (cat_sname),
// cat_sname_par varchar(20) not null,
// key (cat_sname_par),
// cat_name varchar(50),
// cat_desc text,
// cat_url varchar(100),
// cat_show_in_subcat tinyint default 1,
// cat_need_check tinyint default 1,
// cat_keywords text,
// cat_kto_dobavil varchar(50))


error_reporting(15);
//////////////////
//Скрипт отвечает за каталог

define("DBName","catalog");
define("HostName","localhost");
define("UserName","counter");
define("Password","counter");
define("Table","cat_new");

if(!mysql_connect(HostName,UserName,Password))
{ echo "Ошибка! Не могу соединиться с базой ".DBName."!
"; exit; }

// constant for function mysql_que
define("RetResult",1);
define("RetString",2);
define("RetNumRows",3);
define("CheckZeroRows", true);
define("NotCheckZeroRows", false);
define("DieOnZeroRows", true);
define("NotDieOnZeroRows", true);


// some constant for work
define("ColNum",3); // how many column number is in table
define("AdminEmail","bolnikh@genphys.phys.msu.su");



function mysql_que($que, $return_res=true, $mysql_err_msg="Ошибка mysql", $check_zero_rows=false,
$mysql_zero_rows_err_msg="", $die_on_zero_rows = false)
{
$res=mysql(DBName,$que);
if (mysql_errno() != 0) {
echo mysql_errno().": ".mysql_error()."
=>$mysql_err_msg";
exit;
}//if

if ($check_zero_rows == true) {
if (mysql_num_rows($res) == 0) {
if (!empty($mysql_zero_rows_err_msg)) {echo "
=> $mysql_zero_rows_err_msg"; }
if ($die_on_zero_rows == true) {exit; }
}//if
}//if


if ($return_res == 1) {
return $res;
}//if
if ($return_res ==2)
{
return mysql_fetch_array($res);
}//if
if ($return_res == 3)
{
return mysql_num_rows($res);
}//if
} //func








//-------------------------------
function str_repeat1($str,$num_rep)
{

if ($num_rep > 0)
{
$str_out=$str.str_repeat1($str,$num_rep-1);
}
else
{
$str_out="";
}//if
return $str_out;
}//str_repeat1






////////////////////////////////begin/////////////////

class cl_catalog
{ var $action, $cat_sname, $cat_sname_par, $cat_sname_prev, $cat_name, $cat_desc, $cat_url, $cat_show_in_subcat,
$cat_need_check, $cat_keywords, $cat_kto_dobavil, $num_rows, $otvet;

//------------------
function add_url_frm()
{
require("./add_url.htm");
}//add_url_frm
//---------------------------


//------------------
function index_admin()
{
$s = "select * from ".Table." order by cat_sname";

$res = mysql_que($s);

require("./index_admin.htm");
}//add_url_frm
//---------------------------



//------------------
function add_url_frm_admin()
{
if (!empty($this->cat_sname))
{
$s="select * from ".Table." where cat_sname = '".$this->cat_sname."'";
$cat_row = mysql_que($s,RetString);
}//if

$res_alltable = mysql_que("select * from ".Table." order by cat_sname");

require("./add_url_admin.htm");
}//add_url_frm
//---------------------------

//------------------
function add_url_save_admin()
{

if (empty($this->cat_sname_prev))
{
// новая запись
$s="insert into ".Table." (cat_sname, cat_sname_par, cat_name, cat_desc, cat_url, cat_show_in_subcat,
cat_need_check, cat_keywords, cat_kto_dobavil) values(
'$this->cat_sname',
'$this->cat_sname_par',
'$this->cat_name',
'$this->cat_desc',
'$this->cat_url',
$this->cat_show_in_subcat,
$this->cat_need_check,
'$this->cat_keywords',
'$this->cat_kto_dobavil')";

//echo $s;
}
else
{
// обновление старой записи
$s="update ".Table."
set cat_sname = '$this->cat_sname',
cat_sname_par = '$this->cat_sname_par',
cat_name = '$this->cat_name',
cat_desc = '$this->cat_desc',
cat_url = '$this->cat_url',
cat_show_in_subcat = $this->cat_show_in_subcat,
cat_need_check = $this->cat_need_check,
cat_keywords = '$this->cat_keywords',
cat_kto_dobavil = '$this->cat_kto_dobavil'
where cat_sname='$this->cat_sname_prev'";

}//if

mysql_que($s);


// обновим связанные ключевые поля
if ($this->cat_sname_prev != $this->cat_sname)
{
$s="update ".Table." set cat_sname_par = '$this->cat_sname' where cat_sname_par = '$this->cat_sname_prev'";
mysql_que($s);
}//if

$this->index_admin();

}//add_url_frm
//---------------------------


function show_path()
{
// выведем заголовок дерева

}// show..



// удалить запись
function del()
{
//удалить несвязанные записи
function del_free()
{
// найдем список всех sname

$s = "select cat_sname from ".Table;
$res = mysql_que($s);
$s_in = "";

while ($ff = mysql_fetch_array($res))
{
$s_in .= "'$ff[cat_sname]',";
}//while

if (!empty($s_in))
{
$s_in = substr($s_in, 0, strlen($s_in)-1);

$s = "select count(cat_sname) as cat_num from ".Table." where (cat_sname_par <> 'empty' && cat_sname_par
not in ($s_in))";

$ff = mysql_que($s, RetString);

if ($ff['cat_num'] != 0)
{
$s = "delete from ".Table." where (cat_sname_par <> 'empty' && cat_sname_par not in ($s_in))";
//echo $s;
mysql_que($s);
return ($ff['cat_num']);
}//if
}//if

return 0;

}//del_free



if (!empty($this->cat_sname))
{
$s = "delete from ".Table." where cat_sname = '$this->cat_sname' ";
mysql_que($s);
while (del_free() != 0) {}//while
}//if



$this->index_admin();

}// show..


//------------
function show_cat()
{
$s = "select * from ".Table." where cat_sname_par = '$this->cat_sname_par' order by cat_sname";

$res = mysql_que($s);

while ($ff = mysql_fetch_array($res))
{
echo "$ff[cat_sname] -- $ff[cat_name]";
}//while


}// show_cat

function main()
{
switch (@$this->action)
{

case "add_url_frm":
$this->add_url_frm(); // показать форму для ввода новой урл
break;
case "add_url_save":
$this->add_url_save(); //сохранить данные о новой урл
break;
case "add_url_search":
$this->add_url_search(); // показать форму для поиска
break;
case "add_url_frm_admin":
$this->add_url_frm_admin(); // показать форму для ввода новой урл администратора
break;
case "add_url_save_admin":
$this->add_url_save_admin(); //сохранить данные о новой урл админ
break;
case "show_cat":
$this->show_cat(); // показать уровень каталога
break;
case "index_admin":
$this->index_admin(); // показать уровень каталога
break;
case "del":
$this->del(); // показать уровень каталога
break;

default:
$this->show_cat(); // показать нулевой уровень каталога
break;
} //switch

} //***************** end of main ***********


//-------------
function var_ini($Mas)
{

@$this->cat_sname = addslashes($GLOBALS['cat_sname']);
@$this->cat_sname_par = addslashes($GLOBALS['cat_sname_par']);
@$this->cat_name = addslashes($GLOBALS['cat_name']);
@$this->cat_desc =addslashes($GLOBALS['cat_desc']);
@$this->cat_url = addslashes($GLOBALS['cat_url']);
@$this->cat_show_in_subcat = intval($GLOBALS['cat_show_in_subcat']);
@$this->cat_need_check = intval($GLOBALS['cat_need_check']);
@$this->cat_keywords = addslashes($GLOBALS['cat_keywords']);
@$this->cat_kto_dobavil = addslashes($GLOBALS['cat_kto_dobavil']);
@$this->cat_sname_prev = addslashes($GLOBALS['cat_sname_prev']);
}// var_ini


//---------------


function constr()
{

@$this->action = addslashes($GLOBALS['action']);
$this->var_ini($GLOBALS);

} // end of constructor

} // cl_catalog


//reset($HTTP_POST_VARS);
//while (list($key, $val) = each($HTTP_POST_VARS)) {
//echo "$key => $val
";
//}


$cat=new cl_catalog;
$cat->constr();
$cat->main();



?>