<tr><td></td><td><input type=submit value="Edit it!"></td></tr></table> + h' e6 k" J& U
5 g) e; o, X. }, r
<input type=hidden name=idx value="<?php echo "$idx";?>">
: g" y2 S* c1 K E# |) g- D9 `+ W, @ X4 Y9 q
</form>
% P" I$ v3 H( I
' m5 N9 W G3 m9 M4 D/ l<?php include ('links.x');?> , ~! J1 c) a7 i5 y, I4 }8 `2 g4 Q
</body> 6 g! E; ]+ c- A5 f6 l& a
</html>--------------------------------------------------------------------------------
1 P1 T8 _; ]& O& e/ R/ k 好,這個腳本很簡單。我們要關心的是,當表單打印出來時,它記錄了當前記錄的數據,通過在 <input & G# o, K" ?5 N9 w" B" {; }9 J
type= > 命令中的value屬性。這些數據是從前一個頁面傳遞過來的。
1 d! j: z% c2 N0 P& q) F
6 W1 ]9 [$ n& E' j- X% Q 現在,如果我們不改變記錄的信息,它將傳回當前值,即缺省值。如果我們改變了字段的值,字段的值 - H {2 ]$ R) X' L. k% M
將變成新的值。接著我們可以將新值傳給另一個腳本,它將會改變MySQL表中的值。
; D$ T7 t7 j7 ]$ D
* \1 R5 Z5 c" W3 ?5 G2 e--------------------------------------------------------------------------------
7 U7 Z9 t3 E$ L+ i5 p2 e; Ceditdb.php3:
9 S4 w/ O- w6 K! w
% v5 V4 V2 {1 l: G4 _5 p. F8 x<?php
! p9 u2 O$ ~1 l8 V' k U t a" M) @7 R1 y( Y% S
mysql_connect() or die ("Problem connecting to DataBase"); $ l5 A0 [- `% E, s
! h3 b3 \# `/ ~' v
$query = "update tbl set % {/ ~. s" p$ f% a0 r
idx='$idx',UserName='$UserName',LastName='$LastName',FreeText='$FreeText' where 0 |; d7 B* A4 v4 Z- a6 Q. `
idx='$idx'";
4 U8 t d3 a ^, E9 K3 ?! R% o6 u- I# h# e' c/ }) }
$result = mysql_db_query("example", $query);
! [2 v0 x; Z" f( I8 R$query = "SELECT * FROM tbl"; + W9 |/ h% e( `) S: |
$result = mysql_db_query("example", $query); * S3 [, U" {9 O; c! y7 L' Q
5 ^+ f, D+ Y4 ^/ e
if ($result)
$ e8 _* ?! l0 y{ 0 v0 U0 S- f0 c2 o# u0 u p% i
echo "Found these entries in the database:<br><p></p>";
1 W! L' V/ }4 N. U; P5 ~- Oecho "<table width=90% align=center border=1><tr> 9 w: j; A( q6 i. }% J
<td align=center bgcolor=#00FFFF>idx</td>
8 d& u* T* U! j4 a+ Y w<td align=center bgcolor=#00FFFF>User Name</td>
1 V- d8 y. Z) V0 J. I Y M, ]- G<td align=center bgcolor=#00FFFF>Last Name</td> + E/ C4 M7 y7 e7 K) o
<td align=center bgcolor=#00FFFF>Free Text</td>
7 A$ y% k9 X1 V1 S# y</tr>";
1 E- I1 K: a9 [2 u
, @4 ?% N# p$ G d, jwhile ($r = mysql_fetch_array($result)) ' Y$ C4 `. b i3 N* g- T
{
3 d+ |. K& j% w" A1 T$ p; D$idx = $r["idx"];
2 Y- x- M* h! a8 s$user = $r["UserName"];
( \; _+ K. F5 D3 y' ?1 w+ w9 p$last = $r["LastName"]; / G U4 C) b7 N8 l3 H8 f
$text = $r["FreeText"];
* M1 O3 u( l" t8 ~, b, d. r5 n& m1 m0 p' E/ j& o0 N
echo "<tr>
) p; V5 N3 Z+ x6 o<td>$idx</td> + ^ t9 t* f# p
<td>$user</td>
/ [) \/ G6 U) I. b<td>$last</td>
- ~ f2 w8 A% W2 H& n) b4 _3 t. l7 k<td>$text</td>
/ B' }& z# C$ K) L! J$ ?</tr>";
* \& _7 U# E; v: m& ?6 S- n( m0 h( l0 A$ @9 z& E8 @/ i; y) D
}
9 {+ d: m, J1 P3 A0 Oecho "</table>"; 5 n0 Y8 p- v/ J1 K
} 0 `. O6 X2 \( Y2 S' K
else
5 X1 Q$ i! p. {7 b& p. a{ ; x4 R6 |4 {# p- s
echo "No data.";
0 x3 W1 G: R6 B# `6 }7 }3 r} $ D) T9 {% c9 B& U9 S6 _1 i
9 w# X: g- \' c) R4 F- Dmysql_free_result($result);
9 b/ I I* R* |, {! H, E6 ]2 v# o! E7 _
include ('links.x'); * R) h% T! }; l8 Y3 }9 S' q7 C
1 i% q# c( V6 \& K* P. n?>-------------------------------------------------------------------------------- 4 O* P" e' w3 I- }( r4 [; B; O. G
基本上要關心的一件事情是下面一行: ) _6 K- x7 w( Q/ h0 J
, T2 q* K) I0 z- @( z% g
$query = "update tbl set idx='$idx',UserName='$UserName',LastName='$LastName',FreeText='$FreeText' where idx='$idx'"; ) r7 B* L6 o$ e/ w# t; Q2 V
2 H' U0 j1 L* u7 b1 _( a( u% y 注意,它與我們在前面MySQL部分解釋的語法相同。另一件事,注意這個腳本改變的是idx=$idx的記錄,
' V2 t5 @0 v/ f如果表中有多條idx等於$idx的記錄,所以這些記錄都將被改變。如果我們想更嚴格一些,我們可以像下面 % r0 U$ @% V" J& m, k
改動一下where子句:
( d! j. y# X+ m& x( ]+ W
: a8 s9 e% `4 g/ F# [7 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'";
" n% m6 o/ o$ R0 v: G+ f
( k' p5 z) Q5 Y- M 這個語法將檢查所有的字段,而不僅僅是檢查idx。
' d M2 @ Z/ w! X6 I% u
6 I/ X+ i0 J \% U6 l# [ 從數據庫中刪除一條記錄:
* R) I1 O, G2 n; o
3 i2 Z! z' L! w- R 好,刪除很容易。我們仍然需要兩個腳本:一個用來選擇要刪除的記錄(基本上同上面選擇要編輯的記 # F+ @ I$ ` S1 z9 c1 `( x- w
錄一樣),一個用來真正地進行刪除和打印新的表格。
' ?, S& }2 S7 r3 O
+ |# j x0 E/ W* L6 `-------------------------------------------------------------------------------- ! M0 w7 C) P- H( L; l# ?: n
del.php3: 2 G" y! r8 j" a+ F" P, G9 u
, Q2 W: m5 ]' J4 V9 o% a
<html> 7 Y( T$ d5 A0 k3 ?& m- ^
<head><title>Deleting an entry from the database</title>
8 ]$ }* o; X7 H' g" _ V: q7 d</head>
2 }( a8 _9 l' l6 M
5 W3 \) H! i5 m4 I# I<body bgcolor=#ffffff> ! a( Z8 ?: ]' g/ J/ [0 Y
<h1>Del an entry</h1> : y# G2 e' c7 D- W0 n! d0 _
# L' V3 b3 n; i7 y6 e H<? * e: l1 ?# X& A+ u, @
5 X* A: Y; x4 `, L& q" hmysql_connect() or die ("Problem connecting to DataBase");
7 N# [# b4 J6 n; \2 E7 }1 }* [. V- f! l$query = "select * from tbl"; : y$ ], \2 }' u# v. U8 \
$result = mysql_db_query("example", $query);
1 n5 B! F' L( d. v; g
1 R) K$ t' A w; ~6 r- ~2 Tif ($result) + |8 }; r7 E- y0 n) }' w: P0 L
{
/ @6 x( Y3 G6 k; ~! A% a& A6 D" cecho "Found these entries in the database:<br><p></p>";
N4 g9 b9 \# s8 v- ^echo "<table width=90% align=center border=1><tr> + \) k6 m+ f' @4 Q
<td align=center bgcolor=#00ffff>idx</td>
1 i7 m; B" u: K<td align=center bgcolor=#00FFFF>User Name</td> 0 z, D# b K6 j# h, z( }5 F
<td align=center bgcolor=#00FFFF>Last Name</td> 7 j- a. W1 M \( J, J, P. W+ I4 A
<td align=center bgcolor=#00FFFF>Free Text</td> 8 O3 ~3 [# t8 J- \
</tr>"; . q8 p( Y p6 l0 r* o/ u: m5 O3 s
5 d6 Q; L7 p% G
while ($r = mysql_fetch_array($result))
. U& p! q3 E6 L% {- u{ $ p. X+ ~/ ?2 @ ?
$idx = $r["idx"];
. A! n, W1 y; g) c2 ]% U- }$user = $r["UserName"];
\) f8 K( J, ] e* l$last = $r["LastName"];
: _% v; \; V* Z- Q& b o$text = $r["FreeText"]; 0 {! G" ?8 i& q5 \1 ~! d; l
4 ?5 B4 L u3 t( aecho "<tr>
# i, H$ X8 q$ f/ ~* j2 g<td align=center> . g+ Z, u. }( A6 R' `# M
<a href=\"dele.php3?
* U" D! _- H* Xidx=$idx&UserName=$user&LastName=$last&FreeText=$text\">$idx</a></td>
6 z8 {9 @8 L+ L& @<td>$user</td>
9 j: X4 B7 D' |* h* W<td>$last</td>
$ P) x# w8 g! o* A<td>$dtext</td>
' Z: \; [" ?4 b# h</tr>";
z. \# m0 @/ I
9 f0 C: Y& E/ a5 g/ I} - _% J" u: g" F1 k
echo "</table>"; / ]- X4 e$ U5 ]" m) ^) Y1 m
}
+ ^# H5 ~" H% ~, H5 O: G( J" K3 aelse * A2 G* q, G* }7 q8 D( P
{ / R1 j Z# v4 f3 d9 j4 A
echo "No data.";
" F5 E( R% m! l, v}
1 z p7 C7 u2 |. I1 @: J' F8 s; h. g, U+ g' O' C) N/ [& \* d) b) x
mysql_free_result($result); 2 h* c( P u& K6 p) F7 O$ y
include ('links.x');
& t* i3 G: w" T( J* d, c( R
* J3 S) l3 z/ [8 W. ]% c?> & Y% w) B% y- m3 d* D, g
1 ]3 J* X( Z$ R" E
</body> ! _6 Z" J: X# | I' W4 W
</html> - {& o4 |/ G4 e( J6 c: U0 ]8 ^ J: |
-------------------------------------------------------------------------------- 2 M1 t/ H$ S5 X2 A- B: T
這個腳本與我們用過的編輯腳本很像,所以可以看一下那裡的說明。
; [, X' N( Y( Q* F& o& f7 H4 F- Z+ s7 K0 g. a% v& v# W6 Z5 ]
--------------------------------------------------------------------------------
1 I5 d( k5 D. Vdele.php3:
! e2 x( ^6 F; |& z" ^% g
+ y( Q) H D+ B! O3 i, R<?php 7 u; E7 V9 V0 P
+ k1 o0 O5 {6 s% U q1 Z
mysql_connect() or die ("Problem connecting to DataBase"); - Z4 c- d2 u) K$ g
$query = "delete from tbl where idx='$idx' and UserName='$UserName' and 1 I' k1 O# e* l, D9 Q9 X. q
LastName='$LastName' and FreeText='$FreeText'"; 4 o! b' `) N2 N
0 P9 o- z0 o' h: Z& F
$result = mysql_db_query("example", $query); ( W/ P* j* r2 s( x6 l4 [
$query = "SELECT * FROM tbl"; : D) U3 Y' e Z3 N- I3 q, x, J9 y/ {, c
$result = mysql_db_query("example", $query);
e' |6 @' j x7 s; u3 a3 s! _* `) Q! @# g; ]" j& q
if ($result) - _8 U& X% D! y1 u' x. `
{
( _6 m# ^+ u% vecho "Found these entries in the database:<br><p></p>"; " R( Z. D# X/ Y0 k& E
echo "<table width=90% align=center border=1><tr>
4 ` H& N. w f4 Y6 t, |/ @5 a<td align=center bgcolor=#00FFFF>idx</td> - o5 f" S# R- q+ X8 O
<td align=center bgcolor=#00FFFF>User Name</td> ; j7 G7 ^- S9 {' f4 `8 F
<td align=center bgcolor=#00FFFF>Last Name</td>
) q, i+ q+ \+ l" K8 `9 }<td align=center bgcolor=#00FFFF>Free Text</td>
- l6 w# t, f5 b7 U9 o! u</tr>"; ! l4 k# t; [7 x; A( @3 P
# j- b. ^5 f- u" ]while ($r = mysql_fetch_array($result)) 6 e# y' k/ c& G4 _* G
{ 9 c0 H5 _# ~. ?
$idx = $r["idx"];
) w1 }2 l' V* D$user = $r["UserName"]; ( I1 Q4 O; a# W' M w2 T6 q
$last = $r["LastName"];
( b0 r" u1 G+ ^! h# U$text = $r["FreeText"]; 8 F: T5 l1 Z6 [5 U' R2 Z1 w( r) |
- N/ c$ |0 B; F- }+ ]/ hecho "<tr>
& |; Z) X" q6 R1 v" `7 v4 H+ j<td>$idx</td> 9 ]* c& `: H+ J* E6 g" [
<td>$user</td> + }& W/ `; \# q9 |7 b. u
<td>$last</td> ) u7 \5 O6 o( G S4 D
<td>$text</td> 9 D/ S8 m% H+ B& b
</tr>";
. Q' K! N h5 `5 z! W$ ?: e
" j) U$ J9 b2 G q( V3 W, Y} 4 @! o& z' C" X* R$ M) s
echo "</table>";
% S" L- O% I4 `' d} ; q: m" f/ W$ r5 g0 z
else . t4 \- A2 k7 Z. l
{ 3 Q m* J1 r/ y6 Z4 q2 U: S( J
echo "No data.";
' E* v/ j, A! F. ]3 r& _. e1 ~}
, Q# r9 Z% g. O% ?6 x7 _1 M5 c- y3 E$ ]% V" S* T/ v
mysql_free_result($result); 1 g. {4 b M5 \6 A& ?
( Y8 j1 e& u' e* L: j
include ('links.x'); 2 S6 \3 E3 L, I6 k1 B
, d6 u) B) t7 l X5 `' n* _
?>-------------------------------------------------------------------------------- % m" s: @/ \- b$ ]" }
這個腳本看上去很熟悉,唯一不同的就是刪除查詢的語法: * N2 D. e4 m3 W" j: W8 ?3 l; S* h
' o) A2 y; h2 X1 n
$query = "delete from tbl where idx='$idx' and UserName='$UserName' and LastName='$LastName' and FreeText='$FreeText'"; 6 x& R: A: k7 n4 O, M
F/ F5 V: B/ A 這個查詢將會刪除所有與前面的腳本傳遞來的信息相配匹的記錄。容易吧。 . m ]* K) L3 H
$ N' n$ `9 X6 v* n& l$ k7 q 好了,這就是全部內容了。 |