Wednesday, 19. April 2006, 13:40:38
在前两篇简介中以经介绍了怎么用php和mysql数据库交互,不过那些在实际应用中还是不够的,下面就继续介绍一些新的东西。
有时我们在选择数据库中的数据时并不想把所有的都选择出来,比如在我们前面建立的contacts表中,如果只想选出first name为john的联系人,就可以用这个语句:
SELECT * FROM contacts WHERE first='john'
更有趣的是,我们甚至可以用一个变量来代替john,这也就是说我们可以在网站中让用户来选择想要查看的内容来进行选择。
同时,我们还可能对输出的顺序有一定的要求,比如想让我们的联系人按照last name的升序排列,就可以这样:
SELECT * FROM contacts ORDER BY last ASC
其中的ASC是Ascending(升序)的缩写,如果想用降序排列,可以把ASC换成DESC(Descending) 。
有时候,我们需要对数据库中的内容进行一些更新,比如我们的朋友换了电话,在我们的contacts表中就要更新他的电话号码,当然,这可以交给他自己去做,他想改的不一定只是电话号码(可能他已经搬家了也说不定)。这可以做成一个页面,由用户去修改内容并提交:
<form action="updated.php" method="post">
<input type="hidden" name="ud_id" value="<? echo $id; ?>">
First Name: <input type="text" name="ud_first" value="<? echo $first; ?>"><br>
Last Name: <input type="text" name="ud_last" value="<? echo $last; ?>"><br>
Phone Number: <input type="text" name="ud_phone" value="<? echo $phone; ?>"><br>
Mobile Number: <input type="text" name="ud_mobile" value="<? echo $mobile; ?>"><br>
Fax Number: <input type="text" name="ud_fax" value="<? echo $fax; ?>"><br>
E-mail Address: <input type="text" name="ud_email" value="<? echo $email; ?>"><br>
Web Address: <input type="text" name="ud_web" value="<? echo $web; ?>"><br>
<input type="Submit" value="Update">
</form>
当然,这只是网页,真正起做用的还是我们的php,update.php可以写成这样:
$ud_id=$_POST['ud_id'];
$ud_first=$_POST['ud_first'];
$ud_last=$_POST['ud_last'];
$ud_phone=$_POST['ud_phone'];
$ud_mobile=$_POST['ud_mobile'];
$ud_fax=$_POST['ud_fax'];
$ud_email=$_POST['ud_email'];
$ud_web=$_POST['ud_web'];
$username="username";
$password="password";
$database="your_database";
mysql_connect(localhost,$username,$password);
$query="UPDATE contacts SET first='$ud_first', last='$ud_last', phone='$ud_phone', mobile='$ud_mobile', fax='$ud_fax', email='$ud_email', web='$ud_web' WHERE id='$ud_id'";
mysql_query($query);
echo "Record Updated";
mysql_close();
这其中最关键的一句就是这个:
$query = "UPDATE contacts SET first = '$ud_first', last = '$ud_last', phone = '$ud_phone', mobile = '$ud_mobile', fax = '$ud_fax', email = '$ud_email', web = '$ud_web' WHERE id = '$ud_id'";
这是实际修改的语句,从此可以看出更新的语法是这样的:
UPDATE tablename SET ...
还有时候,我们想删除掉数据库的内容,就可以通过下面的语句来实现:
DELETE FROM contacts WHERE id='$id'
这句可以删除id是$id的联系人。
当我们的数据库非常庞大时,搜索是必不可少的功能,这也是可以通过php+mysql来实现。它的语法是这样的:
SELECT * FROM tablename WHERE fieldname LIKE '%$string%'
其中%是通配符,上面的%$string%就是搜索fieldname中包含$string的记录,而$string%则表示以$string开头,%$string以$string结尾。
以上的东西已经把php+mysql来制作动态网页的基本内容都介绍了,相信读过的朋友应该可以开始动手建站了。我也是第一次接触这些内容,所以难免有不正确的地方,所以希望能抽出宝贵时间读这些小文章的朋友发现问题及时指出,我们可以共同进步。我也要开始去动手了。
本文参考了
Part 5 - More OutputsPart 6 - Single Records & Error TrappingPart 7 - Updating & DeletingPart 8 - Finishing The Script