Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > เอาคำในไฟล์ CSV มาเปรียบเทียบในฐานข้อมูล แต่ติดว่าต้องการให้คำที่ใกล้เคียงแสดงด้วย



 

เอาคำในไฟล์ CSV มาเปรียบเทียบในฐานข้อมูล แต่ติดว่าต้องการให้คำที่ใกล้เคียงแสดงด้วย

 



Topic : 119628



โพสกระทู้ ( 464 )
บทความ ( 0 )



สถานะออฟไลน์




อัพโหลดไฟล์ csv เข้ามาแล้วเปรียบเทียบกับในฐานข้อมูลว่ามีคำนั้นอยู่หรือไม่ ถ้ามีก็แสดงเครื่องหมายถูก และ แสดงคำที่ใกล้เคียงกันออกมาด้วย

ปัญหาคือ ติดตรงให้แสดงคำที่ใกล้เคียงกันออกมาด้วย เหมือน LIKE แหละครับ แต่ผลลัพธ์มันยังไม่แสดงคำใกล้เคียงออกมาด้วย

ในไฟล์ csv
rtrt

อยากให้แสดงคำใกล้เคียงออกมาประมาณนี้
ำดได

อ่านไฟล์ csv ที่อัพเข้ามา อีกแถวคือแสดงคำที่ใกล้เคียงออกมาด้วย
่ะ่ะั


Code (PHP)
<?php

        // $db->query("TRUNCATE TABLE import");   //empty the table of its current records

//Upload File
if (isset($_POST['submit'])) {
    if (is_uploaded_file($_FILES['filename']['tmp_name'])) {

        //echo "<h1>" . "File ". $_FILES['filename']['name'] ." uploaded successfully." . "</h1>";
        echo "<div class='alert alert-success alert-dismissible' role='alert'>
                <button type='button' class='close' data-dismiss='alert' aria-label='Close'><span aria-hidden='true'>&times;</span></button>
                    <strong>".$_FILES['filename']['name']."</strong> uploaded successfully.
              </div>";

        echo "<a href='#'><img src='image/excel.png'></a> << คลิกเพื่อดาวน์โหลดรายงาน";
        echo '<table class="table table-hover table-bordered">
                <thead>
                    <tr>
                        <th style="text-align: center; vertical-align: middle;" rowspan="2" width="6%"><br>ลำดับที่<br></th>
                        <th style="text-align: center; vertical-align: middle;" colspan="2" rowspan="2" width="40%"><br>รายการทรัพยากรการเรียนรู้</th>
                        <th style="text-align: center; vertical-align: middle;" rowspan="2" width="10%">รหัส</th>
                        <th style="text-align: center; vertical-align: middle;" rowspan="2" width="10%">จำนวนผู้เสนอ<br>ความต้องการ</th>
                        <th style="text-align: center;" colspan="2" width="15%">ผลการตรวจสอบทรัพยากร<br>การเรียนรู้ในฐานข้อมูล</th>
                    </tr>
                    <tr>
                        <th style="text-align: center;">มี</th>
                        <th style="text-align: center;">ไม่มี</th>
                    </tr>

                </thead>';
        //readfile($_FILES['filename']['tmp_name']);
    }

    $path = "uploads/";
    $newfilename = date("dMY H-i-s");
    $full_path = $path.$newfilename.".csv";
    copy($_FILES['filename']['tmp_name'],$path.$newfilename.".csv"); //โฟลเดอร์สำหรับเก็บรูป/ไฟล์รูป  

        include 'excel.php';

        //บันทึก filepath ลงฐานข้อมูล
        $filepath = $db->prepare('INSERT INTO logs_file(filepath,date) VALUES(:filepath,NOW()) ');
        $filepath->bindParam(':filepath',$full_path,PDO::PARAM_STR);
        $filepath->execute();
        $last = $db->lastInsertId();

    //อ่านไฟล์ csv 
    $handle = fopen($_FILES['filename']['tmp_name'], "r");
    $i=1;
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        //encode เนื่องจากไฟล์ csv เป็น tis-620 ต้อง encode ใหม่ให้เป็น utf-8 
        $data0 = trim(iconv("tis-620","utf-8",$data[0])); // [0] คือ column แรกในไฟล์ csv 
        $data1 = trim(iconv("tis-620","utf-8",$data[1]));

        //นำไปเรียบเทียบกับในตาราง datasearch6 ว่ามีอยู่หรือไม่ 
        $check = $db->prepare('SELECT d_title,d_callno FROM datasearch_6 WHERE d_title = :data');
        $check->bindParam(':data',$data0,PDO::PARAM_STR); //bindValue(1,"%$data0%",PDO::PARAM_STR);
        $check->execute();
        $row = $check->fetch(PDO::FETCH_ASSOC);
        $rowCount = $check->rowCount();

        $result = ($rowCount > 0) ? 'มี' : 'ไม่มี';
      
        //บันทึกข้อมูลจากไฟล์ csv ลงฐานข้อมูล
        $import = $db->prepare('INSERT INTO import(List,Num_offer,FK_filepath,result) VALUES(:data1,:data2,:last,:result) ');
        $import->bindParam(':data1',$data0,PDO::PARAM_STR);
        $import->bindParam(':data2',$data1,PDO::PARAM_STR);
        $import->bindParam(':result',$result,PDO::PARAM_STR);
        $import->bindParam(':last',$last,PDO::PARAM_STR);
        $import->execute();

        //แสดงข้อมูลจากไฟล์ csv ลงตาราง
        echo "<tr>";
            echo "<td style='text-align: center;'>".$i."</td>";
            echo "<td colspan='2'>".iconv("tis-620","utf-8",$data[0])."</td>";
            echo "<td>".$row['d_callno']."</td>";
            echo "<td style='text-align: center;'>".iconv("tis-620","utf-8",$data[1])." คน</td>";
        echo ($rowCount > 0) ? "<td style='text-align: center;'><span class='label label-success'>&#10004</span></td><td></td>" : "<td></td><td style='text-align: center;'><span class='label label-danger'>&#10008</span></td>";
        echo "</tr>";

         if ($rowCount > 0) {
            $select = $db->prepare('SELECT d_title,d_callno FROM datasearch_6 WHERE d_title REGEXP :word');
           //$k = "%".$data0."%";
            $select->bindParam(':word',$data0,PDO::PARAM_STR);
            $select->execute();  
            $ro = $select->rowCount();

            while ($data = $select->fetch(PDO::FETCH_ASSOC)) {
                 echo "<tr><td colspan='7'>".$data['d_title']."</td></tr>";
            }
        }

    $i++;
    }

    include 'excel.php';
    $update = $db->prepare('UPDATE logs_file SET pathExcel_load = :load WHERE id = :last');
    $update->bindParam(':load',$strFileName,PDO::PARAM_STR);
    $update->bindParam(':last',$last,PDO::PARAM_STR);
    $update->execute();
    //ปิดการอ่านไฟล์ csv
    fclose($handle);

    //print "<br> <span class='text-success'>Import done</span>";

    //view upload form
}
  
else {

    print "อัพโหลด CSV ใหม่โดยการเรียกดูไฟล์และคลิกที่อัปโหลด<br />\n";

    print "<form enctype='multipart/form-data' action='index.php' method='post'>";

    print "กรุณาเลือกไฟล์:<br />\n";

    print "<input size='50' type='file' name='filename' id='filename' accept='.csv'><br />\n";

    print "<input type='submit' name='submit' id='submit' value='อัปโหลด' class='btn btn-primary' disabled /> </form>";

}

?>



ขอบคุณครับ



Tag : PHP, MySQL, HTML/CSS, JavaScript, Ajax, jQuery







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-10-29 14:46:13 By : littlebeer View : 2996 Reply : 2
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ยากนะครับ ระบบแบบนี้ เพราะถ้าใช้ LIKE แค่สระหรืออักษร ต่างกัน ไม่ติดกัน มันก็หาไม่เจอล่ะ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-10 12:04:51 By : mr.win
 


 

No. 2



โพสกระทู้ ( 1,636 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ก็อยู่ที่ว่า scope ในการแสดงคำที่ใกล้เคียงกัน จำนวนเท่าไหร่

ถ้าใช้ like ค่าที่น้อยกว่าจะไม่ออก

แบบกำหนดจำนวนเหมือน สูงต่ำ +/- 50 records

Code (SQL)
select * from (
select * from table where fieldname<'xxxxxx' order by fieldname limit 50 union all
select * from table where fieldname>='xxxxxx' order by fieldname limit 51
) as tmp order by fieldname


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-11-10 12:27:50 By : NewbiePHP
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : เอาคำในไฟล์ CSV มาเปรียบเทียบในฐานข้อมูล แต่ติดว่าต้องการให้คำที่ใกล้เคียงแสดงด้วย
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่