พบกับบทความเกี่ยวกับคอมพิวเตอร์และ programming ได้ที่ http://articles.modoeye.com
PHP development / ก็อปปี้จากเท็กซ์ไฟล์เข้าตารางได้หรือไม่
โตโต้
โตโต้
Mon 5 Jun 2006 12:19:30
เราสามารถก็อปปี้จากเท็กซ์ไฟล์เข้าตารางได้หรือไม่ครับ ผมลองพยายามหลายครั้งแล้วปรากฎว่าไม่ได้ครับ ลองดูโค้ดข้างล่างนี้นะครับ
ถ้าให้มันแสดงออกมาทางหน้าจอไม่มีปัญหาสามารถแสดงได้ทุกบรรทัดหรือจะกำหนดให้แสดงกี่บรรทัดก็ได้ โดยแก้ไขค่าที่ใช้วนลูป
แต่มันไม่สามารถ insert เข้าตารางได้ครับ ไม่ทราบว่าปัญหามันอยู่ตรงไหน
<html>
<head>
    <title>Exam Online</title>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
</head>
<body background="images/bg.gif" bgproperties=fixed>
<br><br><br><br>
<form action="" method="post">
<?
    function createTable($tableName)
    {
        $hostname = "localhost";
        $username = "root";
        $password = "";
        $dbname = "";

        $conn = mysql_connect( $hostname, $username, $password );
        mysql_query("SET NAMES TIS620");
        if ( ! $conn )
            die( "ไม่สามารถติดต่อกับ MySQL ได้" );
        mysql_select_db( $dbname, $conn )
            or die ( "ไม่สามารถเลือกใช้งานฐานข้อมูล $dbname ได้" );

        $sql = "DROP TABLE IF EXISTS ".$tableName;
        mysql_query($sql, $conn);
       
        $create_tb = "CREATE TABLE ".$tableName." (
        Number int(5) NOT NULL auto_increment,
        Question text NOT NULL,
        Choice1 text NOT NULL,
        Choice2 text NOT NULL,
        Choice3 text NOT NULL,
        Choice4 text NOT NULL,
        Answer text NOT NULL,
        PRIMARY KEY (Number)
        )ENGINE=MyISAM;" ;
        mysql_query($create_tb, $conn);
    }

    function insertExam($tbname, $Q, $C1, $C2, $C3, $C4, $A)
    {
        $hostname = "localhost";
        $username = "root";
        $password = "";
        $dbname = "";

        $conn = mysql_connect( $hostname, $username, $password );
        mysql_query("SET NAMES TIS620");
        if ( ! $conn )
            die( "ไม่สามารถติดต่อกับ MySQL ได้" );
        mysql_select_db( $dbname, $conn )
            or die ( "ไม่สามารถเลือกใช้งานฐานข้อมูล $dbname ได้" );

        $strSQL1 = "INSERT INTO ".$tbName." (Number, Question, Choice1, Choice2, Choice3, Choice4, Answer)";
        $strSQL1 = $strSQL1." VALUES('','$Q','$C1','$C2','$C3','$C4','$A')";
       
        if(!mysql_query( $strSQL1, $conn ))
        {
            $dberr = mysql_error();
            return false;
        }
        return true;
        mysql_close($conn);
    }

    echo "<table cellpadding=\"4\" cellspacing=\"0\" border=\"1\" width= \"30%\" align=\"center\" bordercolor=\"blue\">";
    echo "<tr>";
    echo "<td align=\"center\"><b>ชื่อตาราง: </b><input type=\"text\" name=\"lesson\" size=\"30\"></td>";
    echo "</tr>";
    echo "<tr>";
    echo "<td align=\"center\"><input type=\"file\" name=\"cFile\"></td>";
    echo "</tr>";
    echo "<tr>";
    echo "<td align=\"center\"><input type=\"submit\" name=\"send\" value=\"   ตกลง   \"></td>";
    echo "</tr>";
    echo "</table>";
if( $send )
{
    createTable($lesson);
    $fs = "$cFile";
    $fp = fopen($fs, "r") or die ("ไม่สามารถเปิดแฟ้ม $fs ได้");
    $y = 0;
    while(! feof($fp))
    {
        $line = fgets($fp);
        ++$y;
    }
    fclose($fp);
    $m = $y / 6;

    $lines = file($fs);
    $start = 0;
    $stop = 6;
    $a0 = 0;
    $a1 = 1;
    $a2 = 2;
    $a3 = 3;
    $a4 = 4;
    $a5 = 5;

for($z=0; $z<$m; $z++)
{
    for($x=0; $x<$m; $x++)
    {
        for($i = $start; $i<$stop; $i++)
        {
            if($z == $a0)
                $Q = $lines[$i];
            if($z == $a1)
                $C1 = $lines[$i];
            if($z == $a2)
                $C2 = $lines[$i];
            if($z == $a3)
                $C3 = $lines[$i];
            if($z == $a4)
                $C4 = $lines[$i];
            if($z == $a5)
                $A = $lines[$i];
            insertExam($lesson, $Q, $C1, $C2, $C3, $C4, $A);
        }
        $start = $start + 6;
        $stop = $stop + 6;
        }
        $a0 = $a0 + 6;
        $a1 = $a1 + 6;
        $a2 = $a2 + 6;
        $a3 = $a3 + 6;
        $a4 = $a4 + 6;
        $a5 = $a5 + 6;
    }
}
?>
</form>
</body>
</html>
Administrator
Mon 5 Jun 2006 21:27:19
อ่านจากทั้งหมดแล้วผิดตรงที่

<form action="" method="post">
ถ้าต้องการให้มีการ upload เกิดขึ้นต้องระบุ Attribute enctype="multipart/form-data"

if( $send )
{
    createTable($lesson);
    $fs = "$cFile";
    $fp = fopen($fs, "r") or die ("ไม่สามารถเปิดแฟ้ม $fs ได้");
    $y = 0;
.......

เนื่องจากเมื่อมีการส่งค่าไปเป็นเพียงที่อยู่ของไฟล์ต้นทางเท่านั้นซึ่งทาง server ไม่สามารถเข้ามาเปิดไฟล์ในเครื่อง Client ได้ครับ ต้องทำการ upload ขึ้นไปบนเครื่อง Server ก่อนแล้วเปิดไฟล์นั้นขึ้นมาอ่านครับ
Reply
Name:
E-mail:
Home | Services | Forum | Classified | Directories | Support | Contact
ATOM feed RSS 0.9 feed RSS 1.0 feed RSS 2.0 feed
Copyright © 2005 - 2007 Modoeye.com, All Rights Reserved.
Disclaimer | Privacy policy | Term of Use | Term of Services
Valid XHTML Valid CSS! PHP: Hypertext Preprocessor MySQL database Apache Powered! FreeBSD Power to serve
Modoeye Sitemap Client login