KẾT NỐI VÀ TRUY VẤN CSDL MYSQL

Một phần của tài liệu Giáo trình lập trình web 1 Công nghệ thông tin (Trang 79 - 85)

Để truy vấn được với dữ liệu trong database, trước tiên ta phải thực hiện kết nối với CSDL như sau:

Bước 1: Tạo kết nối

$conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME); Trong đó:

 $conn: biến kết nối.

 DB_HOST: tên server.

 DB_USER: tên user đăng nhập vào MySQL.

 DB_PASS: mật khẩu đăng nhập vào MySQL.

 DB_NAME: tên database.

Ví dụ: Tạo kết nối tới database tên ‘tdc_web_1’, sử dụng wampserver.

Tạo thư mục app đặt cùng cấp với file index.php Trong thư mục app, tạo 2 file:

+ config.php: định nghĩa 4 hằng số kết nối: DB_HOST, DB_USER, DB_PASS, DB_NAME như sau:

<?php

define(‘DB_HOST’,’localhost’); define(‘DB_USER’,’root’); define(‘DB_PASS’,’’);

define(‘DB_NAME’,’tdc_web_1’);

+ db.php: Tạo class db chứa biến, hàm kết nối, ngắt kết nối và các thao tác với database như sau:

//Tạo biến $conn kết nối public static $conn;

//Tạo kết nối trong hàm __construct() public function __construct(){

self::$conn = new mysqli(DB_HOST,DB_USER,DB_PASS,DB_NAME); //Hiển thị tiếng việt

self::$conn->set_charset('utf8'); //Hàm trả về kiểu mảng từ một object public function getData($obj){

$arr = array(); while($row = $obj->fetch_assoc()){ $arr[] = $row; } return $arr; }

//Ngắt kết nối trong hàm __destruct() public function __destruct(){

self::$conn->close(); }

}

Bước 2: Viết và thực thi câu lệnh truy vấn

Sử dụng hàm query() để thực thi một câu lệnh SQL, ví dụ viết hàm lấy ra cột name, email và phone trong bảng users.

public function getUser(){

//Thực thi câu truy vấn return $conn->query($sql); }

Lưu ý: Hàm này sẽ trả về kiểu object.

Bước 3: Xử lý kết quả sau khi thực thi câu truy vấn. Tại trang index.php, gọi hàm và hiển thị kết quả như sau:

require “./app/config.php”; require “./app/db.php”; //Tạo đối tượng db từ lớp db $db = new db(); //Gọi hàm getUser() $user = $db->getUser(); echo $user->num_rows; echo “<br>”; echo $user->num_fields; echo “<br>”; while($row = $user->fetch_assoc()){ echo $row.”<br>”; } Kết quả: 2 3

Name: John Doe – Email: john@example.com Name: Mary Moe – Email: mary@example.com Trong đó:

- Hàm num_rows trả về số lượng dòng dữ liệu sau khi thực thi câu lệnh SELECT.

- Hàm num_fields trả về số lượng cột sau khi thực thi câu lệnh SELECT.

- Hàm fetch_assoc() duyệt object và trả về 1 dòng dữ liệu kiểu mảng associative,

mà theo đó key là tên cột, value là gía trị cột tương ứng. Sau khi duyệt hết 1 dòng, con trỏ của hàm này sẽ nhảy sang dòng tiếp theo. Do đó, ta phải dùng vòng lặp để duyệt tất cả dịng trong dữ liệu như ví dụ trên.

5.4 BÀI TẬP

Bài 1: Xây dựng CSDL mobile gồm các bảng:

a. Bảng products, lưu trữ thong tin sản phẩm, gồm các cột: ID, name, price, image, description, manu_ID, type_ID.

Trong đó:

 ID: mã sản phẩm, kiểu int, khố chính, tự động tang.

 name: tên sản phẩm, kiểu chuỗi tối đa 100 ký tự, khơng được để trống.

 image: hình sản phẩm, kiểu chuỗi tối đa 150 ký tự, không được trống.

 description: mô tả sản phẩm, kiểu text.

 manu_ID: mã hãng sản xuất của sản phẩm, kiểu int, không được trống.

 type_ID: mã loại sản phẩm, kiểu int, không được trống.

b. Bảng manufactures, lưu trữ các hãng sản xuất (Apple, Oppo, Samsung,..), gồm các cột: manu_ID, manu_name, manu_img.

Trong đó:

 manu_ID: mã hãng, kiểu int, khố chính, tự động tang.

 manu_name: tên hãng, kiểu chuỗi tối đa 100 ký tự, khơng được trống.

 manu_img: hình ảnh hang.

c. Bảng protypes, lưu trữ loại sản phẩm (điện thoại, laptop, loa,..), gồm các cột: type_ID, type_name, type_img.

 type_ID: mã loại, kiểu int, khố chính, tự động tang.

 type_name: tên loại, kiểu chuỗi tối đa 100 ký tự, không được trống.

 type_img: hình ảnh loại sản phẩm.

Bài 2: Thêm dữ liệu cho từng bảng

 Thêm 5 hãng sản xuất trong bảng manufactures.

 Thêm 5 loại sản phẩm trong bảng protypes.

 Thêm 20 sản phẩm trong bảng products, sao cho có 5 sản phẩm mỗi hãng và

5 sản phẩm mỗi loại.

Bài 3: Kết nối và hiển thị dữ liệu

 Xây dựng trang index.php để hiển thị ra 4 sản phẩm mới nhất (dựa vào id

sản phẩm), và tạo liên kết xem thêm bên dưới 4 sản phẩm để khi người dùng click vào sẽ hiển thị tất cả sản phẩm trong CSDL.

 Xây dựng trang chitiet.php để xem chi tiết một sản phẩm khi người dùng

TÌM KIẾM VÀ PHÂN TRANG CHƯƠNG 6:

Đây là chương rất quan trọng nhằm giúp sinh viên có khả năng:

- Trình bày được các bước để xây dựng chức năng

tìm kiếm thơng tin một cách đầy đủ, chính xác.

- Trình bày được các bước thực hiện phân trang đầy

đủ, chính xác.

Qua đó, sinh viên có thể áp dụng kỹ thuật tìm kiếm và phân trang vào bài tập cũng như đồ án một cách lịnh hoạt và chính xác.

6.1 TÌM KIẾM

Tìm kiếm là kỹ thuật rất hay được sử dụng trong lập trình web. Giúp người dùng tiết kiệm được thời gian duyệt tất cả bài viết trong một website để tìm một bài viết như mong muốn.

Kỹ thuật tìm kiếm đơn giản nhất là sử dụng từ khóa LIKE để so khớp từ khóa của người dùng với dữ liệu trong CSDL, sau đó lọc ra những dữ liệu gần với từ khóa nhất để hiển thị cho người dùng.

Dưới đây là các bước cơ bản để xây dựng một chức năng tìm kiếm cho website đã có CSDL:

Một phần của tài liệu Giáo trình lập trình web 1 Công nghệ thông tin (Trang 79 - 85)

Tải bản đầy đủ (PDF)

(103 trang)