<tr><td></td><td><input type=submit value="Edit it!"></td></tr></table> ! _; _9 a. j- P2 X9 P: {) e% b, x
& q( K, Q9 v. ]- a6 g# ~, @7 D<input type=hidden name=idx value="<?php echo "$idx";?>"> 5 ^, G2 |9 ~7 F4 U. Y0 T+ U# V
' F& |3 p; |. n- M</form> 1 n7 ]- {% y/ J* I: {0 z$ \# u
' P5 o6 ?! c3 \ i
<?php include ('links.x');?> 6 o8 ^, `" X/ Y# x4 I
</body>
7 i+ y* N- O1 e3 ?4 l</html>--------------------------------------------------------------------------------
. w9 [( ]+ X- p: _ 好,這個腳本很簡單。我們要關心的是,當表單打印出來時,它記錄了當前記錄的數據,通過在 <input
0 a1 y `) t: i% ktype= > 命令中的value屬性。這些數據是從前一個頁面傳遞過來的。
7 p' V( d' O- \6 }/ y9 C
/ r; c( G+ A O g9 n6 k 現在,如果我們不改變記錄的信息,它將傳回當前值,即缺省值。如果我們改變了字段的值,字段的值
/ U% H) v) i# c& ?將變成新的值。接著我們可以將新值傳給另一個腳本,它將會改變MySQL表中的值。
& L# K: R S3 ^7 T, r) V, u% N" x) |8 O q" K
--------------------------------------------------------------------------------
1 u* l, m2 m( K# Z7 P3 qeditdb.php3: & s' H! c: J7 ]6 W5 q7 @
1 c% O# Z$ e8 u: W3 ]2 F, e
<?php
3 B# G, y _6 y2 d1 Q: ~- p
# n: |* S ~. Y) v% ]* L O3 [0 _# ?9 Wmysql_connect() or die ("Problem connecting to DataBase"); ! b) `9 D* o( j% J/ Y1 _1 K; ?& W
4 y7 ^9 g. N3 S" H+ _' L9 _/ Z$query = "update tbl set
! y* @! H& P* p& H1 Ridx='$idx',UserName='$UserName',LastName='$LastName',FreeText='$FreeText' where
) W$ \, r l3 c2 ~, G1 \idx='$idx'";
, [, s1 C3 T- A5 e2 R' n, v. F) x2 E' w) y3 W2 X) \. h' K
$result = mysql_db_query("example", $query);
! ~2 {$ S; x- U$query = "SELECT * FROM tbl"; 9 x, W' y/ l" w6 G( D; d
$result = mysql_db_query("example", $query);
3 O8 V+ h/ `5 I, T0 k1 M' z
6 y( }3 v8 S! V7 ^2 w8 w1 kif ($result) ! E% g# F) q3 t* A& \5 x% R
{ ( P6 k, }1 P* k h$ _
echo "Found these entries in the database:<br><p></p>"; 9 m- P% ~( j' m+ B) A4 r
echo "<table width=90% align=center border=1><tr>
; C/ ]7 U" m4 Z* P2 F- Z# `. W8 X<td align=center bgcolor=#00FFFF>idx</td>
9 \4 K' R' V6 O) e! {: A0 X! C* W( h<td align=center bgcolor=#00FFFF>User Name</td>
& X S' `* C" _6 H, E: i3 A1 y<td align=center bgcolor=#00FFFF>Last Name</td> 3 x9 f. ~% ~& H1 E1 B. h, J
<td align=center bgcolor=#00FFFF>Free Text</td>
; u7 {7 Y# x! d% j) d, h9 u</tr>";
0 ^4 X2 }. w7 ]5 B! n2 B
8 k- M: H) N9 T" Uwhile ($r = mysql_fetch_array($result))
0 u/ @! W/ X; e, U{ 5 t4 q" m+ Z9 c- u' n
$idx = $r["idx"]; 7 t9 { V9 v- v* `; d+ R
$user = $r["UserName"];
/ D$ u( ~- [6 S. k$ F9 h! h$last = $r["LastName"]; 8 y+ k X2 Z0 U3 F/ g4 _, T. L
$text = $r["FreeText"]; ! W/ y3 I" t6 j
" K) R3 `6 B' s1 C# j* F
echo "<tr>
/ ]/ e2 Z+ D" |# P<td>$idx</td> ) z# b4 [$ P) z. K
<td>$user</td> . V: \. f& q! X* s+ w
<td>$last</td>
2 F' v/ d& ~+ ?( ]% d<td>$text</td>
; c F/ u1 i X% G: U1 h</tr>";
# J+ j3 N/ u6 o
6 J: i( ]( O7 g6 M+ I* t} 6 T& a9 ]6 X% F: F4 L+ K' Y
echo "</table>";
B+ ^3 i! u( |# ~4 P. h} 5 S. U- H! H' W h4 o( u: K
else ! D0 b9 @4 Z ^) O% i
{ * V5 P% S% C" k9 Y
echo "No data."; ) o, J5 Q, d5 o; J
} 6 b- |- e7 ?2 q8 _' i
* ~- D! W/ O9 l7 smysql_free_result($result); 7 h' N! X* G% h0 P1 N* V
6 ?1 r: ?5 k# n' I' C" J9 _! ?include ('links.x');
: n. v3 I7 t; q- N$ S5 f
' U6 f! f" I, }?>--------------------------------------------------------------------------------
" y3 ]4 Y2 g* U0 P4 W/ k" o 基本上要關心的一件事情是下面一行:
! l; v! j' g" M7 I' J) P& A
$ L" y" m1 o$ ~7 R {9 d5 F* P& B$query = "update tbl set idx='$idx',UserName='$UserName',LastName='$LastName',FreeText='$FreeText' where idx='$idx'";
+ s3 K B4 e: Q4 u) z+ `2 r0 I4 t l$ |3 ?0 [/ j. Y
注意,它與我們在前面MySQL部分解釋的語法相同。另一件事,注意這個腳本改變的是idx=$idx的記錄, 6 I, n# { K. h# ?3 w! ~
如果表中有多條idx等於$idx的記錄,所以這些記錄都將被改變。如果我們想更嚴格一些,我們可以像下面
9 r0 n- i" _* R改動一下where子句: ( R$ F; I6 h9 H! | b3 l0 j- H
# C+ O# }3 \ }, }5 ~$ E$query = "update tbl set idx='$idx',UserName='$UserName', LastName='$LastName',FreeText='$FreeText' where idx='$idx' and UserName='$UserName' and LastName='$LastName' and FreeText='$FreeText'";
% C1 D) ?* _/ z+ T, f2 J: Y7 ?& f. k1 [5 Y A
這個語法將檢查所有的字段,而不僅僅是檢查idx。
m. U* N( q! a, J% \8 w5 z9 b* v/ Z! ~ }% B& r4 o5 ?
從數據庫中刪除一條記錄:
3 C! i1 u! v7 e7 N, P5 ~# m5 p; q. P) _3 J
好,刪除很容易。我們仍然需要兩個腳本:一個用來選擇要刪除的記錄(基本上同上面選擇要編輯的記 9 V: c O6 [9 \
錄一樣),一個用來真正地進行刪除和打印新的表格。 % R& x5 b7 B4 ~: _) P1 Q3 P
* W* ]3 _1 L4 {6 {8 D-------------------------------------------------------------------------------- / i% Y- ?: Y9 }' d
del.php3:
* N, g3 P2 J5 s8 ^; m k7 m; R. y* B2 Y6 d g
<html>
1 m2 A! j3 Y- d& X, D0 A- p, [<head><title>Deleting an entry from the database</title>
9 E0 @ E0 M T</head>
7 e3 {/ M0 W7 h6 {
5 g* g6 y9 p8 W1 x' q2 v<body bgcolor=#ffffff>
2 }3 Y) g) ]9 s' {2 a9 N<h1>Del an entry</h1> . x; A8 t8 J! D) S
3 F1 K7 l4 a+ Y. Y
<? ' s/ S7 \9 m7 _: b4 I ]1 E z
4 h0 y! X1 s0 }: v
mysql_connect() or die ("Problem connecting to DataBase"); ) b [, U Z1 X ?- z
$query = "select * from tbl"; 7 P' H6 B1 O# M+ O* ]
$result = mysql_db_query("example", $query); . F; V/ l) d( n! E
2 r! ]6 U5 m: \4 F- Wif ($result)
q- L' k1 E, @4 P2 l! W) s{
3 x' Y/ p. P2 P4 t: W! S) Kecho "Found these entries in the database:<br><p></p>"; 1 f( E1 v# P a6 l$ P8 a, U- h
echo "<table width=90% align=center border=1><tr> % M R9 \# ?6 ^# ]4 k+ @
<td align=center bgcolor=#00ffff>idx</td>
! H! O- G% Y- d! w+ i# d b<td align=center bgcolor=#00FFFF>User Name</td> ( t) X# X+ }/ J3 Q% {. O
<td align=center bgcolor=#00FFFF>Last Name</td>
; @# ~5 z2 I0 | d6 j<td align=center bgcolor=#00FFFF>Free Text</td>
6 j' y1 A4 }* @5 c+ ]% k3 A" w</tr>";
$ [! d9 y+ Z# ?2 F5 q% K t2 ^
, d0 l; f; Y; b! Wwhile ($r = mysql_fetch_array($result)) # T8 Q' ?5 l, R2 x( q2 a, f( ~7 j
{
7 d& U4 a5 n3 H: b) N# P7 _$idx = $r["idx"];
8 _* @3 i) z2 K( @$ F! j4 G6 f9 o$user = $r["UserName"];
' a$ {# |( V5 p! B$last = $r["LastName"];
# O. C, g; r5 M: m+ N$ s$text = $r["FreeText"]; 2 F9 Y: z, j+ i! q
/ t9 F+ s& k1 Q1 g$ H) ]" I; V+ Y( cecho "<tr>
2 w0 i k* X% e2 {/ W<td align=center> / ~! o" c" B. l# U/ q$ h( M
<a href=\"dele.php3? , e) K5 U5 Q) Q) |: f$ v
idx=$idx&UserName=$user&LastName=$last&FreeText=$text\">$idx</a></td>
" L6 K+ T" T( J2 [; K' @<td>$user</td> # Y. |( Z* H$ a
<td>$last</td>
- p# A) C4 R! [+ J1 X3 U<td>$dtext</td>
; e6 f6 f, c4 M% D</tr>";
# Q) G- B$ ]! G: S/ ^/ \ ~
5 y1 @" x: ?3 q% E7 P5 l}
2 v1 f) D& V$ z9 `- gecho "</table>";
. R" g6 o7 H+ s0 T2 ?} . a# w% X) P/ q2 I; z
else
) \- s9 `% ]" A6 p9 \{
2 Z9 o- l5 f# `& wecho "No data.";
2 y6 B' D9 g @}
4 N9 Q' p# Z0 g8 y# m, k8 l& T
3 D! b+ y+ E' lmysql_free_result($result);
+ R; q, ]+ H$ ~# {* iinclude ('links.x');
/ E) z" t e# X8 E2 q; \1 X
& F9 O9 ?, Y( Q: e?> 5 @, d% l' }. k# T
5 Y* x+ o8 j0 Z" c2 o: U ~% o! [- q
</body>
( G8 u1 `: L& \</html>
+ J Q0 J: q/ d9 [4 @7 [--------------------------------------------------------------------------------
5 e/ ~/ v0 e. x# n9 h 這個腳本與我們用過的編輯腳本很像,所以可以看一下那裡的說明。 * x% v, n _* |% v, e9 ]; a. z
+ f5 O+ p h; I: E: [7 A
--------------------------------------------------------------------------------
+ _7 t7 J& P; bdele.php3:
, q5 Y: \3 M6 F' a; a7 C5 n
' T8 V+ P1 B. ~% n/ }<?php / \1 q6 _; @/ R- \4 d4 c
( X$ k! V4 _% p3 V
mysql_connect() or die ("Problem connecting to DataBase"); 4 P. {! M$ t5 t+ l% d6 `8 \% N
$query = "delete from tbl where idx='$idx' and UserName='$UserName' and 7 }- Z! P: h* g* v
LastName='$LastName' and FreeText='$FreeText'";
5 `7 c9 X& r. L+ O) ?+ E+ F0 X0 l' A7 n1 c" K2 }' I
$result = mysql_db_query("example", $query); ) ]+ k; P% v x* A7 p, k3 r
$query = "SELECT * FROM tbl";
5 p( ~6 W' a* S# ?# ?. {( x$result = mysql_db_query("example", $query);
5 k% T2 |" X" [+ f" |
, T" Y. A: J9 z9 `3 p5 |: H1 Vif ($result) 3 n, ]) n3 Y7 }( x, V
{
6 T5 t- f N4 P8 F$ A0 L" x5 u# mecho "Found these entries in the database:<br><p></p>";
* c4 q5 k* E# m7 recho "<table width=90% align=center border=1><tr>
4 V# n' o& x0 K<td align=center bgcolor=#00FFFF>idx</td>
3 y/ C/ e) u! F" z<td align=center bgcolor=#00FFFF>User Name</td>
7 { l3 M& U( Q& P. S) [% D6 I5 h<td align=center bgcolor=#00FFFF>Last Name</td> 6 o+ k3 p1 l! H
<td align=center bgcolor=#00FFFF>Free Text</td> ! E0 e0 C! g* ]* X3 f6 j2 N
</tr>";
' q: O6 k; C* ]
$ H; n* C7 d/ Q% X& ^" ewhile ($r = mysql_fetch_array($result)) 5 b6 K: v4 A2 F( h4 S+ K, P
{ ; _1 q, X) F9 T* M, u
$idx = $r["idx"];
+ W b' M% _6 X8 U6 \5 `1 P: g$user = $r["UserName"];
+ R: C/ t) V% {1 B0 W$last = $r["LastName"]; & g% l& h4 u n
$text = $r["FreeText"];
, Z. C( v6 |. P8 [( C& ]; \+ U
0 n9 Z: \) K9 g. p6 I& b1 X0 @6 R; uecho "<tr>
0 x1 N ]) Q& w# V+ n% Y6 K<td>$idx</td> # Z$ e9 L2 t2 R1 g% i. T
<td>$user</td>
1 F" H/ \( l' O9 {- T7 V2 y<td>$last</td> # z) p/ s1 X" U& w' w S
<td>$text</td>
% H5 {- G n/ z" H1 o</tr>";
: b! |, U# e1 O
( A8 R! U5 m/ y1 D$ X! Z}
; T, r4 m+ [' l: r) `& Qecho "</table>"; : a6 _7 N3 f; v+ d
}
# ^4 I# d' t% |9 l3 J ?$ lelse
) Q5 m. O+ W; k4 f{ ) J- w8 y: O7 e% Z6 S
echo "No data."; - i& p% s$ { }! t+ a
}
- K: d6 A& z7 i3 S. {* s
4 n& J& l# e3 F. k+ r* pmysql_free_result($result); 9 R6 s6 p: p) i+ d
9 r# l6 m& c' u4 G& w
include ('links.x'); 5 u$ `' M8 O- q
1 N- `( e; Q A+ |. U- \?>--------------------------------------------------------------------------------
' `5 c) |6 P% Y 這個腳本看上去很熟悉,唯一不同的就是刪除查詢的語法:
$ r0 U" p( Q2 V( F& b {8 q
( Y2 H% n' }! W+ t. ]; a* _; }$query = "delete from tbl where idx='$idx' and UserName='$UserName' and LastName='$LastName' and FreeText='$FreeText'";
3 M& d- }2 N2 S. Q0 I0 p, Z4 k+ m
5 O, [# i- `7 K; u# C3 p 這個查詢將會刪除所有與前面的腳本傳遞來的信息相配匹的記錄。容易吧。 / j4 W6 Y: D1 u0 _7 P9 P
3 E' y) |- N, K
好了,這就是全部內容了。 |