备忘

GROUP_CONCAT :SELECT GROUP_CONCAT( access.amid ) AS mid FROM wms.access WHERE access.agid=0

以下代码可以取某个范围内的列名,下例中是取5到10列的列名。
select * from INFORMATION_SCHEMA.COLUMNS where table_name='HX' and ordinal_position between 5 and 10

js 数字
<input name="end_price" id="end_price" type="text" size="5" onkeyup="value=value.replace(/[^\d]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" >


SELECT GROUP_CONCAT(mname) from webinfo.mod


批量替换
UPDATE article(表) SET
content = replace(content, ’解决’, ’解放’)
WHERE ID<5000;

查找字段的字符
SELECT a.products_name FROM nikefed.products_description a WHERE a.products_name like '%#%'

大写变小写
strtolower

<fieldset>
    <legend><span>fieldset</span></legend>
<form></form>
</fieldset>

图片与文字水平对齐
图片加:align="absmiddle"

图片hack:margin-bottom:-3px;

<div id="output" style="border:1px solid gray;width:95%;height:400;overflow-y:scroll"></div>


CREATE VIEW qd
AS
(SELECT a.aid, b.bid,b.bfield,c.cvalue
    FROM (a, b ) 
    LEFT JOIN c 
    ON (a.aid = c.aid AND b.bid = c.bid) 
    ORDER BY a.aid ASC, b.bid ASC
);
SELECT a.* FROM qd a
LEFT JOIN
(
SELECT a.aid,a.ma,COUNT(b.aid) AS dd FROM (SELECT aid,MAX(cvalue) AS ma FROM qd GROUP BY aid) a
LEFT JOIN (SELECT aid,MAX(cvalue) AS ma FROM qd GROUP BY aid) b
ON a.ma>=b.ma
GROUP BY a.aid,a.ma
ORDER BY COUNT(b.aid)) d
ON a.aid=d.aid
ORDER BY d.dd;


301
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.nkfed.com/");


Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 6144 bytes)  修改php.ini 的memory_limit的值更大点。

桌面url快捷方式  命名为**.url
[DEFAULT]
BASEURL=http://i.hudong.com/home.do
[InternetShortcut]
URL=http://i.hudong.com/home.do
IDList=
[{000214A0-0000-0000-C000-000000000046}]
Prop3=19,2


js操作换行
<script type="text/javascript">
// <![CDATA[
function toBreakWord(intLen){
    var obj=document.getElementsByName("ff");
    for(var i=0;i<obj.length;i++){
        var strContent=obj[i].innerHTML; 
        var strTemp="";
        while(strContent.length>intLen){
        strTemp+=strContent.substr(0,intLen)+"&#10;"; 
        strContent=strContent.substr(intLen,strContent.length); 
        }
        strTemp+="&#10;"+strContent;
        obj[i].innerHTML=strTemp;
    }
}
if(document.getElementById  &&  !document.all)  toBreakWord(37);
// ]]>
</script>


错误调试
//使用html格式的错误输出内容,比较重要,否则在页面上就乱了
ini_set('html_errors', 1);
//打开所有的错误级别
ini_set('error_reporting', E_ALL);
//显示错误
ini_set('display_errors', 1);
//显示启动错误 推荐在各个业务的入php文件中设置,而不要在php.ini中设置。
ini_set('display_startup_errors', 1);


取分类的头几条记录
Select   *   From   表   A
Where   (Select   Count(*)   From   表   Where   type   =   A.type   And   value   <   A.value)   <   2
Order   By   type,   value



    function get_Curr_Domain() {
        $HTTP_HOST = PMA_getenv('HTTP_HOST');echo $HTTP_HOST.'<br>';
        $HTTP_HOST = strrev($HTTP_HOST);echo $HTTP_HOST.'<br>';
        $HTTP_HOST = explode('.',$HTTP_HOST,3);dump($HTTP_HOST);
        $curr_Domain = htmlspecialchars(strrev($HTTP_HOST[0].'.'.$HTTP_HOST[1]));
        return  $curr_Domain;
    }


linux打包
 tar -cvfz /var/www/html/gamestore8-6.tar.gz /var/www/html/gamestore.com

zip –q –r html.zip html

  $ cp - i exam1.c /usr/wang/shiyan1.c
  该命令将文件exam1.c拷贝到/usr/wang 这个目录下,并改名为 shiyan1.c。若不希望重新命名,可以使用下面的命令:
  $ cp exam1.c /usr/ wang/
  $ cp - r /usr/xu/ /usr/liu/ 将/usr/xu目录中的所有文件及其子目录拷贝到目录/usr/liu中

select组
<select>
    <optgroup label="<5" >
        <option>0</option>
        <option>1</option>
        <option>2</option>
        <option>3</option>
        <option>4</option>
    </optgroup>
    <optgroup label=">4" >
        <option>5</option>
        <option>6</option>
        <option>7</option>
        <option>8</option>
        <option>9</option>
    </optgroup>
</select>

chmod g+ order_doc

启动apache
service httpd start
启动FTP
service vsftpd restart
启动mysql
service mysqld restart

手型
style="cursor: pointer" mce_style="cursor: pointer"

MSN:   <a href="msnim:chat?contact=sales_support@hotmail.com">sales_support@hotmail.com</a>
EMAIL: <a href="mailto:support@tiffanyouth.co.uk">support@tiffanyouth.co.uk</a>

//编码转换:         内容    to     from
mb_convert_encoding($data,'utf-8','gbk')

$  USD   美元
£ GBP   英镑
€  EUR   欧元

监听回车
<script language="javascript">
 function keypress(e)
  {
    var currKey=0,e=e||event;
      if(e.keyCode==13)document.myform.submit();
  }
 document.onkeypress=keypress;
  </script>

  addslashes<==>stripcslashes

jquery查找和替换
t:要查找替换的字符串 
$.each(t, function(k, v) {
    /^[A-Za-z0-9]$/.exec(v) || (t=t.replace(t[k],'-'));
});

select下拉框的第二个元素为当前选中值
$('#select_id')[0].selectedIndex = 1;

radio单选组的第二个元素为当前选中值
$('input[@name=items]').get(1).checked = true;

获取select被选中项的文本
var item = $("#gp_pid option:selected").text();
var item = $("select[@name=items] option[@selected]").text();

$("#sel").attr("value",'-sel3');//设置value=-sel3的项目为当前选中项

单选组radio: $("input[@type=radio]").attr("checked",'2');//设置value=2的项目为当前选中项

$("#select_id").attr("value",'test');//设置value=test的项目为当前选中项

js获取时间
new Date().getTime()
Math.random();

//随机输出
if(!flag){
    var words=[
        {image:0,head:"msg1",body:"cnt1"},
        {image:1,head:"msg2",body:"cnt2"},
        {image:2,head:"msg3",body:"cnt3"},
        {image:"mini",head:"",body:""}];
    var rand = new Date().getTime() % 3;
    var content =
    '<div>'.words[rand].image+'.jpg'+
        '<h2>'+words[rand].head+'</h2>'+
        '<p>'+words[rand].body+'</p>'+
    '</div>';
    document.write(content);
}

//js加载块内容的方式
<div class="login_inner">
<script type="text/javascript">
    document.write('<iframe id="login_iframe" style="height:300px;width:366px;" class="loginIframe" frameborder="no" scrolling="no" src="#"></iframe>');
</script>
</div>

js设置样式
if ( is_IE ){
document.getElementById(controlID).className = controlCssClass ;
}
else if ( is_NN ){
document.getElementById(controlID).setAttribute("class", controlCssClass) ;
}

jquery 验证email
 var search_str = /^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/;
 var email_val = $("#Email").val();
 if(!search_str.test(email_val)){      
 alert("please input right email !");
 $('#Email').focus();
 return false;
 }

js select操作大全及select下拉列表分组

js 代码
// 1.判断select选项中 是否存在Value="paraValue"的 Item
function jsSelectIsExitItem(objSelect, objItemValue) {
var isExit = false;
for (var i = 0; i < objSelect.options.length; i++) {
if (objSelect.options[i].value == objItemValue) {
isExit = true;
break;
}
}
return isExit;
}

// 2.向select选项中 加入一个Item
function jsAddItemToSelect(objSelect, objItemText, objItemValue) {
//判断是否存在
if (jsSelectIsExitItem(objSelect, objItemValue)) {
alert("该Item的Value值已经存在");
} else {
var varItem = new Option(objItemText, objItemValue);
objSelect.options.add(varItem);
alert("成功加入");
}
}

// 3.从select选项中 删除一个Item
function jsRemoveItemFromSelect(objSelect, objItemValue) {
//判断是否存在
if (jsSelectIsExitItem(objSelect, objItemValue)) {
for (var i = 0; i < objSelect.options.length; i++) {
if (objSelect.options[i].value == objItemValue) {
objSelect.options.remove(i);
break;
}
}
alert("成功删除");
} else {
alert("该select中 不存在该项");
}
}


// 4.删除select中选中的项
function jsRemoveSelectedItemFromSelect(objSelect) {
var length = objSelect.options.length - 1;
for(var i = length; i >= 0; i--){
if(objSelect[i].selected == true){
objSelect.options[i] = null;
}
}
}

// 5.修改select选项中 value="paraValue"的text 为"paraText"
function jsUpdateItemToSelect(objSelect, objItemText, objItemValue) {
//判断是否存在
if (jsSelectIsExitItem(objSelect, objItemValue)) {
for (var i = 0; i < objSelect.options.length; i++) {
if (objSelect.options[i].value == objItemValue) {
objSelect.options[i].text = objItemText;
break;
}
}
alert("成功修改");
} else {
alert("该select中 不存在该项");
}
}

// 6.设置select中text="paraText"的第一个Item为选中
function jsSelectItemByValue(objSelect, objItemText) {
//判断是否存在
var isExit = false;
for (var i = 0; i < objSelect.options.length; i++) {
if (objSelect.options[i].text == objItemText) {
objSelect.options[i].selected = true;
isExit = true;
break;
}
}
//Show出结果
if (isExit) {
alert("成功选中");
} else {
alert("该select中 不存在该项");
}
}

// 7.设置select中value="paraValue"的Item为选中
document.all.objSelect.value = objItemValue;

// 8.得到select的当前选中项的value
var currSelectValue = document.all.objSelect.value;

// 9.得到select的当前选中项的text
var currSelectText = document.all.objSelect.options[document.all.objSelect.selectedIndex].text;

// 10.得到select的当前选中项的Index
var currSelectIndex = document.all.objSelect.selectedIndex;

// 11.清空select的项
document.all.objSelect.options.length = 0;

 

分组:

<select>
<optgroup label="<5" >
<option>0</option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</optgroup>
<optgroup label=">4" >
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
</optgroup>
</select>

Ajax.Request 类 详解

使用 Ajax.Request 类 ,其实这个JS类不是系统自带的,而是网上的高人写的通用的JS类库,被广泛的使用,这个JS类为:prototype.js,下载:prototype.rar,开发手册下载:prototype.js开发手册.rar

--------------------------------------------------------------------------------

如果你不使用任何的帮助程序包,你很可能编写了整个大量的代码来创建 XMLHttpRequest 对象并且异步的跟踪它的进程,然后解析响应并处理它。当你不需要支持多于一种类型的浏览器时你会感到非常的幸运。

为了支持 AJAX 功能。这个包定义了 Ajax.Request 类。

假如你有一个应用程序可以通过 http://yoursever/app/get_sales?empID=1234&year=1998 与服务器通信。它返回下面这样的 XML 响应:

<?xml version="1.0" encoding="utf-8" ?>
<ajax-response>
 <response type="object" id="productDetails">
  <monthly-sales>
   <employee-sales>
    <employee-id>1234</employee-id>
    <year-month>1998-01</year-month>
    <sales>$8,115.36</sales>
   </employee-sales>
   <employee-sales>
    <employee-id>1234</employee-id>
    <year-month>1998-02</year-month>
    <sales>$11,147.51</sales>
   </employee-sales>
  </monthly-sales>
 </response>
</ajax-response>   

用 Ajax.Request 对象和服务器通信并且得到这段 XML 是非常简单的。下面的例子演示了它是如何完成的:

<script>
 function searchSales()
 {
  var empID = $F('lstEmployees');
  var y = $F('lstYears');
  var url = 'http://yourserver/app/get_sales';
  var pars = 'empID=' + empID + '&year=' + y;
  
  var myAjax = new Ajax.Request(
   url,
   {
    method: 'get',
    parameters: pars,
    onComplete: showResponse
   });
  
 }

 function showResponse(originalRequest)
 {
  // 将返回的 XML 放到 textarea 内
  $('result').value = originalRequest.responseText;
 }
</script>

<select id="lstEmployees" size="10" onchange="searchSales()">
 <option value="5">Buchanan, Steven</option>
 <option value="8">Callahan, Laura</option>
 <option value="1">Davolio, Nancy</option>
</select>
<select id="lstYears" size="3" onchange="searchSales()">
 <option selected="selected" value="1996">1996</option>
 <option value="1997">1997</option>
 <option value="1998">1998</option>
</select>
<br><textarea id=result cols=60 rows=10 ></textarea>

你 注意到传入 Ajax.Request 构造方法的第二个对象了吗?参数 {method: 'get', parameters: pars, onComplete: showResponse} 表示一个匿名对象的真实写法。他表示你传入的这个对象有一个名为 method 值为 'get' 的属性,另一个属性名为 parameters 包含 HTTP 请求的查询字符串,和一个 onComplete 属性/方法包含函数 showResponse。

还有一些其它的属性可以在这个对象里面定义和设置,如 asynchronous,可以为 true 或 false 来决定 AJAX 对服务器的调用是否是异步的(默认值是 true)。

这个参数定义 AJAX 调用的选项。在我们的例子中,在第一个参数通过 HTTP GET 命令请求那个 url,传入了变量 pars 包含的查询字符串,Ajax.Request 对象在它完成接收响应的时候将调用 showResponse 方法。

也 许你知道,XMLHttpRequest 在HTTP请求期间将报告进度情况。这个进度被描述为四个不同阶段:Loading, Loaded, Interactive, 或 Complete。你可以使 Ajax.Request 对象在任何阶段调用自定义方法 ,Complete 是最常用的一个。想调用自定义的方法只需要简单的在请求的选项参数中的名为 onXXXXX 属性/方法中提供自定义的方法对象。 就像我们例子中的 onComplete。你传入的方法将会被用一个参数调用,这个参数是 XMLHttpRequest 对象自己。你将会用这个对象去得到返回的数据并且或许检查包含有在这次调用中的HTTP 结果代码的 status 属性。

还有另外两个有 用的选项用来处理结果。我们可以在 onSuccess 选项处传入一个方法,当 AJAX 无误的执行完后调用,相反的,也可以在 onFailure 选项处传入一个方法,当服务器端出现错误时调用。正如 onXXXXX 选项传入的方法一样,这两个在被调用的时候也传入一个带有 AJAX 请求的 XMLHttpRequest 对象。

我们的例子没有用任何有趣的方式处理这个 XML 响应, 我们只是把这段 XML 放进了一个文本域里面。对这个响应的一个典型的应用很可能就是找到其中的想要的信息,然后更新页面中的某些元素, 或者甚至可能做某些 XSLT 转换而在页面中产生一些 HTML。

在 1.4.0 版本中,一种新的事件回传外理被引入。如果你有一段代码总是要为一个特殊的事件执行,而不管是哪个 AJAX 调用引发它,那么你可以使用新的 Ajax.Responders 对象。

假设你想要在一个 AJAX 调用正在运行时,显示一些提示效果,像一个不断转动的图标之类的,你可以使用两个全局事件句柄来做到,其中一个在第一个调用开始时显示图标,另一个在最后一个调用完成时隐藏图标。看下面的例子。

<script>
 var myGlobalHandlers = {
  onCreate: function(){
   Element.show('systemWorking');
  },

  onComplete: function() {
   if(Ajax.activeRequestCount == 0){
    Element.hide('systemWorking');
   }
  }
 };

 Ajax.Responders.register(myGlobalHandlers);
</script>

<div id='systemWorking'><img src='spinner.gif'>Loading...</div>