11.8学习笔记

封装一套自己的model类(增 删  查 改)

select * from news where 1 :默认子查询查询所有的条件 ,如果有其他的条件可以覆盖默认查询所有的条件

mysqli_insert_id //返回添加的id

mysqli_affected_rows();//返回删除的行数

例子:

header("Content-type:text/html;charset=utf-8");
class Model{
//封装一套自己的model类
//链接池
public $link = NULL;
//链接表
public $tablename;
//链接数据库配置
public function __construct($tablename)
{
$this->tablename = $tablename; //获取表名
$this->link = mysqli_connect(HOST,USER,PASS) or die("链接数据库失败");
mysqli_select_db($this->link,DB);
mysqli_set_charset($this->link,"utf8");
}
//查询单行语句
public function dbgetone($where="1")
{
$sql = "select * from {$this->tablename} where {$where}";
echo ($sql);
$res = mysqli_query($this->link,$sql);
$row = mysqli_fetch_assoc($res);
return $row;
}
//查询多行语句
public function dbgetlist($where="1",$order="order by id desc",$limit="0,5")
{
$sql = "select * from {$this->tablename} where {$where} {$order} limit {$limit}";
$res =mysqli_query($this->link,$sql);
$data = array();
while($row = mysqli_fetch_assoc($res))
{
$data[] = $row;
}
return $data;
}
//添加语句
public function dbinsert($data=array())
{
$str_key = ""; // `id`,`title`,`content`
$str_val = ""; // 'asda','asd','asdas'
foreach($data as $k=>$v)
{
$str_key .= $k.","; // `id`,`title`,`content`,
$str_val .= "'".$v."'," ;//'asda','asd','asdas',
}
$str_key = substr($str_key,0,-1);
//echo ($str_key)."<br>";
$str_val = substr($str_val,0,-1);
//echo ($str_val);die;

$sql = "insert into {$this->tablename} ({$str_key}) VALUES ({$str_val})";
//echo ($sql);
$res = mysqli_query($this->link,$sql);
return mysqli_insert_id($this->link);//返回添加的id
}
//修改语句
public function dbgetupdate($where,$data=array())
{
$key_value_str = ""; //`title`="哈哈哈",`content`="嘻嘻嘻"
foreach($data as $k=>$v)
{
$key_value_str .= $k."='".$v."',";//`title`="哈哈哈哈",`content`="嘻嘻嘻",
}
$key_value_str = substr($key_value_str,0,-1);
//echo ($key_value_str);die;

$sql = "update {$this->tablename} set {$key_value_str} where {$where}";
echo ($sql);
$res = mysqli_query($this->link,$sql);
}
//删除语句
public function dbdelete($where)
{
$sql="delete from {$this->tablename} where {$where}";
//echo ($sql);die;
$res = mysqli_query($this->link,$sql);

return mysqli_affected_rows($this->link);//返回删除的行数
}

public function dbcount()
{
//统计总条数 ceil(总条数 / 固定的条数) 得到总页数
$sql = "select count(*) as count from `{$this->tablename}`";
$res = mysqli_query($this->link,$sql);
$row = mysqli_fetch_assoc($res);
//print_r($row);die;
$pageNum = $row['count'];//得到总条数
return $pageNum;

}


}

define("HOST","127.0.0.1");
define("USER","root");
define("PASS","root");
define("DB","xiexie");

$m = new Model("news");
$id = 1;
$b = $m->dbgetone("id=".$id);
//print_r($b);
$m = new Model("news");
$a = $m->dbgetlist();
print_r($a);
$m = new Model("news");
$arr = ["title"=>"sadsa","content"=>"asdasda","time"=>"11-8","category_id"=>2];
$m->dbinsert($arr);

$m = new Model("admin");
$m->dbdelete("id=6");

$m = new Model("admin");
$data = ["username"=>"aaaaaa","password"=>"bbbbbbbbbbb"];
$m->dbgetupdate("id=2",$data);

 

 

 

 

 

 

smarty

(1) : Smarty : 模板引擎 (视图分离(php 和 html 分离)) 用Smarty模板引擎mvc模式,Smarty模板写了自己的一套模板语法,且比较简单.


(2):Smarty版本 Smarty2版本 Smarty3版本

Smarty用于ecshop框架比较多, ecshop做购物商城 (二次开发 )

头次开发 (自己封装低层代码) mvc 框架


libs:核心文件

Smarty.class.php :Smarty核心文件

(3):安装
拷贝libs文件
加载libs文件下的Smarty.class.php
存放视图文件
template: 视图 view:视图
$smarty->template_dir = "template/"; //设置smarty视图分离中的模板的路径,以后所有的视图文件都放在template文件夹下面.

存放程序编译文件
$smarty->compile_dir = "templates_c/";//设置smarty编译文件的路径

html文件后缀名可以用:tpl后缀 html

参数传递:
$smarty->assign(‘标签名’,‘值');

 

加载视图文件:

$smarty->display("文件路径");
$smarty->display("1.tpl"); : 加载视图文件


页面循环输出值:
循环列表
Smarty2版本:<{foreach from=$result key=k item=v}><{$k}><{/foreach}>

Smarty3版本:
{foreach 标签名 as $k=>$v}
{$k}

{/foreach}


{foreach $data as $k=>$v}
{$k}

{/foreach}

设置两个备用属性 (为了防止页面里面的语法和Smarty语法起冲突)
如果没有设置备用属性,默认就是 {开始 结束} ;
如果设置了备用属性,那就必须按照备用属性使用
 $smarty->left_delimiter = "<{";
$smarty->right_delimiter = "}>";


输出单个值:
<{标签名}>
<{$name}>
传入session的值
$smarty->assign("username",$_SESSION['username']);

$smarty语法可以传入数据类型的值,也可以传入超级数组的值.

模板的注释
<{*欢迎谢燕*}>

//加载模板文件
<{include file="文件路径"}>

设置缓存文件: (缓存开发时不启用,项目上线了之后启用)
$smarty->caching = true; //默认设置为1,默认为1个小时的周期,1个小时周期已过自动会清除缓存

$smarty->caching = 2; //缓存各自的缓存(模板生成各自的缓存) 有各自的缓存周期

$smarty->cache_lifetime = 300; //执行代码之后.

设置缓存存放的文件
$smarty->cache_dir="缓存文件夹";

 

 

例子:

 header("Content-type:text/html;charset=utf-8");

//加载核心文件
session_start();
require_once("libs/Smarty.class.php");
$smarty = new Smarty();//实例化得到Smarty类
//定义一个视图文件,存放html文件
$smarty->template_dir = "template/";
//程序编译文件
$smarty->compile_dir = "templates_c/";//设置smarty编译文件的路径
//设置缓存文件
$smarty->cache_dir = "cache/";//设置缓存文件
$smarty->caching = 2; //缓存各自的缓存(模板生成各自的缓存) 有各自的缓存周期
$smarty->cache_lifetime = 300; //执行代码之后.
$arr = ["可爱","宝宝","贝贝"];
//设置定界符
$smarty->left_delimiter = "<{";
$smarty->right_delimiter = "}>";
$name = "哈哈";
$_SESSION['username'] = "aaa";
/*foreach($arr as $k=>$v)
{
print_r($v);
}
*/
$smarty->assign("data",$arr);
$smarty->assign("name",$name);
$smarty->assign("username",$_SESSION['username']);
$smarty->display("1.tpl");
$smarty->display("2.html");

 

 

1.tpl

 

2.html

 

转载于:https://www.cnblogs.com/xieyankeai/p/9931168.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/426478.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java学习(68):局部内部类

public class test113 {public void method(){final int age 23;class Localinner{public void method(){System.out.println("歌谣");System.out.println(age);}}new Localinner().method();}public static void main(String[] args) {test113 onew test113();o.met…

java学习(69):java模式设计之适配器

1需求是 //公司招员工&#xff0c;要求会讲中、英、法、日四国语言&#xff0c;同时还很会编程的员工。 这时候&#xff0c;我们先定义一个接口&#xff0c;实现接口中的方法我们就认为满足 //公司招员工&#xff0c;要求会讲中、英、法、日四国语言&#xff0c;同时还很会编…

selenium 验证码——万能码的使用

使用万能码需要导入一个random类生成随机码 # codingutf-8 import randomver random.randint(1000,9999)print u生成验证码&#xff1a;%d %vernum input(u输入验证码&#xff1a;) print numif num ver:print u登陆成功 elif num 999999:print u登陆成功 else:print u验证…

Intellij IDEA创建的Web项目配置Tomcat并启动Maven项目

点击如图所示的地方&#xff0c;进行添加Tomcat配置页面弹出页面后&#xff0c;按照如图顺序找到&#xff0c;点击号tomcat Service -> Local注意&#xff0c;这里不要选错了哦&#xff0c;还有一个TomEE Service&#xff01;按照下面图所示进行配置。图中数字的地方代表的配…

java学习(70):GUL图形用户界面初识

import java.awt.*; import javax.swing.*; public class test04 {public static void main(String[] args){//定义一个图形界面JFrame aanew JFrame();//建立一个标题aa.setTitle("歌谣");//创建一个按钮JButton an1new JButton("歌谣");//设置初始位置aa…

oracle实时分析,Oracle Exalytics 大幅提升实时分析洞察力

【天极网OOW2013上海消息】甲骨文近日宣布推出Oracle Exalytics商务智能云服务器的新版本Oracle Exalytics X3-4。新系统显著增强了软件功能和硬件更新&#xff0c;极大提升了针对商务分析的业内最快集成系统的性能。新的Oracle Exalytics X3-4具有2 TB主内存&#xff0c;2.4TB…

java学习(71):GUL边界布局管理器

//面向对象思想&#xff0c;边界管理布局器 import java.awt.*; import javax.swing.*; public class test06 extends JFrame {JButton an1,an2,an3,an4,an5;//把需要的组件定义在这里public static void main(String[] args){test06 lx1new test06();//主函数调用即可}//定义…

java学习(72):GUL流式布局管理器

//面向对象思想&#xff0c;流式管理布局器 import java.awt.*; import javax.swing.*; public class test07 extends JFrame {JButton[] an{null,null,null,null,null,null,null,null};//把需要的组件定义在这里public static void main(String[] args){test07 lx1new test07…

linux日志服务器配置在哪个文件,Linux中日志的基本配置(syslog)

Syslog日志的作用&#xff1a;syslog 日志可以帮我们主动的收集到设备的各种信息,并保存在syslog服务器上,当某些设备出现故障的时候,我们可以省去手动收集信息的麻烦,方便快捷的从syslog服务器中读取设备的各种信息来进行分析排错。linux中日志的类型&#xff1a;(1)info&…

java学习(73):GUL网格布局管理器

//面向对象思想&#xff0c;网格管理布局器 import java.awt.*; import javax.swing.*; public class test08 extends JFrame {JButton[] an{null,null,null,null,null,null,null,null,null};//把需要的组件定义在这里int s9;public static void main(String[] args){test08 l…

linux如何创建备份文件,如何备份Linux 配置文件

如何备份Linux配置文件文件备份是服务器安全最重要的一个环节&#xff0c;下面小编介绍使用Git工具来备份Linux配置文件。一、安装Git[rootlocalhost ~]# yum install git检查Git版本[rootlocalhost ~]# git --versiongit version 1.8.3.1[rootlocalhost ~]#设置初始参数将如下…

20172327 2018-2019-1 《程序设计与数据结构》第八周学习总结

20172327 2018-2019-1 《程序设计与数据结构》第八周学习总结 教材学习内容总结 第十二章 优先队列与堆 堆1.最小堆&#xff08;minheap)&#xff1a;对是一个完全二叉树&#xff0c;其中的每个结点都小于或等于它的两个孩子。2.最大堆&#xff08;maxheap)&#xff1a;对是一个…

java学习(74):GUL面板

//jPanel面板 //面向对象思想&#xff0c;面板&#xff0c;窗口的基础之上再加窗口 import java.awt.*; import javax.swing.*; public class test09 extends JFrame {JPanel mb1,mb2;JButton an1,an2,an3,an4,an5;public static void main(String[] args){test09 lx1new test…

java学习(75):GUL文本框和标签

//jPanel面板 文本框和标签 //面向对象思想&#xff0c;面板&#xff0c;窗口的基础之上再加窗口 import java.awt.*; import javax.swing.*; public class test10 extends JFrame {JPanel mb1,mb2,mb3;JButton an1,an2;JLabel bq1,bq2;//标签JTextField wbk;//文本框JPassword…

linux apr文件解压失败,Apache编译安装提示configure: error: APR not found错误解决方法...

在配置Apache的时候&#xff0c;出现configure: error: APR not found错误原因是缺少一些依赖包&#xff0c;安装这些依赖包就行了下载依赖包&#xff0c;注意我这里下载的与参考链接上的有些不同&#xff0c;安装上也有不一样wget http://archive.apache.org/dist/apr/apr-1.5…

java学习(76):GUL单选按钮和复选按钮

//单选按钮和复选按钮 //面向对象思想&#xff0c;面板&#xff0c;窗口的基础之上再加窗口 import java.awt.*; import javax.swing.*; public class test11 extends JFrame {JPanel mb1,mb2,mb3;JButton an1,an2;JLabel bq1,bq2;//标签JCheckBox fxk1,fxk2,fxk3;//复选框JRad…

uos20专业版是linux哪个版本,WPS Office 2019 for Linux 专业版已与统一操作系统 UOS 完成适配...

统信软件近日发布消息称&#xff0c;办公软件 WPS Office 2019 for Linux 专业版已与统一操作系统 UOS 完成适配工作。对比 2016 版本&#xff0c;2019 版本总体性能有大幅提升。这不仅体现在整体的启动速度上&#xff0c;文字、表格和演示三个组件基础功能的性能同样得到了整体…

java学习(77):GUL下拉菜单框和滚动条

//下拉列表框和滚动条 //面向对象思想&#xff0c;面板&#xff0c;窗口的基础之上再加窗口 import java.awt.*; import javax.swing.*; public class test12 extends JFrame {JPanel mb1,mb2;JLabel bq1,bq2;//标签JComboBox xlk;//JList lb;//列表JScrollPane gd;//滚动publi…

Git 基本命令

1.git安装后设置《用户名》和《邮箱》;查看自身《用户名》和《邮箱》 //设置$ git config --global user.name "yangkang" $ git config --global user.email "kang.yangarvato.com" //查看 $ git config user.name yangkang $ git config user.email kang…

java学习(78):GUL拆分窗口

//拆分窗口 //面向对象思想&#xff0c;面板&#xff0c;窗口的基础之上再加窗口 import java.awt.*; import javax.swing.*; public class test13 extends JFrame {JSplitPane cf;//分成左右两面JList lb;JLabel bq;public static void main(String[] args){test13 lx1new te…