<tr><td></td><td><input type=submit value="Edit it!"></td></tr></table>
; W4 V% Y2 {; U) M
- v* u$ r( K+ a# X$ O# z8 p3 i8 w$ n<input type=hidden name=idx value="<?php echo "$idx";?>"> $ o2 c( j( c- o) w0 [, P- K
" W$ d* H$ }) |9 Z$ H( Q8 M0 x" d, `, A
</form> - V& I. F* S# t# Q! {! X( m' R' M
/ `% E- ?3 M( H- n; }8 f% f
<?php include ('links.x');?>
+ B% P; J/ t l- D</body> - t. o N, C9 e" N8 ~. U
</html>-------------------------------------------------------------------------------- " P3 A9 o1 \7 m+ W
好,這個腳本很簡單。我們要關心的是,當表單打印出來時,它記錄了當前記錄的數據,通過在 <input ' E0 X+ D+ C, I8 W% ?
type= > 命令中的value屬性。這些數據是從前一個頁面傳遞過來的。 , w6 ^. r3 M' f; Y
. C! P4 l4 y" @7 Q 現在,如果我們不改變記錄的信息,它將傳回當前值,即缺省值。如果我們改變了字段的值,字段的值 ' p# f6 V, k5 P0 w
將變成新的值。接著我們可以將新值傳給另一個腳本,它將會改變MySQL表中的值。
7 j9 T; c+ S2 \! {, [1 d7 E- {7 c; w" ^
--------------------------------------------------------------------------------
2 x' S" W! B; R$ ^" L* n4 ^editdb.php3:
* l* Q/ T& ^2 x& r7 p) e, L: @* O& G# [; s, _& P- P
<?php
7 K$ E, K% Y1 t; S U5 F+ B
8 k- Y4 c7 _( smysql_connect() or die ("Problem connecting to DataBase");
4 {3 E0 H$ O2 O' T
& C/ E; h1 f0 Y/ y3 D+ E, L$query = "update tbl set
0 L, g8 z1 I/ z B+ K2 i; [idx='$idx',UserName='$UserName',LastName='$LastName',FreeText='$FreeText' where % w- ]) F9 X# Y. @7 I: }- S7 v
idx='$idx'"; T; L! G( D3 |6 Q! q
" S& U+ J* ?+ r) A: E: y9 _
$result = mysql_db_query("example", $query); 0 y! r4 i: u# O/ H' S
$query = "SELECT * FROM tbl"; 3 }0 r! ]3 M1 \2 O0 ^+ S/ j
$result = mysql_db_query("example", $query);
% P4 g8 @" Q' M4 `; T
, k4 E9 Q F0 O$ x3 X. A' a. v7 tif ($result)
, W( v- r4 v$ @{
1 T# L% v9 w& F, c+ techo "Found these entries in the database:<br><p></p>";
: {" y6 a3 k7 r. K* vecho "<table width=90% align=center border=1><tr>
4 J w$ {# a$ H I1 \<td align=center bgcolor=#00FFFF>idx</td> 1 C6 }7 f2 {" _7 ]* V
<td align=center bgcolor=#00FFFF>User Name</td> + R% A% J8 W( J% N$ a
<td align=center bgcolor=#00FFFF>Last Name</td>
, [" T/ U1 q9 [9 C& u% j<td align=center bgcolor=#00FFFF>Free Text</td>
/ | ^& u1 A4 _2 Y7 E9 P</tr>"; : ^; g# e1 Q& R$ w& D) D# X4 D
/ j3 [( C: {# _6 [; P3 d% q( T
while ($r = mysql_fetch_array($result)) / @, W/ T- S& s, b$ ~
{
( X( i+ ]6 n! r+ h* O$idx = $r["idx"];
8 c9 |" i8 q+ p1 D+ V% c$user = $r["UserName"];
' ^1 f6 Z+ e" ?* u9 B$last = $r["LastName"]; 3 L. M! t' _& T/ {- w m$ \
$text = $r["FreeText"]; . H4 r5 F) K( t/ _9 e* ~" G
4 x' X, ~7 y! r1 B9 yecho "<tr> : R2 |% ], N" I3 y) m6 o
<td>$idx</td> 2 J- G% D2 s, Z
<td>$user</td> & y7 Z! D, V8 y, A+ M7 [
<td>$last</td>
, e. q; B0 \2 U; ^& Y<td>$text</td> " d+ n9 w. ?7 Y+ q
</tr>";
* ~7 |+ {$ u0 p L/ N
% Z2 B" ~/ c$ G F. f& R6 {1 z. A} . c! {6 r0 u; G! U
echo "</table>"; 1 y7 G+ g; `+ X& M' b9 Z9 k
}
4 U$ \$ y& k$ W* c+ o2 O& jelse
! t$ ~8 A k7 T7 Z& |! c{ ( c8 X- }% H0 e3 q" \0 x
echo "No data."; 1 J2 l3 z) X8 H+ O$ y
}
" G! u4 g, B$ u( Z/ B5 R, d4 r& [$ g8 g* G# s# a# [0 l4 d& y6 O
mysql_free_result($result); # l2 p: \, g: X" X$ z1 L2 N( G G
% s; D3 A0 i) M9 s7 S: Z6 C/ v' F" Rinclude ('links.x'); # Y9 l# D6 ?. v/ A$ r' C
3 p7 u0 Q A6 _- N3 P! j2 T6 P, o) W" {
?>-------------------------------------------------------------------------------- h3 p! J0 {1 H! H
基本上要關心的一件事情是下面一行: * B" B( [- o# J/ ~ A3 k0 j% A2 w
/ Y: d, U6 x' s! ]( b. q7 _
$query = "update tbl set idx='$idx',UserName='$UserName',LastName='$LastName',FreeText='$FreeText' where idx='$idx'";
% Y8 J/ T. P+ E$ B
. v+ U' u @$ w+ _9 o j9 _# G 注意,它與我們在前面MySQL部分解釋的語法相同。另一件事,注意這個腳本改變的是idx=$idx的記錄, ! `, U; x8 m3 V, H: a% U
如果表中有多條idx等於$idx的記錄,所以這些記錄都將被改變。如果我們想更嚴格一些,我們可以像下面 9 \: d: p3 i6 U0 l) A* {3 @7 a
改動一下where子句:
$ m% ~6 h% y% a$ |# i1 n
( s/ y/ U+ T* _7 t# C8 F0 ~7 X$query = "update tbl set idx='$idx',UserName='$UserName', LastName='$LastName',FreeText='$FreeText' where idx='$idx' and UserName='$UserName' and LastName='$LastName' and FreeText='$FreeText'"; # G T3 U( _: y- E* I4 K9 W5 b
t; J9 `% o$ _& O+ A/ G 這個語法將檢查所有的字段,而不僅僅是檢查idx。
0 M @/ w8 q% g5 W. C: D- B$ m4 n2 n w6 Y: r9 J8 P2 ?7 B2 }$ @
從數據庫中刪除一條記錄:
- n; P9 |- D" @/ S2 \
6 {, J1 m" ?7 K& P0 x4 S9 P 好,刪除很容易。我們仍然需要兩個腳本:一個用來選擇要刪除的記錄(基本上同上面選擇要編輯的記 + |( q. u. U+ z/ q7 R
錄一樣),一個用來真正地進行刪除和打印新的表格。
- |) m+ Z" S& V% F4 `* J, K; w$ q0 W; Z0 z
--------------------------------------------------------------------------------
% D5 N Q$ x, T: sdel.php3: ' g4 M' `. |- b B( m% X9 a
, u) H4 r+ r) u( o7 S
<html>
; n" ]) P, T9 l. |" ~+ T6 f! l. C<head><title>Deleting an entry from the database</title> 6 K4 ?- A, G* L7 H; p6 o$ j
</head> & o( C2 I. [% P" L7 {, K
. e9 z% r* E; j: f% E$ ?& N<body bgcolor=#ffffff>
1 T. v( t' O3 ^9 V5 q j I+ k3 Q<h1>Del an entry</h1>
+ H! T; _2 s' C" |9 G9 R6 t; E) c
. \4 E' Y* u4 L5 A& K' t# X<?
8 J d, G3 q6 m. p, J3 F1 p/ g7 K( m4 b, u8 Y$ K, z5 ^
mysql_connect() or die ("Problem connecting to DataBase"); * k, J+ h5 e- Z3 _$ ]5 o' _
$query = "select * from tbl";
+ N: V2 b! f+ }$result = mysql_db_query("example", $query);
/ A2 W$ D7 M j0 D6 j
" O9 [& z+ d- mif ($result) 5 F7 t& R* O; S5 I
{ ( ?7 x- `+ @6 b& Y
echo "Found these entries in the database:<br><p></p>"; , V, d4 V: l& H, B! o/ x+ c. {
echo "<table width=90% align=center border=1><tr>
' o5 B' A+ {0 U, y$ K4 C+ i4 Y$ Z<td align=center bgcolor=#00ffff>idx</td>
9 e% L& a6 r5 A, o<td align=center bgcolor=#00FFFF>User Name</td>
0 P" W4 a6 Z! Z$ s3 p1 i<td align=center bgcolor=#00FFFF>Last Name</td>
. u6 Q6 w6 a7 i- @* Y<td align=center bgcolor=#00FFFF>Free Text</td> & w! {9 X. J, _& p4 W5 z; P$ C
</tr>"; $ f2 `, ~6 t- a! H
; q9 l8 s b0 |9 lwhile ($r = mysql_fetch_array($result))
7 R' R+ _& B2 H2 Q6 ?# ~1 @{ - O- o! C$ D z0 c$ ?
$idx = $r["idx"];
) f: ]3 V: ^; I% l4 c* a( O/ v$user = $r["UserName"]; 6 b5 ?* V+ y c g" U: ^5 ~1 ]; l
$last = $r["LastName"];
' w0 f( N. l- T2 S$text = $r["FreeText"]; 6 x; H U D* ?) K; Q
4 Z. l$ e) s, P& }echo "<tr>
' h4 {: i) ]9 j& B% h1 e. r T$ s' W<td align=center> ! H5 N0 s. |$ ?8 l; l6 `' ?) M
<a href=\"dele.php3?
* c% ^% u, }7 M7 i& Fidx=$idx&UserName=$user&LastName=$last&FreeText=$text\">$idx</a></td>
: L2 h- J1 ?- m7 E: V4 u2 g( v<td>$user</td>
! o! t/ f) T9 Z' {: K% G<td>$last</td> ( Z+ x6 q- E: j0 {
<td>$dtext</td>
+ R4 a% I3 ~ r8 f: I</tr>"; * I8 |* M8 G3 A9 w5 f6 `
$ D3 r1 L9 V6 K0 l7 h} % d+ Z% c7 j' z& o
echo "</table>"; ! y, L, N& [, h& V" Z2 P# ~
}
2 u' t% F3 }# C5 \4 l+ ]else 9 m8 A8 p: ]# w2 b* p6 I. }* g
{ ) {5 E( C* {) m- p9 I1 j! C3 I( \
echo "No data.";
$ I: [5 V' A3 Q! I" Q}
, W) t1 W3 j+ }8 O
. [! z Y7 F+ ~+ U1 w* `mysql_free_result($result); % s# u6 m) ]8 |4 V- W5 }" i* C
include ('links.x');
$ H2 ?7 v7 y+ P ]) ~8 k! o
* w3 ^% W0 i G, c' ?0 D# Z?>
* P' L* \( Q+ q; j: E+ [$ h! C
. Z, g1 K* l/ `- A0 \, G</body> E# t' f, T6 K0 \ x' r/ c) h
</html>
- W( m1 } N3 w% A: Q-------------------------------------------------------------------------------- [4 x% K& v- w0 \3 r: b
這個腳本與我們用過的編輯腳本很像,所以可以看一下那裡的說明。 / I7 K% S3 S* n" {* _) ^0 o
# ^- [( V! _; n. a0 ~-------------------------------------------------------------------------------- ) k; r0 y$ a& L z, E# W
dele.php3:
/ {. ]1 I4 \3 G- l. s% ]! h
. Y1 Q) L4 ]! J/ y<?php
& J0 D" s2 G* Y+ ^4 u/ u2 Q, f$ G# e0 a' X. U5 L! H; [
mysql_connect() or die ("Problem connecting to DataBase"); $ n, k7 `5 q9 V+ `
$query = "delete from tbl where idx='$idx' and UserName='$UserName' and
; U4 f# m1 h# h1 `/ cLastName='$LastName' and FreeText='$FreeText'"; ( `, B8 D6 H! l# q) D) B
0 P3 J( b* I* x5 @) l$result = mysql_db_query("example", $query); 0 j, B6 A! O: m/ k
$query = "SELECT * FROM tbl"; . k& c s9 d& b! B
$result = mysql_db_query("example", $query);
0 a+ J* K( b$ ~& Y/ |1 v3 A
N' R$ ^: p5 F! j- S, X u( Wif ($result) : V; m w% U- O
{
. m- S& h* i7 z* Mecho "Found these entries in the database:<br><p></p>"; 5 I2 I8 x* d; q; c0 R
echo "<table width=90% align=center border=1><tr>
3 G9 p6 o# m- r% G* U( C# M, T<td align=center bgcolor=#00FFFF>idx</td> 3 r, N: W& R, A3 m0 n$ o
<td align=center bgcolor=#00FFFF>User Name</td>
: [. e5 l. d4 I, x& I4 v<td align=center bgcolor=#00FFFF>Last Name</td>
8 b" v; \. F- q0 q2 U/ P) k q<td align=center bgcolor=#00FFFF>Free Text</td> . c4 u/ C W& K# }
</tr>"; % k5 x3 \" M& B. T% j
, w0 C" K& P" f* `2 W: E, S* ~
while ($r = mysql_fetch_array($result))
5 A# ]4 n6 w( j{ ) X J' z/ l4 j# B [5 q
$idx = $r["idx"]; % ^3 t- L8 L5 g8 P
$user = $r["UserName"];
8 g2 b6 u# U- j$last = $r["LastName"]; : t4 m7 U# y$ e
$text = $r["FreeText"]; 1 v# G7 A0 `* `3 m6 U4 p
; W- s. U3 V/ i
echo "<tr> # {# U: x% l: }/ t$ l8 K
<td>$idx</td> # i Y6 w, F7 u
<td>$user</td> $ z, P# c9 ~- a' D- Y2 |4 ~
<td>$last</td>
/ h8 b! G. l: r) c- ~4 i<td>$text</td> a: s' y; Y4 }0 o4 e
</tr>";
& ^+ g, ^- i9 ], h8 Z5 i: C; T" N! h" n. `1 i. O5 I
} : W4 A! R/ |8 A* j( d
echo "</table>";
; b" j# N( m- C' q0 }} \) R# z9 p5 B
else
, p8 K5 R: Y7 Q7 l& S{
5 Q/ K( Q& |4 ]% u2 y+ Necho "No data."; # s7 A+ Z6 K' t3 ~8 C: e
}
. r+ w$ P) }; h3 J2 ~. H' r/ N% k3 Z! M0 M0 `- Y' a5 k% X
mysql_free_result($result); % j0 F, H- x Z9 I6 R
0 y4 ]+ v) R, s, K6 tinclude ('links.x'); 2 h& t }. E/ P7 f
/ ]9 D, C3 p( v* R! _?>--------------------------------------------------------------------------------
) L( q/ h( N" U 這個腳本看上去很熟悉,唯一不同的就是刪除查詢的語法:
8 `+ V# U4 m, m3 |) X9 Z1 p; Z" ^2 I" F! L: @
$query = "delete from tbl where idx='$idx' and UserName='$UserName' and LastName='$LastName' and FreeText='$FreeText'"; # \* f4 W5 q* g0 n* L, ], B
9 T6 ?$ i$ X0 D& g! U4 g
這個查詢將會刪除所有與前面的腳本傳遞來的信息相配匹的記錄。容易吧。
2 p/ A( u) V4 M, V
( X; G( A, X! R5 Y 好了,這就是全部內容了。 |