You are on page 1of 14

Nghiem Phu Cuong, http://www.diachiweb.com, email: cuongnp@diachiweb.

com

T¹o Web ®éng víi PHP vµ MySQL

Môc lôc
1. Giíi thiÖu vÒ tµi liÖu
2. H­íng dÉn, vµ h­íng dÉn cµi ®Æt
3. ViÕt m∙ lÖnh
4. Thªm b¶n ghi
5. Xo¸, thªm vµ t×m kiÕm d÷ liÖu

T¹o Web ®éng b»ng PHP & MySQL 1


Nghiem Phu Cuong, http://www.diachiweb.com, email: cuongnp@diachiweb.com

1. Giíi thiÖu tµi liÖu

Tµi liÖu nµy h­íng dÉn sö dông 2 phÇn mÒm m∙ nguån më PHP vµ MySQL ®Ó t¹o c¸c
trang Web ®éng. Khi ®äc hÕt tµi liÖu nµy, b¹n sÏ biÕt Web ®éng lµm viÖc nh­ thÕ nµo vµ
chóng lÊy th«ng tin, hiÓn thÞ th«ng tin trªn Web site cña b¹n nh­ thÕ nµo.

Giíi thiÖu t¸c gi¶:


Nghiªm Phó C­êng
HiÖn ®ang c«ng t¸c t¹i Trung t©m tin häc Thèng kª, thuéc Tæng Côc Thèng kª,
®Þa chØ 54 NguyÔn ChÝ Thanh.
Web site: http://www.diachiweb.com
Email: cuongnp@diachiweb.com

NÕu b¹n cã comment g× xin vui lßng göi email cho t«i, xin c¶m
¬n.

T¹o Web ®éng b»ng PHP & MySQL 2


Nghiem Phu Cuong, http://www.diachiweb.com, email: cuongnp@diachiweb.com

Giíi thiÖu vµ h­íng dÉn cµi ®Æt

T¹i sao l¹i cÇn néi dung ®éng


NÕu néi dung trang Web cña b¹n ngµy mét nhiÒu, b¹n cÇn ph¶i t¹o Web ®éng, b¹n thö
h×nh dung nÕu b¹n cã mét cöa hµng ®iÖn tö trªn Web cã 1.000 s¶n phÈm. B¹n ph¶i t¹o
1.000 trang Web cho mçi s¶n phÈm vµ khi mäi thø thay ®æi, b¹n ph¶i söa ®æi l¹i tÊt c¶
nh÷ng trang ®ã. §ã lµ mét viÖc kh«ng høng thó vµ tèn thêi gian, vËy b¹n ph¶i cÇn Web
®éng, b¹n chØ viÖc t¹o mét trang hiÓn thÞ, vµ néi dung tõng s¶n phÈm l­u tr÷ trong c¬ së
d÷ liÖu, th«ng tin hiÓn thÞ sÏ tuú thuéc vµo sù truy cËp cña ng­êi truy cËp

PHP lµ mét ng«n ng÷ kÞch b¶n cã m∙ nguån më,


MySQL lµ hÖ qu¶n trÞ c¬ së d÷ liÖu cã m∙ nguån më, dÔ sö dông, cµi ®Æt ®¬n gi¶n vµ gi¸
thÊp.

Cµi ®Æt Apache server


Tr­íc tiªn b¹n h∙y cµi ®Æt Apache, tµi liÖu nµy h­íng dÉn b¹n cµi ®Æt trªn hÖ ®iÒu hµnh
m∙ nguån më Linux. §Ó cµi ®Æt b¹n cÇn ph¶i ®­îc phÐp truy cËp vµo root trªn m¸y chñ
cña b¹n.
Cµi ®Æt Apache b¹n ph¶i download file apache_x.x.xx.tar.gz (vÝ dô: apache_1.3.14.tar.gz)
tõ Web site cña Apache vµ l­u chóng vµo th­ môc /tmp/src. Sau ®ã b¹n h∙y tíi th­ môc
®ã:
§Ó cµi ®Æt b¹n h∙y thùc hiÖn lÖnh sau:
# ./configure –prefix=/usr/local/apache –enable-module=so
# make
# make install

Apache sÏ ®­îc cµi ®Æt vµo th­ môc /usr/local/apache, nÕu b¹n muèn thay ®æi th­ môc
h∙y thay thÕ /usr/local/apache b»ng th­ môc b¹n muèn. B©y giê Apache ®∙ ®­îc cµi ®Æt
vµo m¸y tÝnh cña b¹n.

B¹n còng cã thÓ thay ®æi tªn m¸y chñ thµnh mét tªn cã ý nghÜa nµo ®ã, ®Ó lµm viÖc nµy
b¹n h∙y më tÖp httpd.conf (n»m ë th­ môc /usr/local/apache/conf) vµ t×m dßng b¾t ®Çu
b»ng ServerName. Thay ServerName b»ng mét tªn cña b¹n, vÝ dô localhost

B©y giê b¹n h∙y kiÓm tra viÖc cµi ®Æt, khái ®éng Apache HTTP server b»ng lÖnh:

T¹o Web ®éng b»ng PHP & MySQL 3


Nghiem Phu Cuong, http://www.diachiweb.com, email: cuongnp@diachiweb.com

# /usr/local/apache/bin/apachectl start

B¹n sÏ thÊy th«ng ®iÖp nh­ sau: “httpd started”. Më tr×nh duyÖt Web vµ gâ ®Þa chØ
http://localhost, b¹n sÏ thÊy trang Web hiÖn thÞ.

Cµi ®Æt MySQL


Sau ®©y chóng ta sÏ cµi ®Æt MySQL, còng t­¬ng tù nh­ cµi ®Æt Apache, b¹n download tÖp
tin cµi ®Æt tõ Web site MySQL, vµ l­u nã vµo th­ môc /tmp/src. Phiªn b¶n míi nhÊt mµ
t«i ®­îc biÕt lµ mýql-3.22.32.tar.gz

# cd /tmp/src
# gunzip –dc mysql-x.xx.xx.tar.gz | tar xv
# cd mysql –x.xx.xx
# ./configure –prefix=/usr/local/mysql
# make
# make install

B©y giê MySQL sÏ ®­îc cµi ®Æt vµo m¸y tÝnh cña b¹n

Cµi ®Æt PHP


ViÖc cµi ®Æt PHP còng hoµn toµn t­¬ng tù nh­ cµi ®Æt MySQL. Download vµ l­u tõ PHP
site vµo th­ môc /tmp/src

# cd /tmp/src
# gunzip –dc php-x.xx.xx.tar.gz | tar xv
# cd php –x.xx.xx
# ./configure - - with-mysql=/usr/local/mysql - -with-apxs=/usr/local/apache/bin/apxs
# make
# make install

Copy file ini tíi th­ môc:


# cd php.ini-dist /usr/local/lib/php.ini
Më tÖp httpd.conf vµ t×m ®Õn ®o¹n cã néi dung sau:

# And for PHP 4.x, use

T¹o Web ®éng b»ng PHP & MySQL 4


Nghiem Phu Cuong, http://www.diachiweb.com, email: cuongnp@diachiweb.com

#
#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps

B¹n h∙y gì bá nh÷ng dÊu # tr­íc AddType, b¹n sÏ thÊy nh­ sau:

# And for PHP 4.x, use


#
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

L­u l¹i tÖp vµ khëi ®éng l¹i Apache

B¹n h∙y kiÓm tra viÖc cµi ®Æt PHP cña m×nh b»ng c¸ch gâ so¹n th¶o ®o¹n m∙ sau:

<HTML>
<?php
phpinfo();
?>
</HTML>
L­u víi tªn test.php, sau ®ã b¹n h∙y gäi tÖp tin tõ tr×nh duyÖt Web cña b¹n. NÕu b¹n thÊy
kÕt qu¶ hiÓn thÞ nh­ mµn h×nh sau, cã nghÜa lµ b¹n ®∙ cµi ®Æt thµnh c«ng, nÕu b¹n kh«ng
thÊy néi dung nh­ h×nh, b¹n h∙y cµi ®Æt l¹i MySQL vµ PHP.

T¹o Web ®éng b»ng PHP & MySQL 5


Nghiem Phu Cuong, http://www.diachiweb.com, email: cuongnp@diachiweb.com

B¾t ®Çu viÕt m·


Theo truyÒn thèng, chóng ta sÏ viÕt m∙ b¾t ®Çu víi tõ “hello world” lµm vÝ dô. B¹n h∙y
gäi ch­¬ng tr×nh so¹n th¶o vµ gâ vµo nh÷ng dßng lÖnh sau:

<HTML>
<?php
echo “Hello World”;
?>
</HTML>

B¹n h∙y l­u tÖp tin víi tªn first.php vµ gäi hiÓn thÞ trªn tr×nh duyÖt Web. Trang Web sÏ
hiÓn thÞ “Hello World”. Xem m∙ HTML cña trang nµy b¹n sÏ thÊy ®o¹n text Hello
World. §iÒu nµy cã nghÜa lµ m∙ PHP ®∙ ®­îc thùc hiÖn. B¹n h∙y ghi nhí lµ <?php vµ ?>
®Ó më vµ ®ãng mét khèi m∙ PHP.

T¹o c¬ së d÷ liÖu
Nh­ vËy lµ b¹n thÊy PHP ®∙ lµm viÖc vµ b¹n ®∙ t¹o ®­îc nh÷ng ®o¹n m∙ ®Çu tiªn, b©y giê
chóng ta sÏ t¹o mét c¬ së d÷ liÖu ®Ó lµm viÖc. B¹n h∙y gâ lÖnh sau:

Mysqladmin –uroot create learndb

Víi lÖnh trªn c¬ së d÷ liÖu “learndb” sÏ ®­îc t¹o. B©y giê chóng ta sÏ t¹o b¶ng d÷ liÖu,
b¹n h∙y thùc hiÖn lÖnh sau:

mysql

B¹n sÏ thÊy néi dung sau:

Welcome to MySQL monitor. Commands end with ; or \g.


Your MySQL connection id is 5 to server version 3.22.34

Type ‘help’ for help

T¹o Web ®éng b»ng PHP & MySQL 6


Nghiem Phu Cuong, http://www.diachiweb.com, email: cuongnp@diachiweb.com

Gâ lÖnh:

CONNECT learndb

CREATE TABLE personel


(
id int NOT NULL AUTO_INCREMENT,
firstname varchar(25),
lastname varchar(20),
nick varchar(12),
email varchar(35),
salary int,
PRIMARY KEY (id),
UNIQUE id (id)
);

INSERT INTO personel VALUES (‘1’, ‘Cuong’,’Nghiem


Phu’,’cuongnp’,’cuongnp@diachiweb.com’,’1500’);

INSERT INTO personel VALUES (‘2’,’Van’,’Nguyen Thi’,’vannt’,’vannt@diachiweb.com’,’1500’);

HiÓn thÞ
B©y giê b¹n ®∙ cã d÷ liÖu, chóng ta sÏ hiÓn thÞ nã víi PHP. L­u ®o¹n m∙ sau víi tªn tÖp
tin viewdb.php:

<HTML>
<?php
$db = mysql_connect(“localhost”, “root”, “”);
mysql_select_db(“learndb”,$db);
$result=mysql_query(“SELECT * FROM personel”,$db);
echo “<TABLE>”;
echo “<TR><TD><B>Full Name</B><TD><B>Nick Name</B><TD><B>Salary</B></TR>”;

T¹o Web ®éng b»ng PHP & MySQL 7


Nghiem Phu Cuong, http://www.diachiweb.com, email: cuongnp@diachiweb.com

while ($myrow = mysql_fetch_array($result))


{
echo “<TR><TD>”;
echo $myrow [“firstname”];
echo “ “;
echo $myrow [“lastname”];
echo “</TD>”;
echo $myrow[“nick”];
echo “<TD>”;
echo $myrow[“salary”];
}
echo “</TABLE>”;
?>
</HTML>

Gäi hiÓn thÞ trªn tr×nh duyÖt Web b¹n sÏ thÊy kÕt qu¶ ®­îc hiÓn thÞ, tuy nhiªn ®o¹n m∙
nµy lµm viÖc nh­ thÕ nµo? Tr­íc tiªn h∙y xem biÕn ®Çu tiªn ®­îc khai b¸o $db. Trong
PHP chóng ta ®Þnh nghÜa biÕn víi ký tù “$” ë ®Çu. Chuçi ký tù ®i sau $ lµ tªn cña biÕn.
Chóng ta g¸n gi¸ trÞ cho biÕn b»ng m∙ lÖnh: $variable_name = somevalue;
B¹y h∙y lu«n nhí lµ thªm dÊu “;” ë cuèi dßng lÖnh PHP. Chóng ta ®∙ ®Þnh nghÜa biÕn $db
vµ t¹o kÕt nèi tíi c¬ së d÷ liÖu mysql b»ng lÖnh:
“mysql_connect(“localhost”,”root”,””)” lÖnh nµy cã nghÜa lµ kÕt nèi tíi d÷ liÖu ë m¸y
chñ cã tªn localhost, víi ng­êi truy cËp cã tªn root vµ mËt khÈu “”. B¹n h∙y thay thÕ
chóng b»ng tªn vµ mËt khÈu cña m×nh.

Chóng ta muèn lÊy th«ng tin tõ c¬ së d÷ liÖu, chóng ta truy vÊn d÷ liÖu b»ng lÖnh
“$result=mysql_query(“SELECT * FROM personel”,$db)”

Thùc hiÖn truy vÊn trªn víi m∙ lÖnh PHP mysql_query() vµ l­u kÕt qu¶ vµo biÕt $result.
Chóng ta dïng hµm mysql_fetch_array() ®Ó biÕt chÝnh x¸c ®ang ë b¶n ghi nµo l­u vµo
biÕn $myrow.

Chóng ta ®­a d÷ liÖu ra mµn h×nh “echo $myrow[“firstname”];”

Ngay b©y giê b¹n h∙y gäi hiÓn thÞ viewdp.php trªn tr×nh duyÖt Web cña b¹n. Vµ b¹n sÏ
thÊy kÕt qu¶.

T¹o Web ®éng b»ng PHP & MySQL 8


Nghiem Phu Cuong, http://www.diachiweb.com, email: cuongnp@diachiweb.com

Thªm mét b¶n ghi

T¹o mét form HTML


B¹n ®∙ hiÓn thÞ ®­îc d÷ liÖu l­u trong c¬ së d÷ liÖu MySQL, nh­ng b¹n muèn thªm d÷
liÖu. Chóng ta gi¶ sö, b¹n ®∙ biÕt vÒ HTML form, ®o¹n m∙ sau sÏ t¹o form HTML, b¹n
h∙y l­u víi tªn datain.html

<HTML>
<BODY>
<form method=”post” action=”datain.php”>
First name:<input type =”Text” name=”first”><br>
Last name:<input type =”Text” name=”last”><br>
Nick name:<input type =”Text” name=”nickname”><br>
Email:<input type =”Text” name=”email”><br>
Salary:<input type =”Text” name=”salary”><br>
<input type =”Submit” name=”submit” value=”Enter Information”>
</form>
</HTML>

B©y giê chóng ta ®∙ cã form ®Ó ®­a th«ng tin vµo trang “datain.php”. Chóng ta ph¶i viÕt
m∙ cho trang nµy ®Ó nã cã kh¶ n¨ng ®­a th«ng tin vµo c¬ së d÷ liÖu MySQL cña chóng ta.
M∙ ®­îc viÕt nh­ sau:

<HTML>
<?php
$db=mysql_connect(“localhost”,”root”,””);
mysql_select_db(“learndb”,$db);
$sql=”INSERT INTO personel (firstname,lastname,nick,email,salary) VALUES _
($firstname,$lastname,#nickname,#email,#salary);
$result = mysql_query($sql);
echo “Thank you! Information entered.\n”;
?>
<?HTML>

Chóng ta sö dông c©u lÖnh SQL “INSERT INTO”, nghÜa lµ chóng ta sÏ chÌn vµo d÷ liÖu
mét b¶n ghi.

T¹o Web ®éng b»ng PHP & MySQL 9


Nghiem Phu Cuong, http://www.diachiweb.com, email: cuongnp@diachiweb.com

PHP cã mét c¸ch thËt hay ®Ó nhËn d÷ liÖu, víi « textbox cã tªn “first”, t¹o víi biÕn $first
vµ nã sÏ cã d÷ liÖu ®­îc nhËp ë « textbox.

B©y giê chóng ta sÏ gép hai ®o¹n m∙ ë hai tÖp “datain.html” vµ “datain.php” vµo 1 tÖp,
chóng ta gäi lµ input.php, m∙ ®­îc viÕt nh­ sau:

T¹o Web ®éng b»ng PHP & MySQL 10


Nghiem Phu Cuong, http://www.diachiweb.com, email: cuongnp@diachiweb.com

<HTML>
<?php
if ($Submit)
{
$db=mysql_connect(“localhost”,”root”,””);
mysql_select_db(“learndb”,$db);
$sql=”INSERT INTO personel (firstname,lastname,nick,email,salary) VALUES _
($firstname,$lastname,#nickname,#email,#salary);
$result = mysql_query($sql);
echo “Thank you! Information entered.\n”;
}
else
{
?>
<form method=”post” action=”datain.php”>
First name:<input type =”Text” name=”first”><br>
Last name:<input type =”Text” name=”last”><br>
Nick name:<input type =”Text” name=”nickname”><br>
Email:<input type =”Text” name=”email”><br>
Salary:<input type =”Text” name=”salary”><br>
<input type =”Submit” name=”submit” value=”Enter Information”>
</form>
<?
}
?>
</HTML>

§o¹n m∙ trªn sÏ hiÓn thÞ mét form ®Ó nhËp d÷ liÖu hoÆc ®­a d÷ liÖu vµo c¬ së d÷ liÖu.
§o¹n m∙ trªn hiÓu khi nµo ph¶i lµm c¸i g×! Chóng ta ®∙ biÕt r»ng PHP tù ®éng t¹o viÕt víi
th«ng tin ®Ó ®­a vµo. V× vËy nã sÏ tù ®éng t¹o biÕn $submit khi form ®­îc gäi ®­a d÷
liÖu. §o¹n m∙ trªn sÏ tù ®éng t×m kiÕm gi¸ trÝ cña biÕn $submit, nÕu tån tµi vµ cã gi¸ trÞ
th× d÷ liÖu sÏ ®­îc ®­a vµo c¬ së d÷ liÖu, ng­îc l¹i sÏ hiÓn thÞ form ®Ó nhËp liÖu.

T¹o Web ®éng b»ng PHP & MySQL 11


Nghiem Phu Cuong, http://www.diachiweb.com, email: cuongnp@diachiweb.com

Xo¸, söa vµ t×m kiÕm d÷ liÖu

Xo¸ d÷ liÖu
Chóng ta ®∙ biÕt hiÓn thÞ d÷ liÖu vµ thªm d÷ liÖu vµo c¬ së d÷ liÖu. B©y giê chóng ta sÏ
viÕt m∙ ®Ó xo¸ mét sè d÷ liÖu theo ý cña chóng ta. Tªn tin delete.php cña chóng ta sÏ gióp
chóng ta lµm viÖc ®ã. LÖnh SQL ®Ó xo¸ d÷ liÖu nh­ sau: “DELETE FROM
database_name WHERE field_name=somevalue”

<HTML>
<?php
$db=mysql_connect(“localhost”,”root”,””);
mysql_select_db(“learndb”,$db);
mysql_query(”DELETE FROM personel WHERE id=$id,$db);
echo “Information Deleted”;
?>
<?HTML>

B¹n ph¶i thËt sù chó ý khi viÕt m· lÖnh ®Ó xo¸ d÷ liÖu, b¹n sÏ kh«ng thÓ kh«i phôc
l¹i ®­îc d÷ liÖu.

Söa d÷ liÖu
Khi b¹n cÇn söa d÷ liÖu cña mét ng­êi nµo ®ã, b¹n sÏ viÕt m∙ nh­ thÕ nµo? Khi cÇn söa
d÷ liÖu b¹n h∙y sö dông c©u lÖnh SQL “UPDATE database_name SET
fieldname1=$variable1, fieldname2=$variable2,… WHERE ….”

Nh­ vËy ®Ó söa d÷ liÖu cña personel b¹n viÕt m∙ nh­ sau:

<HTML>
<?php
$db=mysql_connect(“localhost”,”root”,””);
mysql_select_db(“learndb”,$db);
mysql_query(”UPDATE personel SET firstname=$firstname WHERE id=$id,$db);
echo “Information Updated”;

T¹o Web ®éng b»ng PHP & MySQL 12


Nghiem Phu Cuong, http://www.diachiweb.com, email: cuongnp@diachiweb.com

?>
<?HTML>

T×m kiÕm d÷ liÖu


NÕu b¹n muèn t×m kiÕm mét ng­êi nµo ®ã tho¶ m∙n mét sè ®iÒu nµo, b¹n cÇn ph¶i viÕt
m∙ ®Ó t×m kiÕm d÷ liÖu tõ c¬ së d÷ liÖu. M∙ ®­îc viÕt nh­ sau:
<HTML>
<?php
if ($searchstring)
{
$sql=”SELECT * FROM personel WHERE $searchtype LIKE ‘%$searchstring%’ ORDER
BY firstname ASC”;
mysql_select_db(“learndb”,$db);
$result=my_sql_query($sql,$db);
echo “<TABLE BORDER=2>”;
echo “<TR><TD><B>Full name</B><TD><B>Nick
name</B><TD><B>Options</B></TR>”;
while ($myrow = mysql_fetch_array($result))
{
echo "<TR><TD>".$myrow["firstname"]."
".$myrow["nick"];
echo "<TD><a href=\"view.php?id=".$myrow["id"]."\">View</a>";
}
echo "</TABLE>";
}
else
{
?>
<form method="POST" action="<?php $PHP_SELF ?>">
<table border="2" cellspacing="2">
<tr><td>Insert you search string here</td>
<td>Search type</td></tr>
<tr>
<td><input type="text" name="searchstring" size="28"></td>

T¹o Web ®éng b»ng PHP & MySQL 13


Nghiem Phu Cuong, http://www.diachiweb.com, email: cuongnp@diachiweb.com

<td><select size="1" name="searchtype">


<option selected value="firstname">First Name</option>
<option value="lastname">Last Name</option>
<option value="nick">Nick Name</option>
<option value="email">Email</option>
</select></td>
</tr>
</table>
<p><input type="submit" value="Submit" name="B1"><input type="reset" value="Reset"
></p>
</form>
<?php
}
?>
</HTML>

§o¹n m∙ trªn sÏ t×m kiÕm mét ng­êi cã tªn trïng víi gi¸ trÞ cña biÕn searchstring.

T¹o Web ®éng b»ng PHP & MySQL 14

You might also like