• Downloading from our site will require you to have a paid membership. Upgrade to a Premium Membership from 10$ a month today!

    Dont forget read our Rules! Also anyone caught Sharing this content will be banned. By using this site you are agreeing to our rules so read them. Saying I did not know is simply not an excuse! You have been warned.

Hướng dẫn Nhập dữ liệu từ file excel sử dụng công nghệ XML...

Smobi

New Member
Nếu chúng ta thêm 1 user, 1 thể loại thì dễ dàng, còn nếu yêu cầu chúng ta hằng ngày nhập 1 list danh sách(>500)các thông tin của nhân viên, thông tin bài nhạc... để up lên web thì sao, chả lẽ chúng ta phải nhập bằng tay từng thông tin 1 hay sao, ngày nào cũng vậy chắc đứt bóng sớm :)). Vậy là bắt đầu mình suy nghĩ, làm cách nào để up 1 phát là xong hết không nhỉ, giả dụ nếu mình có 1 file excel có đầy đủ hết thông tin của tất cả các bài hát(>1000 bài đi cho nó oách :D ) nếu mà up thẳng 1 lèo vào database được thì đỡ quá nhỉ, không biết php làm được không ta? thầy thì chỉ mới dạy tới phần xml thoai, nên đối với mình thì pó..code :( . Thế là tới nhà bác Google hỏi thăm coi thế nào, lang thang vài vòng lượn zô 1 trang toàn... tiếng anh, khiếp thiệt, mình nhìn nó, nó nhỉn mình cưởi chả ai biết ai =)) may thay thấy 1 dòng đập vào mắt bảo convert file .xls sang file xml, nghĩ một hồi cái tự nhiên nảy ra ý tưởng và lao đầu vào "cột" ... ặc nhầm, lao đầu vào code :)).
hihi nói nhảm nãy giờ đủ rồi giờ chúng ta bắt đầu nhé.

Đầu tiên chúng ta có 1 file excel với dữ liệu về thông tin bài nhạc như thế này:

46217db47502aa6a95fbba8a1c089864e10877066aeb023392a59da3423cf3f36g.jpg


Sau đó mở lên và lưu lại với đuôi là .xml

e07cd91da096597d7776411dd19080c4b8372fb23aca5a5ffbfc2d7a377c904c6g.jpg


Và sau đó mở file xml này lên, nó sẽ có cấu trúc như thế này:

efa40a369bb3efae000ad0fc2da5c04e4aa6712c4d0196a200d3afb30a0739936g.jpg


Ở đây chúng ta thấy, Dữ liệu của chúng ta cần lấy nó nằm trong cặp thẻ <Row>, vậy chúng ta cần xác định được vị trí của thẻ <row> và sau đó dùng vòng lặp, lặp qua các thẻ <row> để lấy giả trị chúng ta cần sau đó nhập vào database, cụ thể chúng ta sao làm như sau:

Đầu tiên tạo 1 database tên test, sau đó tạo 1 bảng tên media với cấu trúc như sau:

97d3c5eb92f1fb86da6f68a3c83a24e333ef9da5d82d9abbdc4ae3c0d214ea896g.jpg


Trong trang html ta có 1 form cho phép chọn file xml(convert từ file excel) cần nhập dữ liệu:

HTML:
<form action="b.php" method="post" enctype="multipart/form-data">
        Select a file: <input type="file" name="upload" size="50" />
        <input type="submit" name="send" value="Upload" /> </form>
Khi chọn file và nhấp vào nút upload code xử lý sẽ như sau:
PHP:
<?php
        
    if(isset($_POST["send"])){//Nếu nút send được nhấn
        if($_FILES["upload"]["name"] != NULL){//Nếu có chọn file
            move_uploaded_file($_FILES["upload"]["tmp_name"],"data/" . $_FILES["upload"]["name"]);di chuyển file xml lên server trong thư mục data
            $dom = new DOMDocument();Khởi tạo đối tượng PHP DOM
            $dom->load("data/" . $_FILES["upload"]["name"]);//Load file xml vừa được chuyển trong thư mục data
            $row = $dom->getElementsByTagName("Row");//Xác định vị trí của thẻ <Row>
            $first_row = TRUE;//Biến định là dòng đầu tiên trong bảng excel(dòng tiêu đề)
            foreach($row as $r){//Bắt đầu lặp qua các thẻ Row
                if(!$first_row){//Nếu không phải là dòng đầu tiên
//Lấy giá trị của các cột trên từng dòng
                    $a = $r->getElementsByTagName("Cell")->item(0)->nodeValue;
                    $b = $r->getElementsByTagName("Cell")->item(1)->nodeValue;
                    $c = $r->getElementsByTagName("Cell")->item(2)->nodeValue;
                    $d = $r->getElementsByTagName("Cell")->item(3)->nodeValue;
                    $e = $r->getElementsByTagName("Cell")->item(4)->nodeValue;
                    $f = $r->getElementsByTagName("Cell")->item(5)->nodeValue;
//Khởi tạo câu truy vấn
                    $sql = "insert into media(song,singer,musician,categories,album,url) values('" . $a . "','" . $b . "','" . $c . "','" . $d . "','" . $e . "','" . $f . "')";
//Thực thi câu truy vấn và kiểm tra kết quả trả về
                    if(mysql_query($sql) != FALSE){
                        $mess ="Thêm dữ liệu thành cong";
                    }else{
                        $mess = "Thêm dữ liệu thất bại";
                    }
                }
                $first_row = FALSE;//Biến xác định đã qua dòng đầu tiên
            }
            echo "<cente>$mess</center>";
        }
    }
    
?>
Vậy là xong phần xử lý, bây giờ mình đổ dữ liệu ra ngoài bảng nhé
PHP:
<table cellpadding="0" cellspacing="0" border="1" width="80%">
        <tr>
            <th>STT</th>
            <th>Tên bài hát</th>
            <th>Ca sĩ</th>
            <th>Nhạc sĩ</th>
            <th>Thể loại</th>
            <th>Album</th>
            <th>Đường dẫn</th>
        </tr>
    <?php
        $sql = "select * from media order by categories ASC";
        $query = mysql_query($sql);
        if(mysql_num_rows($query) > 0){
            $stt = 0;
            while($data = mysql_fetch_assoc($query)){
                $stt++;
                echo "<tr>";
                    echo "<td>$stt</td>";
                    echo "<td>$data[song]</td>";
                    echo "<td>$data[singer]</td>";
                    echo "<td>$data[musician]</td>";
                    echo "<td>$data[categories]</td>";
                    echo "<td>$data[album]</td>";
                    echo "<td>$data[url]</td>";
                echo "</tr>";
            }
        }else{
            echo "<tr><td colspan=7 align=center>Data empty</td></tr>";
        }
    ?>
    </table>
Code đầy đủ cho toàn bộ quá trình của chúng ta:
HTML:
<?php
    $conn = mysql_connect("localhost","root","root");
    mysql_select_db("test",$conn);
    
    if(isset($_POST["send"])){
        if($_FILES["upload"]["name"] != NULL){
            move_uploaded_file($_FILES["upload"]["tmp_name"],"data/" . $_FILES["upload"]["name"]);
            $dom = new DOMDocument();
            $dom->load("data/" . $_FILES["upload"]["name"]);
            $row = $dom->getElementsByTagName("Row");
            $first_row = TRUE;
            foreach($row as $r){
                if(!$first_row){
                    $a = $r->getElementsByTagName("Cell")->item(0)->nodeValue;
                    $b = $r->getElementsByTagName("Cell")->item(1)->nodeValue;
                    $c = $r->getElementsByTagName("Cell")->item(2)->nodeValue;
                    $d = $r->getElementsByTagName("Cell")->item(3)->nodeValue;
                    $e = $r->getElementsByTagName("Cell")->item(4)->nodeValue;
                    $f = $r->getElementsByTagName("Cell")->item(5)->nodeValue;
                    $sql = "insert into media(song,singer,musician,categories,album,url) values('" . $a . "','" . $b . "','" . $c . "','" . $d . "','" . $e . "','" . $f . "')";
                    if(mysql_query($sql) != FALSE){
                        $mess = "Them du lieu thanh cong";
                    }else{
                        $mess = "Them du lieu that bai" . mysql_error();
                    }
                }
                $first_row = FALSE;
            }
            echo "<cente>$mess</center>";
        }
    }
    
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
	<meta name="author" content="Le Kim Thuc" />
    <style type="text/css">
        form{
            text-align: center;
            margin: 50px auto;
        }
    </style>
</head>
<body>
    <form action="b.php" method="post" enctype="multipart/form-data">
        Select a file: <input type="file" name="upload" size="50" />
        <input type="submit" name="send" value="Upload" />
    </form>
    <table cellpadding="0" cellspacing="0" border="1" width="80%">
        <tr>
            <th>STT</th>
            <th>Tên bài hát</th>
            <th>Ca sĩ</th>
            <th>Nhạc sĩ</th>
            <th>Thể loại</th>
            <th>Album</th>
            <th>Đường dẫn</th>
        </tr>
    <?php
        $sql = "select * from media order by categories ASC";
        $query = mysql_query($sql);
        if(mysql_num_rows($query) > 0){
            $stt = 0;
            while($data = mysql_fetch_assoc($query)){
                $stt++;
                echo "<tr>";
                    echo "<td>$stt</td>";
                    echo "<td>$data[song]</td>";
                    echo "<td>$data[singer]</td>";
                    echo "<td>$data[musician]</td>";
                    echo "<td>$data[categories]</td>";
                    echo "<td>$data[album]</td>";
                    echo "<td>$data[url]</td>";
                echo "</tr>";
            }
        }else{
            echo "<tr><td colspan=7 align=center>Data empty</td></tr>";
        }
    ?>
    </table> </body>
Phù cuối cùng thì cũng xong, đây là lần thư 2 viết lại, hiz.. nãy viết vừa xong nhấp xem lại bài viết thì bị đá giăng ra ngoài, làm mất sạch :(( lại phải ì ạch việts lại. Kết quả như hình sau:

52c1ca8811a89a855b84e01e3b3696af890b2d9b69a75495837bb841a9e12f1d6g.jpg


Đây chỉ là bài demo ý chính là nhập dữ liệu bằng file excel, nên có nhiều cái còn lôi thôi luộm thuộm, mong các bạn bỏ qua nhé ^_^, bạn nào chưa biết thì có thể tham khảo , bạn nào biết rùi mà biết cách viết hay hơn thì nhớ share cho mọi người cùng học hỏi nhé.

Ai không hiểu thì có thể hỏi mình hoặc pm wa nick yà hú: thugianmotti :D

File demo các bạn có thể download tại đây: file XML, file PHP
 

Facebook Comments

Similar threads
Thread starter Title Forum Replies Date
P Anonymous đột nhập website Bộ Tư pháp Mỹ, trộm 1,7GB dữ liệu Sách, truyện, tài liệu 1
katy Android Vào app MobiFone Money: Đăng nhập liền tay - Nhận ngay quà tặng Điện thoại di động 18
A Võ Lâm Tái Khởi - Game nhập vai chuẩn cày cuốc trên mobile Trò chơi 0
katy MOBIFONE SERVICE (MFS) TUYỂN DỤNG NHÂN SỰ CUỐI NĂM – THU NHẬP CỰC HẤP DẪN Thông tin các mạng di động 0
Thichquangboom Upload Guest – Giải pháp chia sẻ nội dung nhanh chóng, an toàn không cần đăng nhập Tin tức CNTT 0
Thichquangboom FSHARE RA MẮT TÍNH NĂNG UPLOAD GUEST – CHIA SẺ NỘI DUNG KHÔNG CẦN ĐĂNG NHẬP Tin tức CNTT 0
Admin Hướng dẫn fix lỗi đăng nhập từ iPhone đã ghép nối trên Watch OS 6.2.6 Điện thoại di động 0
Admin Hướng dẫn tự động phân cách phần nghìn khi nhập số C# giống tiền C# / C++ 0
Admin Hướng dẫn chỉ cho phép nhập số trong input textbox C# C# / C++ 0
T Walmart hội nhập vào dược phẩm qua blockchain MediLedger Tin tức CNTT 0
tunglamed Sử dụng MobiFone NEXT nhập mã giới thiệu nhận tiền liền tay Thông tin các mạng di động 2
khanhsak3r Xin Mod đăng nhập bằng facebook cho johncms Johncms 4
N My MobiFone khuyến mãi cho khách hàng đăng nhập lần đầu Thông tin các mạng di động 3
T CodeIgniter 15- Thực hành đăng nhập/đăng xuất Mã nguồn web 0
E Hỏi cách bắt lỗi @ ở phần nhập email trong js JavaScript / Ajax 1
H Xin hương dẫn tạo file đăng ký cập nhập dư liêu facebook Johncms 2
Admin Hướng dẫn tạo trang đăng nhập admincp giả cho xenforo Xenforo 0
Admin Tin tặc đánh cắp thông tin đăng nhập của 2 triệu người dùng từ nhiều website lớn bằng keylogger Tin tức CNTT 0
Admin [PC] Forced Inlaws 2013 [Nhập Vai | Full 1 Link] Trò chơi 0
Admin Hướng dẫn kiểm tra thông tin đăng nhập an toàn bằng php PHP 0
Admin Facebook gia nhập Hiệp hội GSM trong nỗ lực củng cố Internet.org, hứa hẹn là thành viên tích cực Tin tức CNTT 0
Admin Adobe ra bản cập nhập Lightroom 5.3: hỗ trợ Sony A7/A7R, Fuji X-E2/XQ1, Nikon D610... Tin tức CNTT 0
Admin Google Drive cho iOS cập nhật bản mới, hỗ trợ đăng nhập nhiều tài khoản Tin tức, giới thiệu về ĐTDĐ 0
Admin Bill Gates: tổ hợp phím "Ctrl + Alt + Del" dùng cho việc đăng nhập vào Windows là một sai lầm Tin tức CNTT 0
Admin Share code php đăng nhập facebook PHP 2
T [Game Android, iPhone/iPad Online] Teen Teen: Gunny 3D nhập vai, bắn súng phong cách teen Android, iOS 0
C Tình trạng khó đăng nhập đã được khắc phục Trò chuyện linh tinh 0
V Sách huyền thuật bùa chú: Sách Vạn Pháp Quy Tông, Sách Phù pháp nhập môn… Trò chuyện linh tinh 0
ChickenStyle Hỏi Sao em không đăng nhập wapftp được Thảo luận wap việt 3
Admin Giải thích hiện tượng train quái thoát ra trang đăng nhập Điện thoại di động 2
Admin [Multi] Dota 2 v.580 - AutoUpdate - No-Steam [ 2013 / Hành động / Nhập vai ] Trò chơi 0
Admin Share code quản lý file không cần đăng nhập host Mã nguồn wap 0
X Help Cách đăng nhập admin shop khi pass get được bị mã hóa SQL injection 7
Admin Hướng dẫn tự động check ghi nhớ khi đăng nhập user thành viên Xenforo 0
S [Mod] Bàn phím ảo khi nhập password login cho VBB 4.x Add-ons 1
Admin Hướng dẫn viết shell linux nhập môn Kiến thức lập trình 0
H Help Đăng nhập ftp ko đc Hỏi đáp về domain & hosting 2
Admin Hướng dẫn sửa lỗi phải nhập lại pass các tài khoản trên meego khi cài android Thủ thuật ĐTDĐ 1
Admin Share code quản lí file php không cần đăng nhập ftp Mã nguồn wap 1
T Android vấn đề bị out khi đăng nhập Android, iOS 5
Admin Metro login v.1.5 - Trang đăng nhập theo phong cách metro cực đẹp Mã nguồn web 0
blog4me Mọi người vào nhanh kẻo bị hacker xâm nhập Tin tức, sự kiện thường ngày 2
Admin Hướng dẫn bỏ trang đăng nhập thành công sau khi đăng nhập Phpbb3x 0
K Thủ thuật Tăng Thu Nhập Với Kiemtiendo.net Mạng internet 6
Admin Cách đổi màu màn hình đăng nhập của Windows 8 Hệ điều hành 0
S Hướng dẫn Paypal nhập môn Hacking 0
Admin Hướng dẫn hình loading khi đăng nhập Vbb tutorial 0
S share code index đăng nhập mail cho vbb Mã nguồn web 0
Admin Google cập nhập pagerank rạng sáng 08.10.2012 Thảo luận SEO 0
S Ồ ạt nhập thịt, nông dân "treo chuồng" Tin tức, sự kiện thường ngày 0

Similar threads

New posts New threads New resources

Back
Top