欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

PHP写缓存

程序员文章站 2022-05-15 11:21:44
...
//写入缓存
$menu_query = exequery( $connection, " SELECT ct.id as tid, ct.type_name , mb.id, mb.cookname,
mb.price, mb.description, mb.pinyin FROM cook_type ct LEFT JOIN menubook mb ON ct.id = mb.cook_type WHERE
mb.id = ".$cook_id);
$menu_result = mysql_fetch_array( $menu_query );

//echo "菜单id:".$cook_id.";分类id:".$menu_result[tid];exit;
//本次菜单
$row[mid] = $cook_id;
$row[menu_name] = $cook_name;
$row[description] = $description;
$row[menu_price] = $cook_price;
$row[pinyin] = ChangeToPinyin(iconv("utf-8","gb2312",$cook_name),1);

if( file_exists( "./menubook.php") )
{
require_once( "./menubook.php" );
}


if( is_array( $menu_cache) && !empty( $menu_cache) )
{
$classnum = count( $menu_cache );
$unmatchnum = 0;
for ( $i=0; $i {
if( $menu_result[tid] != $menu_cache[$i][tid] )
{
$unmatchnum++;
continue;
}
else //找到分类 , 继续寻找菜品的缓存是否存在
{
$cartenum = count( $menu_cache[$i][list]);
$unmarrynum = 0;
for ( $j=0; $j {
if ( $menu_cache[$i][list][$j][mid] != $cook_id )
{
$unmarrynum++;
continue;
}
else //修改菜单
{
$menu_cache[$i][list][$j][menu_name] = $cook_name;
$menu_cache[$i][list][$j][description] = $description;
$menu_cache[$i][list][$j][menu_price] = $cook_price;
$menu_cache[$i][list][$j][pinyin] = $row[pinyin];
}
}

//新添加的菜单
if( $cartenum == $unmarrynum )
{
$menu_cache[$i][list][] = $row;
}
}
}

//未找到分类
if ( $unmatchnum == $classnum )
{
$type_row[tid] = $menu_result[tid];
$type_row[type_name] = $menu_result[type_name];
$type_row[list][0] = $row;

$menu_cache[] = $type_row;

}
}
else { //数组的生成
$type_row[tid] = $menu_result[tid];
$type_row[type_name] = $menu_result[type_name];
$type_row[list][0] = $row;

$menu_cache[] = $type_row;

}
//print_r( $menu_cache );
//写入文件
ob_start();
var_export( $menu_cache );
$content = ob_get_contents( );
ob_end_clean();

$filename = "menubook.php";
$fp = fopen( $filename, "w" );
fwrite( $fp, "" );
fclose( $fp );

二、添加菜单,写入缓存

$str=ChangeToPinyin(iconv("utf-8","gb2312",$cook_name),1);
$query_cook_add="insert into menubook(cookname,price,cook_type,description,pinyin) values(".$cook_name.",".$cook_price.",".$cook_type.",".$description.",".$str.")";
$cursor_cook_add=exequery($connection,$query_cook_add);
$cook_id = mysql_insert_id();

$menutype_query = exequery( $connection, " SELECT type_name FROM cook_type WHERE id = ".$cook_type);
$menutype_result = mysql_fetch_array( $menutype_query );


//本次菜单
$row[mid] = $cook_id;
$row[menu_name] = $cook_name;
$row[description] = $description;
$row[menu_price] = $cook_price;
$row[pinyin] = $str;

if( file_exists( "./menubook.php") )
{
require_once( "./menubook.php" );
}

if( is_array( $menu_cache) && !empty( $menu_cache) )
{
$classnum = count( $menu_cache );
$unmatchnum = 0;
for ( $i=0; $i {
if( $cook_type != $menu_cache[$i][tid] )
{
$unmatchnum++;
continue;
}
else //找到分类 ,添加改产品菜品的缓存
{
$menu_cache[$i][list][] = $row;
}

}
if( $classnum == $unmatchnum ) //未找到分类
{
$type_row[tid] = $cook_type;
$type_row[type_name] = $menutype_result[type_name];
$type_row[list][0] = $row;

$menu_cache[] = $type_row;

}
}

else { //数组的生成
$type_row[tid] = $cook_type ;
$type_row[type_name] = $menutype_result[type_name];
$type_row[list][0] = $row;

$menu_c