WEB.27 [ตอน 3]ระบบเพิ่มข่าวแบบมีเพิ่มประเภทข่าว + JOIN TABLE จะต่อจาก workshop WEB.27 [ตอน 1-2] ระบบเพิ่มข่าว + เก็บข้อมูล user ที่เพิ่มข่าว + แสดงข่าวที่ user นั้นๆ เพิ่มเข้าไป แต่จะมีความพิเศษคือ workshop นี้จะมีการเพิ่มประเภทข่าวเข้าไปด้วย คือมีการเก็บ ไอดี ของประเภทข่าวเข้าไปในตารางข่าวนั้นเอง และจะสอนการ JOIN TABLE แบบง่ายๆ ที่สามารถใช้งานได้จริง
ตารางข่าว
1 2 3 4 5 6 7 8 9 10 11 12 |
CREATE TABLE IF NOT EXISTS `articles` ( `a_id` int(11) NOT NULL, `a_type_id` int(11) NOT NULL, `title` varchar(200) CHARACTER SET utf8 NOT NULL, `txtMessage` text CHARACTER SET utf8 NOT NULL, `img` varchar(200) NOT NULL, `m_username` varchar(100) NOT NULL, `datesave` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1; ALTER TABLE `articles` ADD PRIMARY KEY (`a_id`); |
ตารางประเภทข่าว
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
CREATE TABLE IF NOT EXISTS `articles_type` ( `a_type_id` int(11) NOT NULL, `a_type_name` varchar(100) CHARACTER SET utf8 NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Indexes for dumped tables -- -- -- Indexes for table `articles_type` -- ALTER TABLE `articles_type` ADD PRIMARY KEY (`a_type_id`); |
รูปแบบ SQL ที่ใช้ในการ JOIN TABLE
1 2 |
SELECT * FROM articles as a, articles_type as t WHERE a.a_type_id=t.a_type_id |
จาก code sql = articles as a ความหมายคือเราจะเปลี่ยนชื่อตารางในภาษา sql ให้สั่นลงครับ ให้สังเกตตรง WHERE a.a_type_id=t.a_type_id ถ้าเราไม่เปลี่ยนชื่อตารางเป็น a เราก็ต้องเสียเวลาพิมพ์ดังนี้
articles.a_type_id ซึ่ง code จะยาวครับ เดี๊ยวจะมีอธิบายในคลิปเพิ่มเติมนะครับ
ฟอร์มเพิ่มข่าว
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
<form action="add_articles2.php" method="POST" enctype="multipart/form-data" name="addform" class="form-horizontal" id="addform"> <div class="form-group"> <div class="col-sm-2"></div> <div class="col-sm-8"> <b> เพิ่มข่าว : devbanban.com</b> ยินดีต้อนรับ <?php echo $row_member['m_name']; ?></div> </div> <div class="form-group"> <div class="col-sm-2" align="right"> ประเภทข่าว : </div> <div class="col-sm-5" align="left"> <label> <select name="a_type_id" id="a_type_id"> <option>-เลือกประเภทข่าว-</option> </select> </label> </div> </div> <div class="form-group"> <div class="col-sm-2" align="right"> หัวข้อข่าว : </div> <div class="col-sm-8" align="left"> <input name="title" id="title" type="text" required class="form-control" placeholder="หัวข้อข่าว"/> </div> </div> <div class="form-group"> <div class="col-sm-2" align="right">รายละเอียด</div> <div class="col-sm-8" align="left"> <textarea name="txtMessage" id="txtMessage" class="ckeditor" cols="69" rows="5"></textarea> </div> </div> <div class="form-group"> <div class="col-sm-2" align="right">ไฟล์ประกอบ</div> <div class="col-sm-7" align="left"> <input type="file" name="img" id="img" required accept="image/jpeg"> </div> </div> <div class="form-group"> <div class="col-sm-2"> </div> <div class="col-sm-6"> <button type="submit" class="btn btn-primary" id="btn"> บันทึก </button> <input name="m_username" type="hidden" id="m_username" value="<?php echo $row_member['m_username']; ?>"> </div> </div> </form> |
รูปแบบฟอร์ม
add_articles2.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
<meta charset="UTF-8" /> <?php /* echo "<pre>"; print_r($_POST); echo "</pre>"; */ require_once('Connections/condb.php'); //Set ว/ด/ป เวลา ให้เป็นของประเทศไทย date_default_timezone_set('Asia/Bangkok'); //สร้างตัวแปรวันที่เพื่อเอาไปตั้งชื่อไฟล์ที่อัพโหลด $date1 = date("Ymd_His"); //สร้างตัวแปรสุ่มตัวเลขเพื่อเอาไปตั้งชื่อไฟล์ที่อัพโหลดไม่ให้ชื่อไฟล์ซ้ำกัน $numrand = (mt_rand()); //รับชื่อไฟล์จากฟอร์ม $a_type_id = $_POST['a_type_id']; $title = $_POST['title']; $txtMessage = $_POST['txtMessage']; $m_username = $_POST['m_username']; $img = (isset($_POST['img']) ? $_POST['img'] : ''); $upload=$_FILES['img']; if($upload <> '') { //โฟลเดอร์ที่เก็บไฟล์ $path="img/"; //ตัวขื่อกับนามสกุลภาพออกจากกัน $type = strrchr($_FILES['img']['name'],"."); //ตั้งชื่อไฟล์ใหม่เป็น สุ่มตัวเลข+วันที่ $newname =$numrand.$date1.$type; $path_copy=$path.$newname; $path_link="img/".$newname; //คัดลอกไฟล์ไปยังโฟลเดอร์ move_uploaded_file($_FILES['img']['tmp_name'],$path_copy); } $sql = "INSERT INTO articles ( a_type_id, title, txtMessage, m_username, img ) VALUES ( '$a_type_id', '$title', '$txtMessage', '$m_username', '$newname' )"; $result = mysql_db_query($database_condb, $sql) or die ("Error in query: $sql " . mysql_error()); mysql_close(); //เป็นจาวาสคิปเมื่อเพิ่มข้อมูลสำเร็จให้กระโดดไปไฟล์ abc if($result){ echo "<script type='text/javascript'>"; echo "alert('เพิ่มข่าวเรียบร้อย');"; echo "window.location='list_article.php';"; echo "</script>"; } else{ echo "<script type='text/javascript'>"; echo "alert('Error!');"; echo "window.location='list_article.php';"; echo "</script>"; } ?> |
คลิปทั้งหมด
ปล.งดให้คำปรึกษาการเขียนเว็บด้วย adobe dreamweaver แล้วครับ
ไปฝึกเขียนแบบใหม่ดีกว่าครับ คลิปสอนคลิก