Cách thêm dữ liệu từ cơ sở dữ liệu vào danh sách thả xuống trong php?

Trong nhiều trường hợp, có thể mã hóa cứng một tập hợp các tùy chọn danh sách thả xuống ngay trong phần HTML của trang như đã thực hiện trong ví dụ trước. Tuy nhiên, khi nội dung của một danh sách thường xuyên thay đổi, cách tiếp cận như vậy sẽ yêu cầu rất nhiều lần cập nhật trang không cần thiết. Giống như bạn có thể sử dụng PHP để truy xuất dữ liệu được phủ trên bản đồ, bạn cũng có thể sử dụng nó để tự động điền vào danh sách thả xuống

Để minh họa một cách tiếp cận vấn đề này, chúng ta hãy xem một phiên bản sửa đổi đôi chút của trang Jen và Barry ở phần trước của bài học

Nó trông và hoạt động giống nhau đối với người dùng cuối. Tuy nhiên, phiên bản này lấy tên của các thành phố từ MySQL. Lưu ý rằng thay cho phần tử select đã được mã hóa cứng trước đây, giờ đây chỉ có một div trống [với id được gán]. Sự khác biệt khác trong phiên bản này có thể được tìm thấy ở phần đầu của hàm initMap[]. Ở đó trước khi khởi tạo bản đồ là một lệnh gọi jQuery ajax[]. Mã này đọc đầu ra của tập lệnh có tên get_city_list. php và chèn văn bản đó vào div giữ chỗ trống. Đây là mã nguồn của get_city_list. php

https. //phpdb. một bộ. psu. edu/phpjed124/get_city_list. php

Logic đằng sau tập lệnh này khá đơn giản. Đầu tiên, nó xuất các thẻ bắt đầu cho nhãn của danh sách và chọn các thành phần, theo sau là tùy chọn "tất cả" [để hiển thị tất cả các thành phố]. Sau đó, nó lặp qua các bản ghi được trả về bởi một truy vấn chọn một danh sách các thành phố duy nhất. Mệnh đề GROUP BY của truy vấn không thực sự cần thiết đối với bảng này, nhưng tôi đã đưa nó vào vì mệnh đề như vậy thường hữu ích để loại bỏ trùng lặp. Ví dụ: hãy tưởng tượng bạn đang phát triển một ứng dụng bất động sản cho phép người dùng chọn một khu học chánh từ danh sách và xem tất cả các bất động sản có sẵn trong khu học chánh đó. Bạn muốn mỗi khu học chánh chỉ hiển thị trong danh sách thả xuống một lần, nhưng bảng chứa danh sách tài sản có thể chứa nhiều lần xuất hiện của mỗi khu học chánh. NHÓM THEO trên trường khu học chánh sẽ tạo ra một danh sách không trùng lặp [và được sắp xếp theo thứ tự bảng chữ cái]

Điều này kết thúc nội dung trên cơ sở dữ liệu quan hệ và việc sử dụng chúng trong ngữ cảnh lập bản đồ web. Trên trang tiếp theo, bạn sẽ tìm thấy một kịch bản dự án mà bạn có thể hoàn thành như một cách để áp dụng những gì bạn đã học được ở đây vào thực tế và/hoặc để kiếm thêm tín chỉ

Tôi chưa quen với PHP. Khi tôi đang cố chèn giá trị từ danh sách thả xuống vào bảng cơ sở dữ liệu, hiển thị một số lỗi

mật mã



OPTION



Name :





".$name."inserted"; } else { echo mysql_error[]; } } ?>

khi tôi đang thử đưa ra lỗi này

Bạn có lỗi trong cú pháp SQL của mình;

Trong nhiều tình huống, chúng ta có thể cần tạo đầu vào thả xuống có thể hiển thị tất cả các tùy chọn phù hợp với trạng thái hiện tại của cơ sở dữ liệu. Hình thức đầu vào này được sử dụng nhiều lần trong cuộc sống thực và các ví dụ sau đây có thể giúp hiểu được điều tương tự

  1. Tập sinh viên có số đăng ký duy nhất
  2. Một tập hợp các tên chi nhánh và id chi nhánh của họ
  3. Danh sách các danh mục mà một sản phẩm cụ thể phải thuộc về

Trong bài viết này, chúng tôi sẽ tạo danh sách thả xuống với danh sách các danh mục mà một sản phẩm cụ thể phải thuộc về

Tiếp cận. Trong mỗi ví dụ này, nếu chúng ta sử dụng menu thả xuống để tìm nạp dữ liệu từ cơ sở dữ liệu, người dùng sẽ có thể nhập dữ liệu chính xác hơn và giao diện người dùng sẽ thân thiện hơn với người dùng.  

Chúng tôi cần những điều sau đây

  • Cơ sở dữ liệu có bảng danh mục và một bảng sản phẩm khác có khóa ngoại cho ID danh mục chứa sản phẩm cụ thể
  • Biểu mẫu HTML chấp nhận dữ liệu

bước

Tạo cơ sở dữ liệu

  • Bật Apache và MySQL từ bảng điều khiển XAMPP

Bấm vào nút “Bắt đầu”

  • Tạo cơ sở dữ liệu “example_store” bằng cách nhấp vào nút mới

Bấm vào nút “mới” để tạo cơ sở dữ liệu mới

  • Nhập tên cơ sở dữ liệu và nhấp vào “Tạo”

Tạo một cơ sở dữ liệu mới với tên “example_store”

  • Nhấp vào tab SQL và dán đoạn mã sau và nhấp vào “GO”

Để chạy SQL và chuẩn bị cơ sở dữ liệu

truy vấn MySQL

-- Table structure for table `category`
CREATE TABLE `category` [

 `Category_ID` int[11] NOT NULL,

 `Category_Name` varchar[255] NOT NULL

] ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Dumping data for table `category`
INSERT INTO `category` [`Category_ID`, `Category_Name`] VALUES

[1, 'Category A '],

[2, 'Category B'];

-- Table structure for table `product`
CREATE TABLE `product` [

 `Product_ID` int[11] NOT NULL,

 `product_name` varchar[255] NOT NULL,

 `category_id` int[11] NOT NULL

] ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- Dumping data for table `product`
INSERT INTO `product` [`Product_ID`, `product_name`, `category_id`] VALUES

[1, 'Product A1', 1],

[2, 'Product A2', 1],

[3, 'Product B1', 2];


-- Primary Key Constraints
ALTER TABLE `category`

 ADD PRIMARY KEY [`Category_ID`];

ALTER TABLE `product`

 ADD PRIMARY KEY [`Product_ID`],

 ADD KEY `Category_constraint` [`category_id`];
 
 
 
-- AUTO_INCREMENT for table `category`
ALTER TABLE `category`

 MODIFY `Category_ID` int[11] NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;

-- AUTO_INCREMENT for table `product`

ALTER TABLE `product`

 MODIFY `Product_ID` int[11] NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;

-- Foreign Key Constraints

ALTER TABLE `product`

 ADD CONSTRAINT `Category_constraint` FOREIGN KEY [`category_id`] 
 REFERENCES `category` [`Category_ID`] ON DELETE 
 CASCADE ON UPDATE CASCADE;

Thí dụ. Chúng tôi tạo một tệp PHP trong một thư mục có tên “example_store” trong htdocs và tạo biểu mẫu sau. trang web php có thể được truy cập trong trình duyệt tại “localhost/example_store/form. php”

PHP




Chủ Đề