Đào Tạo PHP & Mysql

Học PHP Online - PHP Framework - Tự Học PHP

Lập Trình PHP Căn Bản

Bài 10: Kết hợp PHP và MYSQL trong ứng dụng website

Ở bài trước, chúng ta đã cùng nghiên cứu về các cú pháp sql và Mysql cơ bản bao gồm việc tảo bảng, tạo kết nối, thêm, sửa, xóa các dòng dữ liệu trong cơ sở dữ liệu. Và tiếp theo bài này, chúng ta sẽ cùng tìm hiểu về cách sử dụng mysql kết hợp với PHP để xuất ra dữ liệu như thế nào.

Để làm việc với mysql và PHP chúng ta cần nắm 6 hàm cơ bản:



1- Kết nối cơ sở dữ liệu:


Cú pháp:


mysql_connect("hostname","user","pass")

2- Lựa chọn cơ sở dữ liệu:


Cú pháp:


mysql_select_db("tên_CSDL")

Ví dụ:


$conn=mysql_connect("localhost","root","root") or die(" khong the ket noi");

mysql_select_db("demo");


3- Thực thi câu lệnh truy vấn:


Cú pháp:


mysql_query("Câu truy vấn ở đây");

4- Đếm số dòng dữ liệu trong bảng:


Cú pháp:


mysql_num_rows();

5- Lấy dữ liệu từ bảng đưa vào mảng:


Cú pháp:


mysql_fetch_array();

6- Đóng kết nối cơ sở dữ liệu:


Cú pháp:


mysql_close();

Ví dụ áp dụng:


Tạo cơ sở dữ liệu dựa trên từng đoạn code sau:


mysql -hlocalhost -uroot -proot

mysql>create database demo_mysql;

mysql> use demo_mysql;

mysql>create table user(id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, username VARCHAR(50) NOT NULL, password CHAR(50) NOT NULL, PRIMARY KEY(id));


Tạo trang test.php. Đầu tiên chúng ta sẽ kết nối cơ sở dữ liệu.


<?

$conn=mysql_connect("localhost", "root", "root") or die("can't connect database");

mysql_select_db("demo_mysql",$conn);

?>


Tiếp đến viết câu truy vấn lấy ra tất cả user từ database.


<?

$sql="select * from user";

$query=mysql_query($sql);

?>


Kiểm tra xem trong bảng dữ liệu đã tồn tại user nào chưa ?. Nếu chưa thì xuất ra thông báo lỗi, ngược lại thì đưa chúng vào mảng và lặp cho đến hết bảng dữ liệu.


<?

if(mysql_num_rows($query) == 0)

{

echo "Chua co du lieu";

}

else

{

while($row=mysql_fetch_array($query))

{

echo $row[username] ." - ".$row[password]."<br />";

}

}

?>


Và cuối cùng chúng ta đóng kết nối và kết thúc thao tác xử lý.


<?

mysql_close($conn);

?>


Và cuối cùng là file hoàn chỉnh của ứng dụng trên:


<?

$conn=mysql_connect("localhost", "root", "root") or die("can't connect database");

mysql_select_db("demo_mysql",$conn);

$sql="select * from user";

$query=mysql_query($sql);

if(mysql_num_rows($query) == 0)

{

echo "Chua co du lieu";

}

else

{

while($row=mysql_fetch_array($query))

{

echo $row[username] ." - ".$row[password]."<br />";

}

}

mysql_close($conn);

?>


Tổng kết:


Ở bài này chúng ta đã làm việc với sql và các kỹ thuật kết nối với database của PHP. Các hàm PHP hỗ trợ mysql hiện nay có rất nhiều. Tuy nhiên về tính năng cũng như phương thức sử dụng thì chúng cũng giống nhau. Do vậy các bạn không nên lo lắng khi làm việc với những hàm mà chúng ta đang nghiên cứu.


(Bùi Quốc Huy)
86028
Bạn vẫn chưa hiểu rõ vấn đề ?. Bạn vẫn còn nhiều điều thắc mắc ?. Bạn gặp lỗi khi thực hành mã lệnh trên ?. Hãy tham gia diễn đàn QHOnline.Info để nhận được sự giúp đỡ từ phía cộng đồng nhanh nhất. Đồng thời tải những tài liệu giá trị tại diễn đàn. Việc đăng ký là hoàn toàn miễn phí, hãy đăng ký ngay để chúng tôi giúp đỡ bạn nhé.

Ghi rõ nguồn từ website QHOnline.Info - Khi bạn phát hành lại thông tin từ website này

Phản hồi của bạn Tiếng Anh Telex VNI VIQR





Thơm (15:19 20/03/2010)

Em mới học PHP nên ko hiểu rõ lắm. Em đã làm theo hướng dẫn của thầy nhưng nó ko xuất ra kết quả và báo ko kết nối được CSDL. thầy có thể giải thích và hướng dẫn giúp em ko?

Reply

nguyen huy hoang (18:32 24/03/2010)

Thanks nhieu nhieu:D

Reply

baby_Iloveyou (17:40 16/04/2010)

anh có thể làm một bài mẫu đã chạy rùi được hok.Em mới học nên không hiểu mấy,làm hok được gì cả.

Reply

an (22:05 16/05/2010)

cho em hỏi đoạn code của mục phản hồi của bạn này ko ? vừa kiểm tra được mã bảo mật, vừa kiểm tra text. em ko biết làm như thế nào. chân thành cảm ơn.

Reply

le cong bach (04:21 29/05/2010)

neu khong hieu ban co the goi den so dt:0977750454

Reply

thaibinh (20:24 03/06/2010)

giúp mình cách tạo comment như trang web này với.

Reply

ngoc mai (16:29 23/06/2010)

anh oi cho em hoi no bao loi the' nay la sao ha anh:Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in nhung em thay code la dung rui ma sao no lai bao loi nhu the'

Reply

ngoc_hoa (23:05 07/09/2010)

Mình connect vào ko được, ko hiểu tại sao ko kết nối được vào cơ sở dữ liệu của MySQL nữa.
Có cần dùng odbc hay jdbc để connect ko?

Reply

thiendk (15:48 16/09/2010)

uhm.minh doc vai tai lieu rui ma van chua hieu .qua vi du nay minh hieu nen doi phan.thanks

Reply

Nguyen Tan Duy (20:00 18/10/2010)

anh admin oi, cho em hoi la co cach nao de cac may khach client lien ket toi may chu server cua em, trong khi may chu server offline?, em vua viet code PHP binh luan giong nhu trang web nay, nhung de cac may khach comment bai viet cho em thi em phai mo may chu server suot ngay nen rat ton thoi gian va tien bac, vay co cach nao khac de cac may khach client co the gui binh luan trong khi may chu offline, co the tao ra mot database on line ao~ duoc khong. Rat mong duoc anh giai dap som, neu co the thi gui wa mail cua em. chan thanh cam on!

Reply

duy (15:12 21/10/2010)

trả lời cho bạn "thaibinh".
để tạo comment như web này làm như sau:
tạo trang login.html:
<p><iframe name=main src="http://localhost/result.php" height=300 width=600></iframe><br></p>

<p><form action="http://localhost/result.php" method=post target=main><br>
Họ và Tên:<input type=text name=name size=30><br>
Địa chỉ Email:<input type=text name=mail><br>
Lời bình về bài viết:<textarea name=comment cols=40 rows=4 wrap=virtual></textarea><br>
<input type=submit name=submit value="sign!">
<input type=reset name=reset value="start over">
</form></p>

tạo trang result.php nhu sau:

<?php
$name=$_POST['name'];
$mail=$_POST['mail'];
$comment=$_POST['comment'];
if($name

Reply

hoc PHP (13:22 02/11/2011)

ban oi ! post code day du cho minh tham khao voi !

nguyen tan duy (19:57 27/10/2010)

anh admin cho em hoi "hostname" cua summerhost la cai gi, co phai la url khong, em dang ki host tai summerhost co dia chi la:
http://nguyentanduy1991.summerhost.info/
thi co phai "hostname" la cai url tren khong hay la con so IP

Reply

longnhat (15:44 04/12/2010)

thanks..!

Reply

phạm văn lưu (21:28 15/12/2010)

cho em hỏi đoạn code này là kết nối và lấy dữ liệu trên localhost em sử trong trong wamp là:
$db=mysql_connect("localhost","root","123456");
if(!$db)
{
echo "không kết nối được";
}
mysql_select_db("giaoxuvi_CSDL");

$result=mysql_query("SELECT * FROM user");
vậy em muốn liên kết trên hosting thì em liên kết làm sao? mong anh chị chỉ giúp.

Reply

maicon (12:49 27/12/2010)

Kendy thân mến!
Hiện tại tôi đang làm đồ án của một trang web bán hàng, nhưng thật không mai, tôi gặp lỗi ngay chỗ kết nối CSDL
Vấn đề của tôi là:
-Giả sử tôi có ba bảng CSDL: congty, loaisp,sanpham
-Bảng sanpham tham chiếu đến congty thông qua mscty, và tham chiếu đến bảng loaisp thông qua mlsp
Nhưng khi viết lệnh php để insert dữ liệu vào thì gặp phải lỗi sau:
Error1452 : Cannot add or update a child row: a foreign key constraint fails (`doan_nhom12`.`sanpham`, CONSTRAINT `sanpham_ibfk_1` FOREIGN KEY (`MLSP`) REFERENCES `loaisanpham` (`MLSP`) ON DELETE CASCADE ON UPDATE CASCADE)
Nhưng khi thao tác trực tiếp trên localhost thì tôi thêm được (Ở đây tôi sử dụng xampp server)
Rất mong nhận được hồi âm sớm nhất từ bạn! Thanks

Reply

Hồ Hữu Hiền (13:03 01/01/2011)

Em lấy dữ liệu từ CSDL ra thì được rồi nhưng em muốn đưa dữ liệu đó vào CSDL bằng 1 cái form từ trang php ngoài thì làm thế nào.
Xin thầy chỉ giùm

Reply

thien than (07:17 24/01/2011)

mình muốn mướn 1 bạn làm 1 trang web bằng ngôn ngữ lập trình php co kết nối mysql .ai có thể làm được xin liện lạc lại yahoo.minh sẽ nói cụ thể và chi tiết.

Reply

tran huu trong (08:40 02/03/2011)

$conn=mysql_connect("localhost", "root", "root") or die("can't connect database");-------->
$conn=mysql_connect("localhost", "root", "") or die("can't connect database"); la dc do,minh cung bi nhu vay.

Reply

gunnnnnnn (13:28 04/03/2011)

if(mysql_num_rows($query) == 0)
{
echo "Chua co du lieu";
}
else
{
while($row=mysql_fetch_array($query))
{
echo $row[username] ." - ".$row[password]."<br />";
}
}
mysql_close($conn);
?>
================
đề nghị thầy nên thêm ghi /* */ vào các dấu ngoặc {} chứ em nhìn thấy có cảm giác hơi rối rắm

Reply

Trung (14:59 06/03/2011)

Cho mình hỏi, mình sử dụng hàm mysql_num_rows và mysql_fetch_array thì chạy tốt trên localhost, nhưng khi mình up web lên server thì 2 hàm này không chạy mà báo lỗi
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/tuivaikh/public_html/HTMLS/show.php on line 299

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/tuivaikh/public_html/HTMLS/show.php on line 317

Xin chỉ giúp mình cách khắc phục! Cảm ơn!

Reply

Hong Thi (08:49 08/03/2011)

cho mình hỏi nếu mình tạo 1 csdl mà có nhiều bảng quan hệ với nhau thì phải viết code như thế nào? có thể gửi cho mình 1 bài mẫu đơn giản về vấn đề này theo dc hongthi0811@gmail.com được k? mình đang cấn gấp, thanks bạn nhiều

Reply

Trung (19:13 10/03/2011)

Trả lời cho bạn Hong Thi:
Create Table if Not exists DMLoaiSanPham
(
MaLoaiSanPham varchar(50) COLLATE UTF8_UNICODE_CI,
TenLoaiSanPham varchar(50) COLLATE UTF8_UNICODE_CI,
primary key (MaLoaiSanPham)
);
Create Table if Not exists DMSanPham
(
MaSanPham varchar(50) COLLATE UTF8_UNICODE_CI NOT NULL,
TenSanPham varchar(100) COLLATE UTF8_UNICODE_CI,
TenSanPhamEN varchar(100) COLLATE UTF8_UNICODE_CI,
MaLoaiSanPham varchar(50) COLLATE UTF8_UNICODE_CI,
HinhAnh varchar(100) COLLATE UTF8_UNICODE_CI,
ThongSo varchar(100) COLLATE UTF8_UNICODE_CI,
Gia varchar(100) COLLATE UTF8_UNICODE_CI,
primary key (MaSanPham),
foreign key (MaLoaiSanPham) references DMLoaiSanPham(MaLoaiSanPham)
);
Tạo bảng DMLoaiSanPham có khóa chính là MaLoaiSanPham.
Tạo bảng DMSanPham có khóa chính là MaSanPham và khóa ngoại là MaLoaiSanPham kết với khóa chính MaLoaiSanPham bên bảng DMLoaiSanPham

Reply

longaptech (13:16 12/03/2011)

bài demo trên của thầy có thiếu một chút bạn nào copy về sẽ ko chạy đc nên mình chỉnh lại và đã chạy ngon.các bạn copy đoạn code nay về chạy nhé.
<?
$conn = mysql_connect("localhost","root","root") or die("can't connect database");
mysql_select_db("demo_mysql",$conn);
$sql = "select * from user";
$query=mysql_query($sql);
if(mysql_num_rows($query) == 0)
{
echo "chua co du lieu";
}
else
{
while($row=mysql_fetch_array($query));
}
echo $row[username]."-".$row[password]."<br/>";
mysql_close($conn);
?>

Reply

ant (10:40 21/04/2011)

e mới dùng php nên không rõ lắm.
nhưng viết trang connect roi include vào trang index, mà e không làm được.
làm ơn chỉ e rõ hơn cách lấy csdl show lên trang chính được không ạ!

Reply

nguyễn mạnh linh (21:10 27/04/2011)

cảm ơn trang web này mình đang làm project cũng khó quá nhờ trang này mình đã hiểu hơn mình hy vọng sẽ còn nhiều bài nữa phong phú hơn

Reply

thienduongxanh (01:06 01/05/2011)

các bác pro ơi cho em hoi:
xấy dựng một hàm
getList() như thế nào?
sao khí ta sử dung
$row=$this->getList();

foreach($row as $ow){
echo $row->name;
}

các bác giup em với

Reply

dttien (08:38 16/05/2011)

bài tập của em là xây dựng một website quản lí thư viện ( trang admin) bằng php và mysql nhưng em chưa hiểu lắm về php và chưa biết bắt đầu từ đâu anh giúp em với!
Thanks anh nhieu nhieu!!

Reply

Tran Huu Hung (09:41 23/05/2011)

anh oi ! giup em voi
lam sap de sua du lieu o php ma csdl (sql)
co the thay doi ha a

Reply

minh (11:31 29/05/2011)

<?php
$user="root";
$pass="";
$conn=mysql_connect("localhost",$user,$pass) or die("khong ket noi <br>");
echo "ket noi thanh cong server <br>";

mysql_select_db("quan_ly",$conn);
echo "ket noi thanh cong data <br>";

$table="select * from nhap_kho";
$dl=mysql_query($table);
$dem=mysql_num_rows($dl);
echo $diem;
$i=0;
while ($i<$dem)
{
$mahang=mysql_result($dl,$i,"mahang");
$tenhang=mysql_result($dl,$i,"tenhang");


echo $mahang. " ".$tenhang ."<br>";
$i ;
}

?>
nó cứ báo dòng mysql_num_rows($dl); hoài a`h, anh (chị) nào bít chỉ giùm em với sang may là nộp bài rồi, cám ơn nhé!!!! , uhm` em làm nhiều cách lắm rổi chạy lại navicat 8, cahỵ lại esy php 5.3, chạy lai win 7 luôn nhung cũng không được bó tày rồi. có cứ báo như thế này hoài ah` "Cảnh báo: mysql_num_rows () dự kiến ​​sẽ tham số 1 là nguồn tài nguyên, boolean được đưa ra trong C: Program Files EasyPHP5.3.0 www minhsite quanly nhapkho.php trên dòng 20"

Reply

cao xuân thanh (20:02 04/06/2011)

Thưa thầy! em đang làm 1 bài tập lớn về thiết kế 1 trang web quản lý thư viện bằng PHP

Reply

Cao Tan My (10:15 21/06/2011)

Nếu có thể được , Huy viết thêm tí về csdl quan hệ ( giả sử giữa 2 tables thôi ) như cách tạo quan hệ , truy xuất , thêm , điều chỉnh ,..... thì trang web sẽ hay hơn , có tính thực tiển cao và ngày càng nhiều người biết đến .
Còn như Huy quá bận thì thôi . Mình đang tìm hiểu về csdl quan hệ Mysql-PHP . Rất mong nhận được email trả lời .

Reply

ty (22:36 23/06/2011)

cho hỏi là:ví dụ như trong một table có 2 cột ,cột 1 có dấu (30 dòng) giờ em se update cột 1 sang cột 2 (30 dòng) ,nhưng sao khi em update thì gia trị cột 1 ở dòng 30 sẽ update sang tất cả cột 2,mong giúp dù em.thank's

Reply

nguyễn anh minh (08:49 10/07/2011)

bài của Huy rất rõ và dễ hiểu....Thanks !

Reply

Hải phòng (10:04 07/08/2011)

mình làm và báo lỗi như sau:
PHP Fatal error: Call to undefined function mysql_connect() in C:inetpubwwwrootdemo est.php on line 3
mong mọi người giúp đỡ

Reply

pakpak (12:11 07/08/2011)

sao mình đánh đoạn code này vào html lai không thấy hiện ra nhỉ có ai bít không:
<html>
<head>
<title>help me!</title>
</head>
<body>
<p>dòng này thì hiện được</p>
<?php
echo "dòng này không hiện ra";
?>
</body>
</html>

mọi người ai bít không giải thích cho mình với.
thank nhiều.
pakman_92

Reply

nhateo (22:12 30/09/2011)

ko hien ra la vi file ban luu la .html lam sao hieu dc code php. ban phai luu file nay .php roi dung wampserver len localhost moi hien ra dc

Huỳnh Tấn Lộc (09:40 22/09/2011)

cảm ơn !!! bài nào cũng hay, cung giup ích được cho mình cả.

Reply

hoangha (09:39 27/09/2011)

pro cho hoi co minh hoa bang hinh anh k ?

Reply

Trần Trung Hiếu (19:42 05/10/2011)

anh có thể hướng dẫn lam đăng kí đăng Nhâp đc hok?

Reply

phamvan binh (09:43 06/10/2011)

em chang biet ve sever bao minh voi the de minh biet 1 it

Reply

hoang oanh (07:12 21/10/2011)

minh van chua hieu? bon minh hoc php vao tao co so dl trong xamp minh muon hoi cach vao trong xamp tao co so dl

Reply

nguyễn lê long (13:03 24/10/2011)

anh gì đó ơi anh co bài tập mậu về php này mà đã làm thành 1 trang web hoàn chỉnh hog.nếu có anh gửi qua mail của em nha. lelong09c@gmail.com
Em cám ơn trước nha.Thanks

Reply

nguyễn lê long (15:02 07/11/2011)

minh muon lam de an bang php nhung minh ko biet phai bat dau tu dau.co ai chi minh voi

Reply

Kenny (12:14 08/11/2011)

Chào bạn,

Bạn chịu khó tham khảo các bài viết hướng dẫn trên website bạn nhé. Việc này sẽ giúp ích cho việc làm đề án của bạn rất nhiều đấy.

Chúc may mắn.

le anh tuyet (20:43 24/11/2011)

E oi! giup dum e voi.
E muốn làm 1 list hình để có thể lựa chọn khi cần xem 1 hình nào đó. nhưng e lam hoài ma không được.
A chiw dùm e với a. A chỉ dùm e cách xây dựng CSDL để làm thành list.
A oi! a chỉ e chi tiết phần CSDL với nghe a.
E cam on nhiều lắm.

Reply

black cat (13:12 06/12/2011)

Thank so much ! Very useful...

Reply

Ngoc hai (09:03 10/12/2011)

Mọi người giúp m với,m đang rất cần.
m có đoạn code gồm 1 textbox và button.m disable textbox, m muốn khi m kích vào button thì textbox ở chế độ enable.
Nhưng m chạy hoài mà hông dc (cho dù m đã đặt đoạn javascrip ở trong hàm while).
Giúp m zới nhé. :D
đoạn code của m:

<body>
<table width="257" border="1">
<tr>
<td height="78">
<?php
while($i<3)
{
?>
<form id="form1" name="form1" method="post" action="">
<input type="text" name="textfield" disabled="disabled" />
<input type="button" name="Submit" value="Submit" onclick="bat()"/>
</form>
<?php
}
?></td>
</tr>
</table>
</body>
</html>
<script language="javascript">
function bat()
{
document.form1.textfield.disabled=false;
}
</script>

Reply

MR.SMILE (01:58 11/12/2011)

mình thích PHP và mới học nên mình hỏi tí bạn đừng cười nhé .

Nếu trong dòng $conn=mysql_connect("localhost", "root", "root") or die("can't connect database");

người khác xem code rồi biết được username va password đăng nhập vào database của mình thì sao bạn ??

Reply

Ngoc hai (21:09 12/12/2011)

Bạn cho ng ta xem code thì tấc nhiên họ bit user với pass rui làm gì thi...... :D

Còn nếu là xem nguồn của trang web(chuột phải y b) thì nó chỉ có ngôn ngữ phía Client thui b
chẳng hạn như Html hay Css... còn php thi ko.

php là ngôn ngữ phía server mà(hi, m nói vậy hông bit có đúng..) chỉ b mới bit thui.

:D

Hoàng Thạch (13:50 17/12/2011)

Cho mình hỏi.
Ví dụ như mình có 1 dòng chữ Tiếp tục. Khi mình kích vào chữ tiếp tục thì nó sẽ hiển thị ra một hàng trong 1 bảng trong MySQL thì mình phải làm sao???
Mong bạn giúp mình nhanh với. Thank trước :"))
SDT: 01649842726

Reply

PHP MYSQL Online - Hoc PHP - Dao Tao PHP - Học PHP - CakePHP Framework - Lap Trinh PHP Can Ban - Lap Trinh PHP Nang Cao - PHP Framework - Tài liệu,Thư viện
Copyright 2007-2010 © QHOnline.Info | Powered By QHOnline Version 2.0 - XHTML Valid