2009年10月22日 星期四

2009年6月30日 星期二

SQL資料內容置換語法

update 資料表 set 資料欄位 = replace( 資料欄位 , '舊字串', '新字串');

.

2009年6月25日 星期四

MySQL 使用 UTF-8 編碼時的中文排序

當資料庫編碼是使用 UTF-8 時,若有欄位是中文,且要依此欄位進行排序時,

MySQL將會依 UTF-8 的編碼來排序,而不會依我們所預期的 BIG5 來排序。

若要解決此問題,只要在排序時,將排序的欄位轉為 BIG5 就可以依筆畫排序了。

使用方式就是 CONVERT( 欄位名稱 using big5) 。

例如:

Select factory From wrongnote Order By CONVERT( factory using big5 )

.

2009年5月8日 星期五

JavaScript 寫入, 讀取, 刪除 Cookie 值

function SetCookie(name,value,expiry,path,domain,secure){
var NameString = name + "=" + value;
var ExpiryString = (expiry == null) ? "" : " ;expires = "+ expiry.toGMTString();
var PathString = (path == null) ? "" : " ;path = "+ path;
var DomainString = (path == null) ? "" : " ;domain = "+ domain;
var SecureString = (secure) ?";secure" :"";
document.cookie = NameString + ExpiryString + PathString + DomainString + SecureString;
}

function GetCookie(name) {
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]); return null;
}

function DelCookie(name){
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval=getCookie(name);
if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();
}

2009年4月28日 星期二

MySQL 及 MsSQL 隨機選出資料

MySQL

select * from MyTable order by RAND()

MsSQL

select * from MyTable order by NEWID()

Access

select * from MyTable order by RND(數值型的列名稱)

以 ASP 去除 HTML TAG 的用法 ( 如同 PHP 的 strip_tags )

<%

'====
Function stripTags( strToStrip )
'====
Dim objRegExp

strToStrip = Trim( strToStrip & "" )
If Len( strToStrip ) > 0 Then
Set objRegExp = New RegExp
objRegExp.IgnoreCase = True
objRegExp.Global = True
objRegExp.Pattern= "<[^>]+>"
strToStrip = objRegExp.Replace(strToStrip, "")
Set objRegExp = Nothing
End If
stripTags = strToStrip
End Function

str="<p>Test paragraph.</p><!-- Comment --> <a href='#fragment'>Other text</a>"
response.write stripTags( str )

%>

2009年4月7日 星期二

MySQL Big5 轉 utf8

◎ PHP 與 MySQL 建立連線:
所以為了解決亂碼問題,在PHP 與 MySQL 建立連線時,於 query 之前先執行:

mysql_query("SET CHARACTER_SET_CLIENT=utf8");
mysql_query("SET CHARACTER_SET_CONNECTION=utf8");
mysql_query("SET CHARACTER_SET_RESULTS=utf8");

如上三列編碼都一樣時,可直接執行下列

mysql_query("SET NAMES utf8");

◎ MySQL資料庫big5轉utf8:

Step1:首先把資料dump出來

由於先前資料是存成latin1,所以dump出來後要用iconf或piconf把他轉成UTF-8,記得dump出來時要加上-default-character-set=latin1

#mysqldump -u 帳號 -p --default-character-set=latin1 資料庫 >output.sql

Step2:big5轉成utf8

如果原先是Big5的資料, dump出來後就直接把Big5轉成UTF-8即可

#piconv -f big5 -t utf8 output.sql >utf8.sql

如果原先是UTF-8的資料,dump出來後要先轉成Big5後,再把他轉成UTF-8,因為原先dump出來的是偽裝成UTF-8的lantin1不是真正的UTF-8

#mysqldump -u 帳號 -p -default-character-set=latin1 資料庫 >output.sql
#piconv -f utf8 -t big5 output.sql > big5.sql
#piconv -f big5 -t utf8 big5.sql >utf8.sql

Step3:修改sql檔

1、修改轉成的sql檔中所產生的‘’\”及換行的問題(有時換行時會成‘\n’)

2、在dump出來的sql檔最前面加上:
SET NAMES utf8;
SET CHARACTER_SET_CLIENT=utf8;
SET CHARACTER_SET_RESULTS=utf8;

:1,$s/DEFAULT CHARSET=latin1/DEFAULT CHARSET=utf8/g
:1,$s/latin1/utf8/gc
:1,$s/許\\/許/g
:1,$s/功\\/功/g
:1,$s/蓋\\/蓋/g
:1,$s/餐\\/餐/g
:1,$s/愧\\/愧/g
:1,$s/擺\\/擺/g
:1,$s/穀\\/穀/g
:1,$s/淚\\/淚/g
:1,$s/豹\\/豹/g
:1,$s/珮\\/珮/g
:1,$s/俞\\/俞/g


再來把每個資料表後面的TYPE=MyISAM是否有DEFAULT CHARSET=latin1;
若沒有請改為ENGINE=MyISAM DEFAULT CHARSET=utf8;

Step4:建立新的資料庫

方法1. SQL語法
CREATE DATABASE `資料庫` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

方法2. 用phpMyAdmin建立資料庫的,建立時”校對”要選utf8_general_ci

步驟五:import資料

方法1. SQL語法

#mysql -u 帳號 -p 資料庫 < utf8.sql

方法2. 直接用phpMyAdmin把他import進去了,import時記得文字編碼檔案要選utf8即可。不過使用phpMyAdmin import 有檔案大小的限制,可先把sql檔分成幾個檔案。

◎ 最後記得檢查看MySQL的my.cnf設定檔內要加入以下設定
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
default-character-set=utf8
default-collation=utf8_general_ci

替換 MySQL 資料庫資料

資料庫   DataBaseName
資料表   TableName
欄位    FieldName
變更前字串 SourceString
變更後字串 ChangeString

update `DataBaseName`.`TableName` set `FieldName` = REPLACE( `FieldName`, 'SourceString', 'ChangeString')

2009年2月25日 星期三

.htaccess 的用處

.htaccess 有很多的功能, 下列是常用的.

例如:
===============================================
DirectoryIndex index.html index.htm index.php
AddType application/x-httpd-php .html .htm
php_value auto_prepend_file ./before.php
php_value default_charset utf-8
php_flag register_globals on
===============================================

上面意思是.

1.預設網頁的指定,依序排列.
2.讓 .html, .htm 跟 .php 一樣, 輸出前要經過處理.
3.在每個檔案前面都加上 before.php
4.設定預設語系為 UTF-8
5.設定php.ini的參數register_globals為on

2009年1月20日 星期二

不錯的Script特效

在網路上發現了不錯的特效

可連過去那邊看看

http://malsup.com/jquery/