erp系统php&java script&jQuery开发笔记
yyyy-MM-dd HH:mm:ss
轴管入库使用了 时间戳=zgkuid 一秒 更换一个id
--------------------------------------------------------
CREATE TABLE 新表 SELECT * FROM 旧表
CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2
找到重复值
SELECT * FROM `jzruku`group by GH having count(GH)>1
//去除重复
select *, count(distinct name) from table group by name
select * from 表 where n_id in
(select s_name from 表
group by s_name,n_money,s_zhipiao,s_date,s_lixi
having count(s_name)>1)
//字段和
SELECT *,SUM(cd) FROM `jlck` where cksj>='2017-3-17 00:00:00' and cksj<'2017-3-17 24:00:00'and pz='二等' ORDER BY `bm` ASC
------------------------------------------------------------------
------------------------------------------------------------------
js
//js浮点数函数
<script language="javascript">
document.write("<h1>JS保留两位小数例子</h1><br>");
var a=2.1512131231231321;
document.write("原来的值:"+a+"<br>");
document.write("两位小数点:"+a.toFixed(2)+"<br>四位小数点"+a.toFixed(4));
</script> // jquery 组合选择器
jquery
查找所有 name 属性是 newsletter 的 input 元素:
$(“input[name=’newsletter’]”).attr(“checked”, true);
//JS for +jquery + php 选择器的实现
for (var i = <?php echo $fygh_pzgs; ?> - 1; i >= 0; i--) {
hcd=0;
$(".ccds"+i).each(function(){ //类选择
cd=Number($(this).html())
hcd+=cd
$("#cchj"+i).html(hcd.toFixed(2)) //ID选择
});
};
//阻止form表单的提交
按钮必须是submit
.submit(function(e){
e.preventDefault();
/*dong的jQuery方法合计*/
function hj(a,b){
hj=0;
$(a).each(function(){ //遍历找到的所有元素
c=Number($(this).text()); //Number()转数字类型
hj+=c;
})
$(b).text(hj.toFixed(2)) //toFixed()小数点两位四舍五入
}
hj(".djzh",".zj"); //hj方法的调用传递两个变量
/*dong的jQuery方法结束*/
//未来事件绑定
$(document).on("click",".bc",function(){
bmval=$(this).parent().prev().prev().prev().prev().prev().prev().prev().text();
alert(bmval);
jquery获取样式中的background-color的值,获取到的颜色值在IE中与Chrome、Firefox显示的格式不一样。
IE中是以HEX格式显示【#ffff00】,而Chrome、Firefox中则是以GRB格式显示【rgb(255,255,0)】,实际需要的是十六进制的颜色值,用于存储到数据库中。
解决方法:
$.fn.getHexBackgroundColor = function() {
var rgb = $(this).css('background-color');
if(!$.browser.msie){
rgb = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
function hex(x) {
return ("0" + parseInt(x).toString(16)).slice(-2);
}
rgb= "#" + hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]);
}
return rgb;
}
//dong源码 //选中颜色改变
$(":checkbox").click(function(){
var yRgb ="#f9f9f9";//定义 颜色
var rgb=$(this).parent().parent().parent().parent().css("background-color"); //找到颜色标签
rgba = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/); //转换十六进制颜色
function hex(x) {
return ("0" + parseInt(x).toString(16)).slice(-2);
}
rgb= "#" + hex(rgba[1]) + hex(rgba[2]) + hex(rgba[3]);
if(rgb!=yRgb && $(this).is(':checked')){ //是否 是有颜色
$(this).parent().parent().parent().parent().css('background-color',yRgb );
}else{
$(this).parent().parent().parent().parent().css('background-color','#fff');
}
jQuery表单验证插件 --jQuery Validation Plugin -
-------------------------------------------------------------
php函数返回 数组
php 设置 中国时间: date_default_timezone_set('PRC'); //php 时间中国时区
json_decode — 对 JSON 格式的字符串进行解码
json_encode — 对变量进行 JSON 编码
json_last_error_msg — Returns the error string of the last json_encode() or json_decode() call
json_last_error — 返回最后发生的错误
//数组PHP 追加
$szzzr=array();
while($szku=$szsql->fetch()){
array_push($szzzr,(int)$szku['zzr']);//追加整轴人 //强制成工号整形
}
$tzzzrsza=array_values(array_unique($szzzr));//去除相同
$tzzzrgs=count($tzzzrsza);//返回人个数
///数组搜索
$arrvlu=array_search("82286-3",$zzbzbh); 1
in_array 2
<?php
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
echo "Got Irix";
}
if (in_array("mac", $os)) {
echo "Got mac";
}
?>
<?php
function retrieve_user_profile() {
$user[] = "Jason";
$user[] = "jb51.net";
$user[] = "English";
return $user;
}
list($name,$email,$language) = retrieve_user_profile();
echo "Name: $name, email: $email, preferred language: $language";
?>
把字符串 "Hello world!" 中的字符 "WORLD"(不区分大小写)替换成 "Shanghai":
<?php
echo str_ireplace("WORLD","Shanghai","Hello world!");
$tzzzrgs=count($tzzzrsza);//返回人个数
浮点 四舍五入float round ( float val [, int precision] )
返回将 val 根据指定精度 precision(十进制小数点后数字的数目)
进行四舍五入的结果。precision 也可以是负数或零(默认值)。
round ()
?>
------------------------------------------------
jQuery 隐藏、、、、、、、、、、、、、、、、、、、、、、、、、、、 JQuery
<script type="text/javascript">
$("input[name='id']").hide()
</script>
<button id="hide" class="btn btn-wring">点击</button> //开关
$("#hide").click(function(){
$(".szkuje").each(function(){
hide=$(this).text()
if (hide=="0") {$(this).parent().toggle()};
});})
================================================================================================================ jquery ajax json
$(function(){
$.getJSON("sc.php",{y:"y"},
function(data){
$("input[name='sjch']").val(data.ch);
$("input[name='dcgh']").val(data.dcgh);
$("input[name='gh']").val(data.gh);
$("input[name='zh']").val(data.zh);
$("input[name='basc']").val(data.basc);
$("input[name='clbcpz']").val(data.pz);
$("input[name='xbgha']").val(data.xbgha);
$("input[name='xbghb']").val(data.xbghb);
$("input[name='xbriy']").val(data.y);
$("input[name='gh']").val(data.gh);
$("input[name='lbgh']").val(data.lbgh);
});
//php代码 返回 json
$sqlch = $mysqlpdo->query("SELECT * FROM `zjrcl` ORDER BY `id` DESC ");
$arrbnsc=$sqlch->fetch(MYSQLI_ASSOC);
$ch=$arrbnsc['sjch'];
$pz=$arrbnsc['clbcpz'];
$gh=$arrbnsc['gh'];
$dcgh=$arrbnsc['dcgh'];
$basc=$arrbnsc['basc'];
$xbgh=$arrbnsc['xbgh'];
$zh=$arrbnsc['zh'];
$tim=explode("/",$arrbnsc["xbsq"]);
$arrxbgh=explode(",", $xbgh);
$arr=array("ch"=>"$ch","gh"=>"$gh","y"=>$tim["1"],"pz"=>"$pz","dcgh"=>"$dcgh","basc"=>"$basc","xbgha"=>"$arrxbgh[0]","xbghb"=>"$arrxbgh[1]","zh"=>"$zh");
$info = json_encode($arr);
echo "$info";*/
==========================================================================================================
$("button[name='print']").focus() ;得到焦点 //jquery
.blur(function(){ 失去焦点的时候
。keyup 键盘抬
alert(data)弹框
$(window).scroll(function () {
if ($(window).scrollTop() == $(document).height() - $(window).height()) {
alert('bottom!!');
}
});
-----------------------------------------------------------------
bootcss//前端web框架
//表格合并上下 左右
<table class="table table-bordered">
<tr>
<td rowspan='2'> aaa</td>
<td>aaa</td>
<td>aaa</td><td colspan="2">aaa</td>
</tr>
<tr>
<td>aaa</td><td>aaa</td><td>aaa</td><td>aaa</td>
</tr>
</table>
======================================================
//模态处理
这是官方文档的写法 $('#myModal').modal('show') //显示$('#myModal').modal('hide')
//重复点击的隐藏显示有一个很更方便的写法$('#myModal').modal('toggle')
<?php
$mysqli = new mysqli("localhost","root","","test");
$mysqli->set_charset('utf8');
$query = 'SELECT * FROM demo';
$result = $mysqli->query($query);
$arr = $result->fetch_all(MYSQLI_ASSOC);
$info = json_encode($arr);
echo $json = '{"success":true,"info":'.$info.'}';
显示数据网页: fresh.html
<html>
<head>
<meta charset='utf-8'>
<title>hello</title>
</head>
<body>
<script src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script>
<script>
function check(){
$.ajax({
type:"GET",
url:"./demo.php",
dataType:"json",
success:function(data){
if(data.success){
var count = data.info.length;
for(i=0;i<count;i++){
var dom = "<tr align='center' id='"+data.info[i].id+"'><td>"+data.info[i].id+"</td><td>"+data.info[i].name+"</td></tr>";
var tag = '#'+data.info[i].id;
if(!$(tag).length){
$("#info").append(dom);
}
}
}else{
alert('error');
}
},
error:function(res){
alert(res.status);
}
});
}
window.setInterval(check, 1000); //每秒执行一次
</script>
<body>
<div style='width:600px;margin:0 auto;'>
<table border='1' width="600px">
<thead>
<tr><th>id</th><th>name</th></tr>
</thead>
<tbody id='info'>
<tr align='center' id='111'><td>111</td><td>测试</td></tr>
</tbody>
</table>
</div>
</body>
</html>
-----------------------------------------------
<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));
var_dump(json_decode($json, true));
?>
代码如下:
object(stdClass)#1 (5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}
array(5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}
代码如下:
$data='[{"Name":"a1","Number":"123","Contno":"000","QQNo":""},{"Name":"a1","Number":"123",
"Contno":"000","QQNo":""},{"Name":"a1","Number":"123","Contno":"000","QQNo":""}]';
echo json_decode($data);
结果为:
复制代码 代码如下:
Array ( [0] => stdClass Object ( [Name] => a1 [Number] => 123 [Contno] => 000 [QQNo] => )
[1] => stdClass Object ( [Name] => a1 [Number] => 123 [Contno] => 000 [QQNo] => )
[2] => stdClass Object ( [Name] => a1 [Number] => 123 [Contno] => 000 [QQNo] => ) )
------------------------------------------------------
//正则表达式
word_separators": "./\\()\"'-:,.;<>~!@#$%^&*|+=[]{}`~?",
=================
$str="/\/|\~|\!|\@|\#|\\$|\%|\^|\&|\*|\(|\)|\_|\+|\{|\}|\:|\<|\>|\?|\[|\]|\.|\,|\/|\;|\'|\`|\-|\=|\\\|\|/";
$xbgh=preg_replace($str,"",$xbgh_ab);
preg_replace — 执行一个正则表达式的搜索和替换
//字符串替换
$postph=str_replace(' ','',$_POST['ph']) ;
---------------------------------------------------------------
HTML 下拉菜单
<select class="form-control" id="cc">
<option disabled selected >请选择残次</option> <!默认 禁止选择
<?php
$ccsql= $mysqlpdo->query("SELECT * FROM `zjcl` ORDER BY `id` DESC");
while ($arrcc=$ccsql->fetch()) {
echo "<option>{$arrcc[cc]}</option>";
}
?>
</select>
<select class="form-control" name="cc">
<option value="" selected >请选择残次</option>
<option value="百 脚" >1:百脚</option>
<option value="断 经" >2:断经</option>
<option value="双 经" >3:双经</option>
//定位HTML
position: fixed;
top: 0;
left: 0;
z-index: 9999;
margin-bottom: 20px;
width: 100%;
height: 60px;
background-color: #000;
.position属性
该属性用于为元素定位。有4个默认值。position:relative | absolute | static | fixed
static(静态):没有特别的设定,遵循基本的定位规定,不能通过z-index进行层次分级。
relative(相对定位):对象不可层叠、不脱离文档流,参考自身静态位置通过top,bottom,left,right 定位,并且可以通过z-index进行层次分级。
absolute(绝对定位):脱离文档流,通过 top,bottom,left,right 定位。选取其最近一个最有定位设置的父级对象进行绝对定位,如果对象的父级没有设置定位属性,absolute元素将以body坐标原点进行定位,可以通过z-index进行层次分级。
fixed(固定定位):这里所固定的参照对像是可视窗口而并非是body或是父级元素。可通过z-index进行层次分级。
注意:该属性在火狐浏览器中对表格<td>进行定位时失效,在其他浏览器中正常。
因为在火狐中position:relative;要与display属性联用才能生效。
解决方案:1.使用position属性时同时指定display属性。
2.去掉<td>的定位,为<td>中的内容加一个<div>,在<div>中设置定位(推荐使用)。
//bootcss 前端表单验证不能小于0的数
<input type="text" class="form-control" name="bjx" data-rule="标记线:required;range[0~]">
text-center //居中
-------------------------------------------------------------------------------------------
mysql
MyISAM与InnoDB是mysql目前比较常用的两个数据库存储引擎,MyISAM与InnoDB的主要的不同点在于性能和事务控制上。
这里简单的介绍一下两者间的区别和转换方法:
MyISAM:MyISAM是MySQL5.5之前版本默认的数据库存储引擎。MYISAM提供高速存储和检索,
以及全文搜索能力,
适合数据仓库等查询频繁的应用。但不支持事务、也不支持外键。
MyISAM格式的一个重要缺陷就是不能在表损坏后恢复数据。
InnoDB:InnoDB是MySQL5.5版本的默认数据库存储引擎,不过InnoDB已被Oracle收购,
MySQL自行开发的新存储引擎Falcon将在MySQL6.0版本引进。
InnoDB具有提交、回滚和崩溃恢复能力的事务安全。但是比起MyISAM存储引擎,
InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。尽管如此,
但是InnoDB包括了对事务处理和外来键的支持,这两点都是MyISAM引擎所没有的。
MyISAM适合:(1)做很多count 的计算;(2)插入不频繁,查询非常频繁;(3)没有事务。
InnoDB适合:(1)可靠性要求比较高,或者要求事务;(2)表更新和查询都相当的频繁,
并且表锁定的机会比较大的情况。(4)性能较好的服务器,比如单独的数据库服务器,
像阿里云的关系型数据库RDS就推荐使用InnoDB引擎。
MySQL一般提供多种存储引擎,可以通过执行以下指令查看:
首先进入MySQL命令行模式
查看MySQL提供什么存储引擎:
mysql> show engines;
查看MySQL当前默认的存储引擎:
mysql> show variables like '%storage_engine%';
查询wpsql库
mysql> use wpsql;
列出当前库所有表名
mysql> show tables;
你要看wp_posts表用了什么引擎(在显示结果里参数engine后面的就表示该表当前用的存储引擎):
mysql> show create table wp_posts;
将wp_posts表修为InnoDB存储引擎(也可以此命令将InnoDB换为MyISAM):
mysql> ALTER TABLE wp_posts ENGINE=INNODB; 和 ALTER TABLE wp_posts ENGINE=MyISAM;
如果要更改整个数据库表的存储引擎,一般要一个表一个表的修改,比较繁琐,
可以采用先把数据库导出,得到SQL,把MyISAM全部替换为INNODB,再导入数据库的方式。
转换完毕后重启mysql
> service mysqld restart
================================================================
MySQL中怎么对varchar类型排序问题
在mysql默认order by 只对数字与日期类型可以排序,但对于varchar字符型类型排序好像没有用了,
下面我来给各位同学介绍varchar类型排序问题如何解决。
今天在对国家电话号码表进行排序的时候发现了一个有趣的问题,
我想让isdcode字段按照由小到大的顺序排序,于是乎我是这样写的
代码如下 复制代码
SELECT * FROM gb_country_isdcode ORDER BY isdcode asc
结果如下,发现竟然不是我想要的结果,asc排序是对的呀,于是乎我找呀找,找呀找,终于找到原因了;
isdcode是varcher类型的,如果排序的直接用asc显然是不行的,
必须将他转换成int类型然后就可以正常排序了,只要isdcode + 0就可以了
于是乎这样写
代码如下 复制代码
SELECT * FROM gb_country_isdcode ORDER BY (isdcode+0) asc
面的呀。好像是想要的那种数据比较大小的了呀。。可是为什么+0就好了呢?
原来,+0后就转换INT类型排序了。这样就可以按照大小排序了。
如果不是电话而是汉字怎么办,汉字排序我们只要进行简单转换即可排序了
在mysql中使用order by对存储了中文信息的字段,默认出来的结果并不是按汉字拼音的顺序来排序,
要想按汉字的拼音来排序,需要把数据库的字符集设置为UTF8,然后在order by 时候强制把该字段信息转换成GBK,这样出来的结果就是按拼音顺序排序的。例如:
代码如下 复制代码
SELECT * FROM table_name ORDER BY CONVERT(column_name USING gbk);
在mysql中试了一下,结果很令人满意。
结论是:查询的时候,通过convert函数,把查询出来的数据使用的字符集gb2312编码就可以了,
然后使用convert之后的中文排序。但是如果真的去把表中字段的字符集改成gb2312,
又会涉及到很多编码的问题,页面传值啊,从数据库中存取啊,很麻烦。只要在查询的时候,
指定一下字符集,并不是真的把物理字段改成gb2312,很简单。
================================================================================
SUM
SELECT * FROM `jlck` where cksj>='2017-3-17 00:00:00' and cksj<'2017-3-17 24:00:00'and pz='二等' ORDER BY `bm` ASC
表名 销售 字段有:编号 金额 统计这个表在某一时间段内金额的总和
select sum(金额) from 表 where 条件
SQL语句例二:SQL读出记录并统计出某一字段的总和
select * ,SUM(字段) from 表名 where 条件 group by 字段
SQL语句例三:SQL语句按每天、每月、每年统计出销售总额
表名: 订单 字段有Ordertime(订单时间),money(金额)
根据订单时间统计每天、每月、每年的销售总额
1、每年
select year(ordertime) 年,
sum(money) 销售合计
from 订单
group by year(ordertime)
2、每月
select year(ordertime) 年,
month(ordertime) 月,
sum(money) 销售合计
from 订单
group by year(ordertime),
month(ordertime)
3、每日
select year(ordertime) 年,
month(ordertime) 月,
day(ordertime) 日,
sum(Total) 销售合计
from 订单
group by year(ordertime),
month(ordertime),
day(ordertime)
SQL语句例四:统计某月销售量前10
表名: 销售
字段: 编号, 商品名称 价格 日期
统计某月商品销量最大的商品前10个商品及销量。
SELECT DISTINCT TOP 10 商品名称, SUM(价格) AS 产品总价, COUNT(*) AS 销量 FROM 销售 GROUP BY title
加上月份:
SELECT DISTINCT TOP 10 商品名称, SUM(价格) AS 产品总价, COUNT(*) AS 销量 FROM 销售 WHERE (MONTH(sdate) = '你要查的月份数字') GROUP BY 商品名称
统计某月商品销量最大的商品前10个商品及销量并按销量排序
SELECT DISTINCT TOP 10 商品名称, SUM(价格) AS 产品总价, COUNT(*) AS 销量 FROM 销售 WHERE (MONTH(日期) = '你要查的月份数字') GROUP BY 商品名称 ORDER BY 销量 DESC
$cxtotime=!empty($_GET['totime'])?" sj>='$_GET[totime]'":"sj>'1970-01-01'";//得到开始时间
$clbcpz_cx=!empty($_GET['cxpz'])?" AND"." pz LIKE '%$_GET[cxpz]%'":null;//得到
$clbhpz_cx=!empty($_GET['cxbh'])?" AND"." bh LIKE '%$_GET[cxbh]%'":null;//得到
$clghpz_cx=!empty($_GET['cxgh'])?" AND"." gh LIKE '%$_GET[cxgh]%'":null;//得到
$where="WHERE $cxtotime$clbcpz_cx$clbhpz_cx$clghpz_cx";//品种查询
---------------------------------------------------------------------------------------------------------------------------
lijc 8001
-----------------------------------------------------
int sum=0;
for(int i=1;i<=99;i++){
sum+=i;
}
int sum=0;
for(int i=1;i<=99;i++){
if(i%2!=0){
sum+=i;
}
}
-----------------------------------------------------------
耗纱时间方法
include ("http://www.15de.cn/css/time.php");/*时间*/
-------------------------------------------------------------------2020年11月5日10:16:20
//脚本执行时间 执行超时 致命错误
//报错:Fatal error: Maximum execution time of 240 seconds exceeded i
php max_execution_time执行时间问题
php.ini 中缺省的最长执行时间是 30 秒,这是由 php.ini 中的 max_execution_time 变量指定,倘若你有一个需要颇多时间才能完成的工作,例如要发送很多电子邮件给大量收件者,或者要进行繁重的数据分析工作,服务器会在 30 秒后强行中止正在执行的程序,如何解决这个问题呢。
最简单当然是修改 php.ini 中 max_execution_time 的数值,不过不是所有人都有权修改 php.ini,例如使用网页寄存的开发人员,服务器上的 php.ini 由很多网站共同使用,所以不能随意修改。
另一个办法是在 PHP 程序中加入 ini_set('max_execution_time', '0'),数值 0 表示没有执行时间的限制,你的程序需要跑多久便跑多久。若果你的程序仍在测试阶段,推荐你把时限设置一个实数,以免程序的错误把服务器当掉。
table_manage.php 添加 121行 ini_set('max_execution_time', '280');//脚本执行时间限制
-----------------------------------------------------------------------------------
然后看下这个陨石坑:
echo date( "Y-m-d", strtotime( "2009-01-31 +1 month" ) ); // PHP: 2009-03-03
echo date( "Y-m-d", strtotime( "2009-01-31 +2 month" ) ); // PHP: 2009-03-31
很明显,2月根本没有30号、31号,所以上面的 +1 month 直接跳到了三月!
2021年1月29日16:02:53、、、时间
$hmd=date('Y-m-28 00:00:00',strtotime(date('Y-m-01') . " + 1 month"));