Hiển thị các bài đăng có nhãn MySQL. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn MySQL. Hiển thị tất cả bài đăng

Chủ Nhật, 21 tháng 7, 2013

PHP: Hàm trả về vị trí xuất hiện của chuỗi s1 trong chuỗi s2


<?php 
/*  This  function  returns  the  position  of  string  s1  within  string  s2. 
      The  position  is  1  based.    If  s1  is  not  in  s2,  0  is  returned. 
*/ 
function  InStr($s1,  $s2) 

        //Check  for  valid  input 
        if(!(is_string($s1)  &&  is_string($s2)))  return  0; 

        $s1len  =  strlen($s1); 
        $s2len  =  strlen($s2); 

        //Check  if  s1  in  s2  at  all 
        if(!ereg($s1,  $s2))  return  0; 

        //Resolve  simple  case 
        if($s1  ==  $s2)  return  1; 

        //Set  initial  search  limits 
        $begin  =  0; 
        $end  =  $s2len  -  $s1len; 

        //Initialize  position 
        $position  =  0; 

        //Do  binary  search  of  s2  for  s1 
        //Check  left  side  first  to  find  first  occurance  of  s1 
        //Check  right  side  first  to  find  last  occurance  of  s1 
        while($end  >  $begin  +  1) 
        { 
                $middle  =  ceil(($begin  +  $end)  /  2); 
                $leftBegin  =  $begin; 
                $rightBegin  =  $middle  +  $s1len; 
                $leftEnd  =  $middle; 
                $rightEnd  =  $end  +  $s1len; 

                //Check  left  first 
                if(ereg($s1,  substr($s2,  $leftBegin,  $rightBegin  -  $leftBegin))) 
                { 
                        $end  =  $middle; 
                } 
                else  //(ereg($s1,  substr($s2,  $leftEnd,  $rightEnd  -  $leftEnd))) 
                { 
                        $position  +=  $middle  -  $begin; 
                        $begin  =  $middle; 
                } 
        } 

        //Resolve  1  off  problems  introduced  by  ceil 
        if(ereg($s1,  substr($s2,  $end,  $s1len)))  $position++; 

        //Return  position  1  based 
        return  $position  +  1; 

?>

Thứ Sáu, 15 tháng 3, 2013

MySQL: Lệnh truy vấn dữ liệu trong MySQL (1)


A. Một số câu lệnh quản lý CSDL dùng Command line (dòng lệnh) cơ bản:
show databases;               //Hiển thị danh sách các database trong mysql server
use nameDatabase;           //Chọn cơ sở dữ liệu hiện hành
show tables;                     // Hiển thị danh sách các bảng trong cơ sở dữ liệu hiện hành
create database QLKH;   //Tạo cơ sở dữ liệu có tên QLKH
B. Ngôn ngữ SQL:
1. Tạo bảng dữ liệu:

Cú pháp:
CREATE TABLE <TenTable> (
     <TenField1> <kiểu dữ liệu> (<FieldSize>) | NULL | NOT NULL | AUTO_INCREMENT,
     <TenField2> <kiểu dữ liệu> (<FieldSize>) | NULL | NOT NULL ,
     ...
     PRIMARY KEY (<TenField>) ,   //Sau Primary Key, UNIQUE có dấu phẩy.
     UNIQUE (<TenField>),   //UNIQUE không là khóa chính nhưng có các giá trị không trùng nhau.
     FOREIGN KEY (<TenField>)  REFERENCE <TenTable>
     //Foreign key nhiều bản ghi thì có dấu phẩy phía sau.
 
);

Các kiểu dữ liệu:

  • Kiểu số nguyên: INTEGER, INT.
  • Số thực: FLOAT, DOUBLE
  • Chuỗi: CHAR, VARCHAR
  • Logic: BOOLEAN
  • Ngày tháng: DATE, TIME, DATETIME

Ví dụ: Tạo bảng trong cơ sở dữ liệu QuanLyTinTuc
CREATE TABLE LOAISP(idLoai  INT NOT NULL AUTO_INCREMENT, Ten VARCHAR(255) NOT  NULL, ThuTu INT NULL, PRIMARY KEY (idLoai));

2. Thêm dữ liệu vào bảng:
Cú pháp: 
INSERT INTO <TenBang> VALUES (giaTri1, giatri2,...)

- Các giá trị sẽ điền các giá trị vào các field theo đúng thứ tự xuất hiện trong bảng. Fied làm khoá chính để chuỗi trống.
Ví dụ:
INSERT INTO LoaiSP  VALUES ('', 'Lenovo',3);
3. Xem dữ liệu trong 1 bảng:
Cú pháp: 
SELECT * <TenBang> ;
Ví dụ:
SELECT * FROM LoaiSP;
4. Chỉnh sửa dữ liệu trong 1 bảng:
Cú pháp:
UPDATE <tentable> SET  Ten Truong 1=Gia tri 1, Ten Truong 2= Gia tri 2  WHERE <Điều Kiện>
Ví dụ:
UPDATE LoaiSP SET ten='Motorola' where idLoai=1
5. Xóa dữ liệu trong 1 bảng:
Cú pháp:
DELETE FROM <TenBang>  WHERE <ĐiềuKiện>
Ví dụ:
DELETE FROM LoaiSP where idLoai=1








Bài đăng phổ biến