PIXNET Logo登入

互聯網 - 大數據

跳到主文

本部落格為互聯網熱門頭條訊息管理中心

部落格全站分類:生活綜合

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 3月 09 週四 201720:30
  • php面向對象基礎


文章出處
1、類
由眾多對象抽象出來的
它包含了對象通用的特性
2、對象
一切皆對象
它是由實例化出來的
例:
求兩個圓之間陰影的面積
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
</head>
<body>
<?php
$r1 = 10;
$r2 = 5;
$mj = 3.14*$r1*$r1 - 3.14*$r2*$r2;
echo $mj;
?>
</body>
</html>

輸出的結果是:
這種方式叫  面向過程的方式
1.將圓抽象為一個類
class yuan
{
    var $banjing; //圓類的一個成員變量
   
面積,成員方法
    function mianji()
    {
        return 3.14*$this->banjing*$this->banjing;
    }
}
2.實例化對象
$yuan = new yuan();
$yuan->banjing = 10;
echo $yuan->mianji();
var_dump($yuan);
$this關鍵字在類里面代表該對象
//造一個大圓
$maxyuan = new yuan();
$maxyuan->banjing = 10;
//造一個小圓
$minyuan = new yuan();
$minyuan->banjing = 5;
echo $maxyuan->mianji()-$minyuan->mianji();
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
</head>
<body>
<?php
class yuan
{
var $banjing;
function mianji()
{
return 3.14*$this->banjing*$this->banjing;
}
}
//實例化對象
/*$yuan=new yuan(); 由類實例化出來的,這個圓里面就有一個東西半徑
$yuan->banjing = 10; 給半徑賦值
echo $yuan->mianji(); ->用來調用
var_dump($yuan);*/
$maxyuan=new yuan();
$maxyuan->banjing=10;
$minyuan=new yuan();
$minyuan->banjing=5;
echo $maxyuan->mianji()-$minyuan->mianji();
?>
</body>
</html>

輸出的結果和面向過程方式輸出的答案一樣
 
(繼續閱讀...)
文章標籤

AutoPoster 發表在 痞客邦 留言(0) 人氣(0)

  • 個人分類:生活學習
▲top
  • 3月 09 週四 201720:30
  • php面向對象


文章出處
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
</head>
<body>
<?php
class YunSuan
{
public $a=10;
public $b=5;
//構造方法
function __construct($a1,$b1)
{
$this->a = $a1;
$this->b = $b1;
}
//析構方法,在對象內存釋放的時候執行
function __destruct()
{
echo "該對象釋放了";
}
private function Jia()
{
return $this->a+$this->b;
}
function Jian()
{
return $this->a-$this->b;
}
function Cheng()
{
return $this->a*$this->b;
}
function Chu()
{
return $this->a/$this->b;
}
}
//造對象 實例化對象
$y = new YunSuan(10,5);
var_dump($y);
echo $y->Chu();
//訪問修飾符
//public 公有的,任何地方都可以訪問
//protected 受保護的,只能在該類或該類的子類中訪問
//private 私有的,只能在該類中訪問
//__開頭的方法在面向對象里面成為魔術方法
//構造函數
//1.寫法特殊:方法名特殊
//2.執行時間特殊:造對象的時候就執行
//對對象里面的成員進行初始化

?>
</body>
</html>

默認都是公有的  public 在任何地方都可以訪問,如果改成外界不能訪問的,就可以加訪問修飾符protected,在花括號里面可以訪問的,即該類中。
訪問修飾符就是為了在做類時,更加的安全,外界不能隨便訪問到
原來定義的var可以用public代替
即使不寫構造方法,它在每個類中也依然存在,只不過看不到而已,如果傳參數過去的話,就得寫構造方法,不然就會出錯
__construct 構造方法,在每個類中都可以這樣寫
 
(繼續閱讀...)
文章標籤

AutoPoster 發表在 痞客邦 留言(0) 人氣(0)

  • 個人分類:生活學習
▲top
  • 3月 09 週四 201720:30
  • php 封裝


文章出處
復習一下之前說的php的其他知識
類
由眾多對象抽象出來的
對象
由類實例化出來的   (所有的東西都可以把它看做成對象)
(類是不能直接用的,關鍵字new,可以造一個新對象來提取類中的功能)
成員變量
成員方法(成員函數)
成員屬性
訪問修飾符(成員的前面可以加,來決定成員的權限)
public 公有的
protected 受保護的(只能在該類或該類子類可以訪問)
private 私有的(只能在該類,花括號內可以訪問)
構造函數(對類里面某個成員可以進行初始化)
1.寫法特殊 
2.執行時間特殊
面向對象的三大特性:
1、封裝
2、繼承
3、多態
 
封裝:
目的:為了使一個類更加安全
做法:1、將成員變量變為私有的
         2、在類里面做方法來間接訪問成員變量
         3、在方法里面加控制
例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
</head>
<body>
<?php
class Ren
{
public $code; //人員代號
private $name; //人員名稱
private $sex; //人員性別
private $age; //人員年齡,必須在18-50周歲之間
//構造方法,用來初始化性別

function __construct($s)
{
$this->sex = $s;
}
/*//造一個修改年齡的方法
function SetAge($a)
{
//加控制
if($a>18 && $a<50)
{
$this->age = $a;
}
}
//造一個獲取age值的方法
function GetAge()
{
return $this->age;
}
*/
//給變量賦值的魔術方法
function __set($n,$v)
{
if($n=="age")
{
if($v>18 && $v<50)
{
$this->$n = $v;
}
}
else
{
$this->$n = $v;
}
}
//__get魔術方法,用來取變量值的
function __get($n)
{
return $this->$n;
}
}
//造對象
$r = new Ren("男");
//$r->SetAge(30);
//$r->__set("age",30);

$r->age = 30; //自動調用__set()方法,將變量名當做第一個參數,將等號右邊的值當做第二個參數
$r->name = "張三";
//echo $r->sex; //自動調用__get()方法,將變量名當做參數
//var_dump($r);

class Dog
{
private $name;
function Jiao()
{
echo $this->name."在叫";
}
function SetName($n)
{
$this->name = $n;
return $this;
}
}
$d = new Dog();
$d->SetName("旺財")->Jiao();
?>
</body>
</html>

 
(繼續閱讀...)
文章標籤

AutoPoster 發表在 痞客邦 留言(0) 人氣(2)

  • 個人分類:生活學習
▲top
  • 3月 09 週四 201720:30
  • 面向對象的設計模式


文章出處
1、單例模式
目的:為了控制對象的數量(只能夠有一個,相當于類的計劃生育)
做法
1.將類的構造函數做成私有的
2.在類里面做了一個公有的函數來造對象
3.將該函數變為靜態的
4.在函數里面加控制
例:
<?php
class Ren
{
public $name;
//成員變量用來存儲該對象
static public $dx;
private function __construct() 私有的 構造函數
{
}
static function DuiXiang() 把方法變成靜態的
{
if(empty(self::$dx)) 判斷 是否是空
{
self
::$dx = new Ren();
}
return self::$dx;
}
}
$r = Ren::DuiXiang();
$r->name = "張三";
兩個會指向一個函數
$r1 = Ren::DuiXiang();
$r1->name = "李四";
var_dump($r);
?>

2、工廠模式
用來生產對象
例:
<?php
abstract class YunSuan
{
public $a;
public $b;
function Suan()
{
}
}
class Jia extends YunSuan
{
function Suan()
{
return $this->a+$this->b;
}
}
class Jian extends YunSuan
{
function Suan()
{
return $this->a-$this->b;
}
}
class Cheng extends YunSuan
{
function Suan()
{
return $this->a*$this->b;
}
}
//做一個工廠類
class GongChang
{
static function ShengChan($fuhao)
{
switch($fuhao)
{
case "+":
return new Jia();
break;
case "-":
return new Jian();
break;
case "*":
return new Cheng();
break;
}
}
}
//算加法
$suan = GongChang::ShengChan("*");
$suan->a = 10;
$suan->b = 5;
echo $suan->Suan();
?>

 
(繼續閱讀...)
文章標籤

AutoPoster 發表在 痞客邦 留言(0) 人氣(1)

  • 個人分類:生活學習
▲top
  • 3月 09 週四 201720:30
  • Php基礎知識測試題


文章出處
 
一:選擇題
 
1. LAMP具體結構不包含下面哪種(A      )
A:Windows系統               如果是這個就是WMP
B:Apache服務器 
C:MySQL數據庫
D:PHP語言
2. 以下哪個SQL語句是正確的(D    )
A:insert into users (‘p001’,’張三’,’男’);              少了一個values
B:create table (Code int primary key);       漏了一個表名
C:update users Code=’p002’ where Code=’p001’;    少了一個set
D:select Code as ‘代號’ from users;
3. 以下哪種類型是B/S架構的正確描述(C      )       B/S 瀏覽器
A:需要客戶安裝客戶端                在瀏覽器上打開,并不需要安裝客戶端
B:不需要安裝就可以使用            瀏覽器的一些程序也需要安裝后在使用的   例如cms
C:依托瀏覽器的網絡系統
D:不需要服務器的系統            每種程序都需要服務器
4 .php中哪個語句可以輸出變量類型(C     )
A:echo      輸出字符串 

B:print      輸出字符串
C:var_dump()   輸出類型  變量的值
D:print_r()           輸出數組的
 
 
5 .php定義變量正確的是(  B     )
A:var a = 5;     js定義方式
B: $a = 10;
C:int b = 6;     強類型定義方式
D:var $a = 12;   不需要var
6 .php中單引號和雙引號包含字符串的區別正確的是(     D)
A:單引號速度快,雙引號速度慢
B:雙引號速度快,單引號速度慢   A和B定義方式沒有速度差別
C:單引號里面可以解析轉義字符      可以原樣輸出,不能解析
D:雙引號里面可以解析變量
7 .若x,y為整型數據,以下語句執行的$y結果為(     B     )
$x = 1;        x定義等于1
++$x;         x等于2了
 $y =$x++;        先把x值附給y,在把x自加1所有等于2!!如果是++$x就是3
    A:1    B:2    C:3    D:0
8 .php中關于字符串處理函數以下說法正確的是(     C     )
A:implode( )方法可以將字符串拆解為數組             explode可以
B:str_replace()可以替換指定位置的字符串            這個詞是查找替換
C:substr( )可以截取字符串
D:strlen( )不能取到字符串的長度                        可以獲取長度
9 .以下代碼運行結果為:(   A)
       <?php
$first = "This course is very easy !";
$second = explode(" ",$first);
$first = implode(",", $second);
echo $first; 
?>
A  This,course,is,very,easy,!         
B  This course is very easy !         
C  This course is very easy !,        
D  提示錯誤
 
10 .以下程序橫線處應該使用的函數為:( B)
<?php
      $email = ‘langwan@thizlinux.com.cn’;
      $str = ____($email,‘@’);      
      $info = ____(‘.’,$str);
      ____($info);
   ?>
   輸出結果為:
Array ([0] => @thizlinux [1]=>com[2]=>cn)
A:strchr, split, var_dump
B:strstr, explode, print_r
C:strstr,explode, echo
D:strchr, split, var,_dump
11、下列說法正確的是:( B)
A.
數組的下標必須為數字,且從“0”開始                   強類型里面正確
B.
數組的下標可以是字符串              
C.
數組中的元素類型必順一致                              都可以往里存
D.
數組的下標必須是連續的                                不一定非要連續的
12、下面哪項描述是錯誤的?( AC
)

A.
父類的構造函數與析構函數不會自動被調用                  都是自動調用的
B.
成員變量需要用public protected private修飾,在定義變量時不再需要var關鍵字
C.
父類中定義的靜態成員,不可以在子類中直接調用             可以調用
D.
包含抽象方法的類必須為抽象類,抽象類不能被實例化
13、關于exit( )與die( )的說法正確的是(  CD)
A、當exit( )函數執行會停止執行下面的腳本,而die()無法做到                兩個都
B、當die()函數執行會停止執行下面的腳本,而exit( )無法做到          能終止程序
C、die()函數等價于exit()函數
D、die()函數于exit()函數沒有直接關系                          
 
14、下面程序運行結果(B  )
<?php
$nextWeek = time() + (7 * 24 * 60 * 60);
echo 'Now: '. date('Y-m-d') ."\n";
echo 'Next Week: '. date('Y-m-d', $nextWeek) ."\n";
?>
 
A、得到今天的日期(月-日)
B、得到今天的日期(年-月-日)與下周的日期(年-月-日)
C、得到現在的時間(小時-分-秒)
D、得到現在到下周的時間間隔
15、以下代碼執行結果為:(
D )

 
<?php
functionprint_A(){
      $A = "phpchina";
      echo "A值為:
".$A."<p>";
//return
($A);
      }
      $B = print_A();
      echo "B值為:
".$B."<P>";
    ?>
A  A值為:
   B值為:
B  A值為:
B值為: phpchina
C  A值為: phpchina
   B值為: phpchina
D  A值為: phpchina
   B值為: 
16、以下代碼執行結果為:(
C)

 
<?php
$A="Hello
";                 
functionprint_A()              
{
 $A = "phpmysql !!";
global $A;                            global $A 全局變量
echo
$A;
}
 
echo
$A;
print_A();
?>
 
A
Hello
B
phpmysql !!
C
Hello Hello
D
Hello  phpmysql !!
17、以下代碼輸出的結果是(      B)
$a = "aa";
$aa = "bb";
echo $$a;
Aaa
B
bb
C
$aa
D
$$a
18、以下代碼輸出的結果是(      A)
<?php
$a = 10;
$b =
&$a;
echo $b;
$b = 15;
echo $a;
?>
A
1015
B
1010
C
1515
D
1510
 
19、php輸出拼接字符串正確的是(   C     )
A
echo $a+”hello”
B
echo $a+$b
C
echo $a.”hello”
D
echo ‘{$a}hello’       如果雙引號的話可以
20、在用瀏覽器查看網頁時出現404錯誤可能的原因是
(  B)

A
頁面源代碼錯誤
B
文件不存在
C
與數據庫連接錯誤
D
權限不足
21、以下代碼輸出的結果為(      D)
<?php
$attr
=
array("0"=>"aa","1"=>"bb","2"=>"cc");
echo
$attr[1];
?>
A
會報錯!
B
aa
C
輸出為空
D
bb
22、面向對象的三大特性中哪個不屬于封裝的做法(B       )
A
將成員變為私有的
B
將成員變為公有的
C
封裝方法來操作成員
D
使用__get()和__set()方法來操作成員
23、php的源碼是(      A)
A.開放的    B.封閉的    C.需購買的     D.完全不可見的
 
24、php如何輸出反斜杠(  D     )
A.\n    B.\r     C.\t     D.\\
25、下列哪項不屬于OOP的三大特性(      B)
A:封裝      B:重載        C:繼承        D:多態
26、以下關于字符串的說法正確的是(C     )
    A:echo “hello\nworld”;在頁面可以實現換行               在源代碼內可以換行
    B:echo ‘helloworld{$a}’;可以解析變量a的值               單引號不能解析變量
    C:$str=<<<AA  
        Hello
world
AA;
該方式可以定義字符串
D:print $a,”hello”;可以輸出數據不報錯                   print可以輸出一個字符串,不能連續輸出
27、下列說法不正確的是(         D)
A:list()函數可以寫在等號左側
B:each()函數可以返回數組里面的下一個元素
C:foreach()遍歷數組的時候可以同時遍歷出key和value
D:for循環能夠遍歷關聯數組                  遍歷索引
28、關于面向對象的說法不正確的是(       C)
    A:OOP是面向對象的簡稱
    B:靜態成員是屬于類的
    C:普通成員是屬于類的                      屬于對象的
    D:類里面的$this關鍵字代表該對象本身
29、下列定義函數的方式是正確的(   B     )
    A:public void Show(){  }      不是php里面的
    B:function Show($a=5,$b){  }
C:function Show(a,b){  }      變量前面加$符號
D:functionShow(int $a){  }      不需要加int
30、下面哪個選項沒有將 john 添加到 users 數組中? ( B )
A.
$users[] = "john";
B.
array_add($users, "john");
C.
array_push($users, "john");
D.
$users [“aa”]= "john" ;
31、php中以下能輸出1到10之間的隨機數的是(C    )
    A:echo rand();
    B:echorand()*10;
    C:echo rand(1,10);
    D:echorand(10);
 
32、php中以下能輸出當前時間格式像:2016-5-6 13:10:56 的是(      A)
    A:echodate(“Y-m-d H:i:s”);       date方法用來  格式化輸出時間  括號里面寫的是格式化字符串
    B:echo time();        直接輸出時間戳了
    C:echodate();             方法會報錯
    D:echotime(“Y-m-d H:i:s”);    time里面不能寫雙引號
33、以下哪項不屬于函數的四要素(   D     )
A:返回類型
    B:函數名
    C:參數列表
    D:訪問修飾符
34、以下說法正確的是(      C)
    A:@符號可以屏蔽所有錯誤
       B:exit;后面的語句可以繼續執行
    C:10/4得出的結果是2.5
    D:$$a;這種寫法是錯誤的
 
35、以下關于構造函數說法不正確的是(    B     )
A:研究一個類,首先我們要研究的函數是構造函數
       B:構造函數寫法和普通函數沒有區別
    C:構造函數執行比較特殊
    D:如果父類中存在構造函數并且需要參數,子類在造對象的時候也應該傳入相應的參數。
36、以下關于多態的說法正確的是(   D     )
A:多態在每個對象調用方法時都會發生
       B:多態是由于子類里面定義了不同的函數而產生的
    C:多態的產生不需要條件
    D:當父類引用指向子類實例的時候,由于子類對父類的方法進行了重寫,在父類引用調用相應的函數的時候表現出的不同稱為多態。
37、以下代碼在頁面上會輸出多少行數據( A)
$attr
= array(1,2,3,4);
while(list($key,$value)
= each($attr))
    {
        echo
$key."=>".$value."<br>";
    }
while(list($key,$value)
= each($attr))
    {
        echo
$key."=>".$value."<br>";
    }
A:4B:6    C:8    D:12
38、以下說法正確的是(C   )
A:$attr代表數組,那么數組長度可以通過$attr.length取到
       B:unset()方法不能刪除數組里面的某個元素      可以刪除
    C:php的數組里面可以存儲任意類型的數據
    D:php里面只有索引數組          還有關聯數組
39、以下說法不正確的是(         B)
A:模糊查詢使用的關鍵字是like
       B:排序查詢asc是降序,desc是升序
    C:分頁查詢使用的關鍵字是limit
    D:mysql如果只安裝服務不安裝界面也可以正常使用
40、以下代碼輸出的結果為(      D)
       $a = "cc";
$cc =
"dd";
echo
$a=="cc"?"{$$a}":$a;
A:cc
       B:$a
    C:$$a
    D:dd
 
二、判斷題
 
1.php中布爾類型數據只有兩個值:真和假。(   正確 )     邏輯的真和假
2.php中連接兩個字符串的符號是“+ ”。(    錯誤 )        用的是   點
3.php可以使用“scanf”來打印輸出結果。(    錯誤 )      echo   print
4.每個語句結尾都要加“;”來表示語句結束。 (   正確  )
5.php變量使用之前需要定義變量類型。(  錯誤   )      不需要  會根據后邊的值自動確定類型
6.在php中“==”的意思是“等于”。(   正確   )        一個等號代表賦值,雙等號代表等于
7.while和do-while語句都是先判斷條件再執行循環體。(    錯誤  )    while是先判斷條件 do-while是先執行循環體再判斷
8.“break ”代表的意思是跳出循環。(   正確  )      continue是跳出當前這一次循環
9.若定義數組時省略關鍵字key,則第三個數組元素的關鍵字為3。(   錯誤  )             應該是2
10.mysql數據庫中查詢數據用select語句。(    正確   )
 
(繼續閱讀...)
文章標籤

AutoPoster 發表在 痞客邦 留言(0) 人氣(9)

  • 個人分類:生活學習
▲top
  • 3月 09 週四 201720:30
  • 連接數據庫


文章出處
1、造連接對象
$db=new MySQLi();
里面的參數有四個,分別是:
"localhost"     數據庫的地址
"root"           數據庫的用戶名
"123"           數據庫的密碼
"mydb"        要連接的哪個數據庫
2、判斷連接是否有錯
if( mysqli_connect_error())
{
        echo ("連接失敗")                      或者直接  die("連接失敗");
        exit;
}
3、準備SQL語句
$sql="select * from 表名";
4、執行SQL語句,返回結果集對象
$result=$db->query($sql);
失敗時會返回false
5、從結果集里面取數據
$attr=$result->fetch_all();                     返回所有數據,并以二維數組的方式存在
var_dump($attr);
例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
</head>
<body>
<?php
$db=new MySQLi("localhost","root","123","text11"); //密碼用自己的
$sql=" select * from student"; //這里用的是學生表
$result=$db->query($sql);
$attr=$result->fetch_all();
var_dump($attr);
?>
</body>
</html>

運行后:
里面還可以放參數,有三個可選參數:
1、MYSQLI_ASSOC                 返回關聯數組
運行后,結果如下:
2、 MYSQLI_NUM          返回索引數組
運行后結果如下:
 
 3、MYSQLI_BOTH           返回索引和關聯都有
運行結果如下:
$attr = $result->fetch_array();//返回當前這條數據,返回的是一維數組,默認是索引關聯都有
$attr = $result->fetch_assoc(); //返回當前這條數據,返回的是一維關聯數組
$attr = $result->fetch_object(); //返回當前這條數據的對象
$attr = $result->fetch_row(); //返回當前這條數據,返回的是索引數組
輸出表格內的每一條信息:
如下
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
</head>
<body>
<?php
$db=new MySQLi("localhost","root","726","text11"); //密碼用自己的
$sql=" select * from student"; //這里用的是學生表
$result=$db->query($sql);
$attr = $result->fetch_all();
foreach($attr as $v)
{
echo "<div>{$v[0]}--{$v[1]}--{$v[2]}--{$v[3]}--{$v[4]}</div>";
}
/*while($attr = $result->fetch_row())
{
echo "<div>{$attr[0]}--{$attr[1]}--{$attr[2]}--{$attr[3]}--{$attr[4]}</div>";
}
*/
?>
</body>
</html>

在這里用whine循環也可以。
 運行的結果如下:
 
用代碼往數據庫里添加數據,
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
</head>
<body>
<?php
$db=new MySQLi("localhost","root","726","text11"); //密碼用自己的
//2.準備一條SQL語句

$sql = "insert into student values('110','小紅','女','0','9555')"; //用的自己的一張學生表
//3.執行SQL語句

$result = $db->query($sql);
//執行成功返回true,執行失敗返回false
?>
</body>
</html>

運行的結果如下:
數據已經添加進去,注意運行后要看數據庫里的數據
(繼續閱讀...)
文章標籤

AutoPoster 發表在 痞客邦 留言(0) 人氣(5)

  • 個人分類:生活學習
▲top
  • 3月 09 週四 201720:30
  • 登錄注冊的頁面制作


文章出處
下面來做一個超簡易的登錄注冊
先來說注冊
得先寫個大標題證明是注冊頁面,然后再就是文本框填內容,在注冊這里建三個文本框,用戶名,密碼,還有姓名,最后還有一個注冊的按鈕,用來跳轉頁面
分析好了之后,先建注冊頁面的第一個網頁
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
</head>
<body>
<h1>注冊頁面</h1>
<form action="./zhucechuli.php" method="post">
<div>用戶名:<input type="text" name="yh" /></div>
<div>密碼:<input type="text" name="mm" /></div>
<div>姓名:<input type="text" name="xm" /></div>
<div><input type="submit" value="注冊"/></div>
</form>
</body>
</html>

運行后是這樣的
<form action="./zhucechuli.php" method="post"></form>
這句話的意思就是那個注冊按鈕一點,就要把里面的數據傳送到哪個頁面,.php那個文件是即將我們要建的一個,必須是在當前目錄下,post是可以使傳送的數據信息在瀏覽器地址那里隱藏,用get的話就是顯示的
然后再建注冊處理頁面
新建一個php格式的文件,命名后面必須加.php,然后保存,保存的地址要和注冊頁面的地址在同一目錄下
因為是php文件,里面的內容可以都不用了,改成<?php 內容 就可以,尾部也可以省略掉
<?php 
$yh = $_POST["yh"];
$mm = $_POST["mm"];
$xm = $_POST["xm"];
//1.造連接對象
$db = new MySQLi("localhost","root","726","text11"); 連接數據庫 ,我用的是text11
//2.寫SQL語句
$sql = "insert into zhuce values('{$yh}','{$xm}','{$mm}')"; 我用的是zhuce的表 里面就三列 yh xm mm
//3.執行
$r = $db->query($sql);
if($r)
{
echo "注冊成功!";
}
else
{
echo "注冊失敗!";
}

通過注冊頁面,添上注冊內容,注冊后的顯示:
 
運行中可能會出現亂碼,改一下文字編碼就可以了,改成國際通用的
這樣注冊頁面就做好了!
下面是登陸頁面
登陸頁面用的是,兩個文本框,一個按鈕
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
</head>
<body>
<h1>登錄頁面</h1>
<form action="./dengluchuli.php" method="post">
<div>用戶名:<input type="text" name="yh" /></div>
<div>密碼:<input type="password" name="mm" /></div>
<div><input type="submit" value="登錄"/></div>
</form>
</body>
</html>

 
同樣的也是要做過登陸處理頁面,在當前目錄下
 
<?php
$yh = $_POST["yh"];
$mm = $_POST["mm"];
//1.造連接對象
$db = new MySQLi("localhost","root","726","text11");
//2.寫SQL語句
$sql = "select mm from zhuce where yh='{$yh}'";
//3.執行
$reslut = $db->query($sql);
//4.取數據
$attr = $reslut->fetch_row();
if($attr[0]==$mm && !empty($mm))
{
echo "登錄成功!";
}
else
{
echo "登錄失敗!";
}

 
再填登陸頁面時,如果和注冊的用戶密碼不一致,則登陸失敗,一樣的話才登陸成功,打開數據庫會發現,注冊的內容都在里面
 
(繼續閱讀...)
文章標籤

AutoPoster 發表在 痞客邦 留言(0) 人氣(5)

  • 個人分類:生活學習
▲top
  • 3月 09 週四 201720:30
  • 修改


文章出處
上一篇,我們講了一張表如何刪除和添加數據,下面講一下如何修改一張表
還是使用那張水果表,多加上一列,修改
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
</head>
<body>
<h1>水果表</h1>
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td>代號</td>
<td>名稱</td>
<td>價格</td>
<td>產地</td>
<td>庫存</td>
<td>操作</td>
</tr>
<?php
//造連接對象
$db = new MySQLi("localhost","root","726","text11");
//寫SQL語句
$sql = "select * from fruit";
//執行
$result = $db->query($sql);
//取數據
/*$attr = $result->fetch_all();
foreach($attr as $v)
{
echo "<tr><td>{$v[0]}</td><td>{$v[1]}</td><td>{$v[2]}</td><td>{$v[3]}</td><td>{$v[4]}</td></tr>";
}
*/
while($attr = $result->fetch_row())
{
echo "<tr><td>{$attr[0]}</td><td>{$attr[1]}</td><td>{$attr[2]}</td><td>{$attr[3]}</td><td>{$attr[4]}</td><td>
<a href='shanchu.php?code={
$attr[0]}' onclick=\"return confirm('確定刪除么')\">
刪除
</a>
<a href='xiugai.php?code={
$attr[0]}'>修改</a>
</td></tr>
";
}
//上述顯示數據的兩種方法都可以用
?>
</table>
<a href="tianjia.php">添加數據</a>
</body>
<script type="text/javascript">
</script>
</html>

使用的a 標簽,href地址是xiugai.php    也就是說待會得新建一個網頁,根據索引來修改
這樣后面就多了一個修改列:
點擊修改,它會自動跳轉到xiugai.php頁面
建一個新的頁面,里面就要寫xiugai.php  的內容了
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
</head>
<body>
<h1>修改水果</h1>
<?php
$code = $_GET["code"];
//造連接對象
$db = new MySQLi("localhost","root","726","text11");
//寫SQL語句
$sql = "select * from fruit where ids='{$code}'";
//執行
$result =$db->query($sql);
//取數據
$attr = $result->fetch_row();
?>
<form action="xiugaichuli.php" method="post">
<input type="hidden" name="ids" value="<?php echo $attr[0] ?>" />
<div>名稱:<input type="text" name="name" value="<?php echo $attr[1] ?>"/></div>
<div>價格:<input type="text" name="price" value="<?php echo $attr[2] ?>"/></div>
<div>產地:<input type="text" name="source" value="<?php echo $attr[3] ?>"/></div>
<div>庫存:<input type="text" name="numbers" value="<?php echo $attr[4] ?>"/></div>
<div><input type="submit" name="修改" /></div>
</form>
</body>
</html>

 
顯示的是原先默認的值
 
可以在這個基礎上改
點擊提交后還要把這些數據提交到一個頁面,xiugaichuli.php
所以再建一個網頁
<?php
$ids = $_POST["ids"];
$name = $_POST["name"];
$price = $_POST["price"];
$source = $_POST["source"];
$numbers = $_POST["numbers"];
//造連接對象
$db = new MySQLi("localhost","root","726","text11");
//寫SQL語句
$sql = "update fruit set name='{$name}',price='{$price}',source='{$source}',numbers='{$numbers}' where ids='{$ids}'";
//執行
$r=$db->query($sql);
if($r)
{
header("location:shuiguobiao1.php");
}
else
{
echo "修改失敗!";
}

修改成功的話直接返回水果表
來看一下,能否修改成功?
 
 
顯然成功了
下面再來寫兩張表,一張主表一張從表,有外鍵關系的兩張表
一張info表
一張nation表
做個info表的網頁
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
</head>
<body>
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td>代號</td>
<td>姓名</td>
<td>性別</td>
<td>民族</td>
<td>生日</td>
<td>操作</td>
</tr>
<?php
$db = new MySQLi("localhost","root","726","shuang");
$sql = "select * from info";
$result = $db->query($sql);
$attr=$result->fetch_all();
foreach($attr as $v)
{
$sex = $v[2];
$sex = $sex?"男":"女"; //性別改成漢字
$nation = $v[3];
$sqln = "select name from nation where code='{$nation}'"; //顯示民族
$rn = $db->query($sqln);
$an = $rn->fetch_row();
echo "<tr><td>{$v[0]}</td><td>{$v[1]}</td><td>{$sex}</td><td>{$an[0]}</td><td>{$v[4]}</td><td><a href='xiugaiinfo.php?code={$v[0]}'>修改</a></td></tr>";
}
?>
</body>
</html>

運行起來是這樣的一張表:
點擊修改會跳轉到xiugaiinfo.php  的頁面,所以要建一個修改頁面
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
</head>
<body>
<?php
$code = $_GET["code"];
$db = new MySQLi("localhost","root","726","shuang");
$sql = "select * from info where code='{$code}'";
$result = $db->query($sql);
$attr = $result->fetch_row();
?>
<h1>修改人員信息</h1>
<form action="infochuli.php" method="post">
<div>
<input type="hidden" value="<?php echo $attr[0]
?>
" name="code" />
</div>
<div>
姓名:
<input type="text" name="name" value="<?php echo $attr[1]
?>
" />
</div>
<div>
性別:
<input <?php echo $attr[2]?"checked='checked'":
""; ?>type="radio" name="sex" value="1" />男
<input <?php echo $attr[2]?"checked='checked'":
""; ?>type="radio" name="sex" value="0" />女
</div>
<div>
民族:
<select name="nation">
<?php
$sqln = "select * from nation";
$rn = $db->query($sqln);
$an = $rn->fetch_all();
foreach ($an as $vn)
{
if($attr[3]==$vn[0])
{
echo "<option selected='selected'
value='{
$vn[0]}'>{$vn[1]}</option>";
}
else
{
echo "<option value='{$vn[0]}'>{$vn[1]}</option>";
}
}
?>
</select>
</div>
<div>
生日:
<input type="text" name="birthday" value="<?php echo $attr[4]
?>
" />
</div>
<div>
<input type="submit" value="修改" />
</div>
</form>
</body>
</html>

把原先的數據設為默認值,在這個基礎上改
最后點擊修改跳轉到infochuli.php
所以要建一個infochuli.php的頁面
<?php
$code = $_POST["code"];
$name = $_POST["name"];
$sex = $_POST["sex"];
$nation = $_POST["nation"];
$birthbay = $_POST["birthday"];
$db = new MySQLi("localhost","root","726","shuang");
$sql = "update info set name='{$name}',sex={$sex},nation='{$nation}',birthday='{$birthbay}' where code='{$code}'";
echo $sql;
$r = $db->query($sql);
if($r)
{
header("location:info.php");
}
else
{
echo "修改失敗!";
}

如果修改成功的話它會返回info.php頁面
來看一下能否修改成功
 
修改成功了!
 
(繼續閱讀...)
文章標籤

AutoPoster 發表在 痞客邦 留言(0) 人氣(5)

  • 個人分類:生活學習
▲top
  • 3月 09 週四 201720:30
  • 單條件和多條件查詢


文章出處
首先在數據庫中,做這樣一張汽車表:
然后寫代碼,在頁面中導出這張表
再在上面加個文本框還有查詢按鈕
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
</head>
<body>
<h1>汽車查詢</h1>
<?php
$db = new MySQLi("localhost","root","726","shuang" );
$tj = " 1=1"; //條件默認恒成立
$name = "";
if(!empty($_POST["name"]))
{
$name = $_POST["name"];
$tj = " name like '%{$name}%'";
}
?>
<form action="carchaxun.php" method="post">
<div>請輸入名稱:
<input type="text" name="name" />
<input type="submit" value="查詢" />
</div>
<br />
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td>代號</td>
<td>名稱</td>
<td>系列</td>
<td>時間</td>
<td>油耗</td>
<td>功率</td>
</tr>
<?php
$sql = "select * from car where {$tj}";
echo $sql;
$relsult = $db->query($sql);
$attr=$relsult->fetch_all();
foreach($attr as $v)
{
//"<span style='color:red'>{$name}</span>" 這個方式也可以,讓字體變紅
$str=str_replace($name,"<mark>{$name}</mark>",$v[1]); mark可以用于標記
echo "<tr>
<td>{
$v[0]}</td>
<td>{
$str}</td>
<td>{
$v[2]}</td>
<td>{
$v[3]}</td>
<td>{
$v[4]}</td>
<td>{
$v[5]}</td>
</tr>
";
}
?>
</table>
</body>
</html>

運行后:
輸入關鍵字“奧迪”
單條件查詢就做好了
下面再來新建一個頁面,做多條件查詢
先復制單條件查詢頁面的代碼,在它的條件上增加,改變
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
</head>
<body>
<h1>汽車查詢</h1>
<?php
$db = new MySQLi("localhost","root","726","shuang" );
$tj1 = "1=1";
$tj2 = "1=1";
$name = "";
if(!empty($_POST["name"]))
{
$name = $_POST["name"];
$tj1 = "name like '%{$name}%'";
}
if(!empty($_POST["brand"]))
{
$brand = $_POST["brand"];
$tj2 = " brand = '{$brand}'";
}
?>
<form action="carduotiaojian.php" method="post">
<div>請輸入名稱:
<input type="text" name="name" />
請輸入系列代號:
<input type="text" name="brand" />
<input type="submit" value="查詢" />
</div>
<br />
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td>代號</td>
<td>名稱</td>
<td>系列</td>
<td>時間</td>
<td>油耗</td>
<td>功率</td>
</tr>
<?php
$sql = "select * from car where {$tj1} and {$tj2}";
echo $sql;
$relsult = $db->query($sql);
$attr=$relsult->fetch_all();
if(count ($attr)>0) //判斷有沒有輸出數據
{
foreach($attr as $v)
{
//"<span style='color:red'>{$name}</span>" 這個方式也可以,讓字體變紅
$str=str_replace($name,"<mark>{$name}</mark>",$v[1]);
echo "<tr>
<td>{
$v[0]}</td>
<td>{
$str}</td>
<td>{
$v[2]}</td>
<td>{
$v[3]}</td>
<td>{
$v[4]}</td>
<td>{
$v[5]}</td>
</tr>
";
}
}
else
{
echo "<script> alert ('沒有查到數據');</script>";
}
?>
</table>
</body>
</html>

在這里又多加了一個查詢條件,有幾個查詢條件,就加幾個if
這里有兩個
如果兩個文本只填一個的話也是可以的,如果輸入名稱“寶馬”   系列號“b004”
如果兩個都不填,然后查詢,返回的還是默認全部的值
如果隨便填一個沒有的值,則會彈出對話框:
要注意返回的地址是否正確,不然就不會運行成功
 
(繼續閱讀...)
文章標籤

AutoPoster 發表在 痞客邦 留言(0) 人氣(118)

  • 個人分類:生活學習
▲top
  • 3月 09 週四 201720:30
  • 復選框式查詢 例題租房子


文章出處
先看一下最后運行的結果,再來分析一下這個題
大概就是這個樣子的,首先得先在數據庫建一張表
上述的復選框都是根據數據庫的表查出來的
連接數據庫
先寫大標題租房子
然后寫個div 里面寫區域的復選框
再寫區域下面的一些復選框
嵌入php代碼 從表里查到所有的區域去重
調用方法,循環遍歷 出現的名稱,做復選框
租賃類型和房屋類型都是那么做
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
</head>
<body>
<?php
$db = new MySQLi("localhost","root","726","housedb");
//一共有四個條件
$tj1 = "1=1";
$tj2 = "1=1";
$tj3 = "1=1";
$tj4 = "1=1";
//區域的條件
if(!empty($_POST["qx"]) && count($_POST["qx"])>0)//判斷區域有沒有傳入數據,qs是一個數組 并且它數量大于0
{
$qx = $_POST["qx"];
$str = implode("','",$qx); 分隔符 返回一個字符串
$tj1 = " area in('{$str}') ";
}
//租賃類型的條件
if(!empty($_POST["zl"]) && count($_POST["zl"])>0)
{

$zl = $_POST["zl"];
//code in('類型','數量','都好久','隊伍','額')
$str = implode("','",$zl);
$tj2 = " renttype in('{$str}') ";
}
//房屋類型的條件
if(!empty($_POST["fw"]) && count($_POST["fw"])>0)
{

$fw = $_POST["fw"];
//code in('類型','數量','都好久','隊伍','額')
$str = implode("','",$fw);
$tj3 = " housetype in('{$str}') ";
}
//關鍵字的條件
if(!empty($_POST["key"]))
{
$key = $_POST["key"];
$tj4 = " keyword like '%{$key}%' ";
}
?>
<h1>租房子</h1>
<form action="zfchaxun.php" method="post">
<div>區域:<input type="checkbox" onclick="checkall(this)" />全選</div>
<div>
<?php
$sqlq = "select distinct area from house";
$rq = $db->query($sqlq);
$aq = $rq->fetch_all();
foreach($aq as $v)
{
echo "<input type='checkbox' name='qx[]' value='{$v[0]}'> {$v[0]}";
}
?>
</div>
<br />
<div>租賃類型:<input type="checkbox" />全選</div>
<div>
<?php
$sqlz = "select distinct renttype from house";
$rz = $db->query($sqlz);
$az = $rz->fetch_all();
foreach($az as $v)
{
echo "<input type='checkbox' name='zl[]' value='{$v[0]}'> {$v[0]}"; //設置name值
}
?>
</div>
<br />
<div>房屋類型:<input type="checkbox" />全選</div>
<div>
<?php
$sqlf = "select distinct housetype from house";
$rf = $db->query($sqlf);
$af = $rf->fetch_all();
foreach($af as $v)
{
echo "<input type='checkbox' name='lx[]' value='{$v[0]}'> {$v[0]}";
}
?>
</div>
<br />
<div>關鍵字:<input type="text" name="key" />
<input type="submit" value="查詢" />
</div>
<br />
</form>
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td>關鍵字</td>
<td>區域</td>
<td>面積</td>
<td>租金</td>
<td>租賃類型</td>
<td>房屋類型</td>
</tr>
<?php
$sqlall = "select * from house where {$tj1} and {$tj2} and {$tj3} and {$tj4}";
$rall = $db->query($sqlall);
$aall = $rall->fetch_all();
foreach($aall as $v)
{
echo "<tr>
<td>{
$v[1]}</td>
<td>{
$v[2]}</td>
<td>{
$v[3]}</td>
<td>{
$v[4]}</td>
<td>{
$v[5]}</td>
<td>{
$v[6]}</td>
</tr>
";
}
?>
</table>
<script type="text/javascript"> //實現復選框的全選
function checkall(a)
{
var ck = document.getElementsByClassName("qxlist");
if(a.checked)
{
for(var i=0;i<ck.length;i++)
{
ck[i]
.setAttribute("checked","checked"); 復選框加個屬性
}
}
else
{
for(var i=0;i<ck.length;i++)
{
ck[i]
.removeAttribute("checked");
}
}
}
</script>
</body>
</html>

一般的步驟就是
先做大體的樣子
然后做四個條件
最后做js控制全選
就ok啦
在做的時候一定要注意細節上問題
(繼續閱讀...)
文章標籤

AutoPoster 發表在 痞客邦 留言(0) 人氣(0)

  • 個人分類:生活學習
▲top
«1...212223230»

pop-under

參觀人氣

  • 本日人氣:
  • 累積人氣:

線上人數

Marquee

最新文章

  • 文章列表
  • jvm系列(四):jvm調優-命令大全(jps jstat jmap jhat jstack jinfo)
  • spring boot(一):入門篇
  • jvm系列(一):java類的加載機制
  • jvm系列(三):java GC算法 垃圾收集器
  • spring boot 實戰:我們的第一款開源軟件
  • jvm系列(六):jvm調優-從eclipse開始
  • 混合應用技術選型
  • jvm系列(二):JVM內存結構
  • spring boot(五):spring data jpa的使用

熱門文章

  • (1,763)jQuery之前端國際化jQuery.i18n.properties
  • (1,001)Oracle Hint
  • (630)技術筆記:Indy控件發送郵件
  • (515)linux下安裝sqlite3
  • (501)學習筆記: Delphi之線程類TThread
  • (242)VC單選按鈕控件(Radio Button)用法(轉)
  • (104)單條件和多條件查詢
  • (51)淺談config文件的使用
  • (26)Tomcat shutdown執行后無法退出進程問題排查及解決
  • (22)基于 Asp.Net的 Comet 技術解析

文章分類

  • 生活學習 (2,296)
  • 未分類文章 (1)

最新留言

  • [20/04/24] 我是女生想約炮 有男生願意給我溫暖的嗎?我賴是woyou58 於文章「(1)從底層設計,探討插件式GIS框架的...」留言:
    我叫黎兒女生最近內心掙扎著要不要約炮我的line:woy...

文章搜尋

文章精選

誰來我家

Live Traffic Feed