รบกวนหน่อยค่ะ คือต้องการ insert ข้อมูล โดยต้องเชื่อม 3 id อ่ะค่ะ ไม่รู้ว่าต้องทำอย่างไรบ้าง พอดีเพิ่งหัดค่ะ
พอดีทำกระทู้อยู่อ่ะค่ะ โค้ดนี้เป็นโค้ดตอนตอบกระทู้ค่ะ
ต้องการให้ชื่อผู้ตอบเเสดงเป็นชื่อที่login เข้าไปอ่ะค่ะ
แต่ทีนี้มันจะต้องมี ID ทั้งหมด 3 ID เชื่อมกันคือ user_id ,ans_id,idคำถาม
ที่นี้ในนี้มันเชื่อมแค่ user_id กับidคำถาม มันรัน ans_id ค่ะ
ไม่ทราบว่าพอดีมีวิธีไหนบ้างคะ ที่จะเชื่อม 3 id อ่ะค่ะ หมดหนทางจริงๆ
Code (PHP)
// Include คลาส class.upload.php เข้ามา เพื่อจัดการรูปภาพ
require_once('class.upload.php') ;
session_start();
if(!isset($_SESSION['user_id']) || !isset($_SESSION['user_name'])) {
header("Location: user_login.php");
exit;
}
$user_id = $_SESSION['user_id'];
$user_name = $_SESSION['user_name'];
// ส่วนกำหนดการเชื่อมต่อฐานข้อมูล
$hostname_connection = "localhost";
$database_connection = "test";
$username_connection = "root";
$password_connection = "";
$connection = mysql_pconnect($hostname_connection, $username_connection, $password_connection)
or trigger_error(mysql_error(),E_USER_ERROR);
mysql_query( "SET NAMES UTF8" ) ;
// ถ้าหากหน้านี้ถูกเรียก เพราะการ submit form
// ประโยคนี้จะเป็นจริงกรณีเดียวก็ด้วยการ submit form
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
// เริ่มต้นใช้งาน class.upload.php ด้วยการสร้าง instant จากคลาส
$upload_image = new upload($_FILES['image_ans']) ; // $_FILES['image_name'] ชื่อของช่องที่ให้เลือกไฟล์เพื่ออัปโหลด
// ถ้าหากมีภาพถูกอัปโหลดมาจริง
if ( $upload_image->uploaded ) {
// ย่อขนาดภาพให้เล็กลงหน่อย โดยยึดขนาดภาพตามความกว้าง ความสูงให้คำณวนอัตโนมัติ
// ถ้าหากไม่ต้องการย่อขนาดภาพ ก็ลบ 3 บรรทัดด้านล่างทิ้งไปได้เลย
$upload_image->image_resize = true ; // อนุญาติให้ย่อภาพได้
$upload_image->image_x = 300 ; // กำหนดความกว้างภาพเท่ากับ 400 pixel
$upload_image->image_ratio_y = true; // ให้คำณวนความสูงอัตโนมัติ
$upload_image->process( "upload_images" ); // เก็บภาพไว้ในโฟลเดอร์ที่ต้องการ *** โฟลเดอร์ต้องมี permission 0777
// ถ้าหากว่าการจัดเก็บรูปภาพไม่มีปัญหา เก็บชื่อภาพไว้ในตัวแปร เพื่อเอาไปเก็บในฐานข้อมูลต่อไป
if ( $upload_image->processed ) {
$image_ans = $upload_image->file_dst_name ; // ชื่อไฟล์หลังกระบวนการเก็บ จะอยู่ที่ file_dst_name
$upload_image->clean(); // คืนค่าหน่วยความจำ
$created_ans = $result['created'];
$created_ans = date('Y-m-d H:i:s');
//$user_name = $result['user_name'];
// เก็บชื่อภาพลงฐานข้อมูล
$insertSQL = sprintf("INSERT INTO answers (detail,image_ans,created_ans,ans_id,user_name,user_id) VALUES ( '%s','%s','%s','%s','%s','%s')",$detail,$image_ans,$created_ans,$id,$user_name,$user_id );
}
// echo $insertSQL;
//echo "<img src = 'upload_images/$image_name'>";
mysql_select_db($database_connection, $connection);
$Result1 = mysql_query($insertSQL, $connection) or die(mysql_error());
}// END if ( $upload_image->processed )
mysql_query("UPDATE questions SET reply = reply+1 WHERE id ='{$_POST['id']}' ");
header("Refresh: 2; url=web1.php");
echo "<font size=5 color=red>อัพโหลดข้อมูลสำเร็จ<p /></font>";
} //END if ( $upload_image->uploaded )
mysql_close();
Tag : PHP, MySQL
ประวัติการแก้ไข 2015-03-25 16:55:49
Date :
2015-03-25 16:53:02
By :
creditGirl
View :
841
Reply :
7
ตอน select มาแสดงก็แค่ join ตารางเองนิคับ ^^
Date :
2015-03-25 17:46:52
By :
progamer2000
คือมันอยู่ในตารางเดียวกันอ่ะ ไม่ค่อยเข้าใจการ join เท่าไหร่อ่ะค่ะ
Date :
2015-03-26 09:27:01
By :
creditGirl
เอา structure ของ ตารางมา ครับ ขอเป็น export จาก phpmyadmin นะครับ ต้องการเป็น text
Date :
2015-03-26 09:32:02
By :
Chaidhanan
ตามนี้ค่ะ
Code (SQL)
-- phpMyAdmin SQL Dump
-- version 2.10.3
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Mar 26, 2015 at 10:11 AM
-- Server version: 5.0.51
-- PHP Version: 5.2.6
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- Database: `test`
--
-- --------------------------------------------------------
--
-- Table structure for table `answers`
--
CREATE TABLE `answers` (
`detail` text collate utf8_unicode_ci NOT NULL,
`image_ans` varchar(100) collate utf8_unicode_ci NOT NULL,
`created_ans` datetime NOT NULL,
`id` int(11) NOT NULL auto_increment,
`ans_id` int(11) NOT NULL,
`user_name` varchar(100) collate utf8_unicode_ci NOT NULL,
`user_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
FULLTEXT KEY `detail` (`detail`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=11 ;
--
-- Dumping data for table `answers`
--
INSERT INTO `answers` VALUES ('ตอบคำถาม', 'depositphotos_25941629-Europe-map_15.jpg', '2015-03-18 12:09:47', 1, 4, 'admin', 0);
INSERT INTO `answers` VALUES ('', '', '2015-03-18 12:16:59', 2, 4, '', 0);
INSERT INTO `answers` VALUES ('ตอบบบบบบบบบ', '', '2015-03-18 12:19:33', 3, 0, 'admin', 0);
INSERT INTO `answers` VALUES ('กกกกกกก', '', '2015-03-18 12:22:31', 4, 4, '', 0);
INSERT INTO `answers` VALUES ('ssssss', 'black_heart_2.png', '0000-00-00 00:00:00', 5, 0, 'user', 2);
INSERT INTO `answers` VALUES ('aaaaaa', 'cream_happy_ice_2.png', '2015-03-23 14:55:38', 6, 0, 'user', 2);
INSERT INTO `answers` VALUES ('aaaaaaaaa', 'cloud_fun.png', '2015-03-23 15:07:27', 7, 0, 'user', 2);
INSERT INTO `answers` VALUES ('ssssssss', 'red_heart_1.png', '2015-03-23 15:10:44', 8, 0, 'user', 2);
INSERT INTO `answers` VALUES ('eeeeeeWWW', 'faint.png', '2015-03-23 15:15:55', 9, 0, 'user', 2);
INSERT INTO `answers` VALUES ('sssss', '', '2015-03-23 15:23:36', 10, 0, 'user', 2);
-- --------------------------------------------------------
--
-- Table structure for table `questions`
--
CREATE TABLE `questions` (
`id` tinyint(11) unsigned NOT NULL auto_increment,
`user_id` int(10) NOT NULL,
`topic` varchar(50) character set utf8 collate utf8_unicode_ci NOT NULL,
`detail` text character set utf8 collate utf8_unicode_ci NOT NULL,
`user_name` varchar(50) character set utf8 collate utf8_unicode_ci NOT NULL,
`created` datetime NOT NULL,
`view` int(4) NOT NULL,
`reply` int(4) NOT NULL,
`image` varchar(100) character set utf8 collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=9 ;
--
-- Dumping data for table `questions`
--
INSERT INTO `questions` VALUES (1, 2, 'ตั้งกระทู้ใหม่', 'ตั้งกระทู้ใหม่ตั้งกระทู้ใหม่ตั้งกระทู้ใหม่ตั้งกระทู้ใหม่ตั้งกระทู้ใหม่ตั้งกระทู้ใหม่\r\nตั้งกระทู้ใหม่ตั้งกระทู้ใหม่\r\nตั้งกระทู้ใหม่ตั้งกระทู้ใหม่ตั้งกระทู้ใหม่\r\nตั้งกระทู้ใหม่ตั้งกระทู้ใหม่\r\nตั้งกระทู้ใหม่', 'user', '2015-03-18 11:02:44', 6, 0, '2010110312141040281_14.jpg');
INSERT INTO `questions` VALUES (2, 2, 'ทดสอบ ตั้งกระทู้ใหม่', 'ทดสอบ ตั้งกระทู้ใหม่ทดสอบ ตั้งกระทู้ใหม่ทดสอบ ตั้งกระทู้ใหม่ทดสอบ ตั้งกระทู้ใหม่\r\nทดสอบ ตั้งกระทู้ใหม่\r\nทดสอบ ตั้งกระทู้ใหม่ทดสอบ ตั้งกระทู้ใหม่\r\nทดสอบ ตั้งกระทู้ใหม่ทดสอบ ตั้งกระทู้ใหม่\r\nทดสอบ ตั้งกระทู้ใหม่ทดสอบ ตั้งกระทู้ใหม่ทดสอบ ตั้งกระทู้ใหม่', 'user', '2015-03-18 11:03:35', 5, 0, '1371455488-A49JPG-o_2.jpg');
INSERT INTO `questions` VALUES (3, 1, 'testtttttt', 'testtttttttesttttttttesttttttttesttttttttesttttttttesttttttt\r\ntesttttttt\r\n\r\ntesttttttt\r\ntesttttttt', 'admin', '2015-03-18 11:09:07', 0, 0, 'shibuya_Tilt_Shift_3.jpg');
INSERT INTO `questions` VALUES (4, 1, 'test1', 'test1 test1 test1test1test1test1 test1 test1 \r\ntest1\r\n test1', 'admin', '2015-03-18 11:11:09', 30, 4, 'pontocho_1.jpg');
INSERT INTO `questions` VALUES (5, 2, 'เทสค่ะ', 'ตำบล บ้านใหม่ อำเภอ ปากเกร็ด นนทบุรี - จากที่อยู่อินเทอร์เน็ตของคุณ - ใช้ตำแหน่งที่แน่นอน - เรียนรู้เพิ่มเติม ', 'user', '2015-03-18 14:07:49', 4, 0, '2010110312141040281_15.jpg');
INSERT INTO `questions` VALUES (6, 2, 'เทสสสสสสส', 'กำหนดให้ Google เป็นเครื่องมือค้นหาเริ่มต้นเพื่อให้ผลการค้นหามาจาก Google ทุกครั้งที่คุณค้นหา', 'user', '2015-03-18 14:08:45', 1, 0, 'depositphotos_25941629-Europe-map_13.jpg');
INSERT INTO `questions` VALUES (7, 2, 'ชื่อหัวข้อกระทู้ ', 'ชื่อหัวข้อกระทู้ โปรดตรวจสอบแหล่งข้อมูลความช่วยเหลือของเบราว์เซอร์นั้นๆ เพื่อดูข้อมูลเกี่ยวกับการเปลี่ยนการตั้งค่าการค้นหา', 'user', '2015-03-18 14:11:58', 1, 0, 'depositphotos_25941629-Europe-map_14.jpg');
INSERT INTO `questions` VALUES (8, 2, 'ตั้งกระทู้ใหม่', 'ตั้งกระทู้ใหม่ตั้งกระทู้ใหม่ตั้งกระทู้ใหม่ตั้งกระทู้ใหม่ตั้งกระทู้ใหม่\r\nตั้งกระทู้ใหม่ตั้งกระทู้ใหม่ตั้งกระทู้ใหม่', 'user', '2015-03-18 14:12:27', 12, 0, 'Penguins_2.jpg');
-- --------------------------------------------------------
--
-- Table structure for table `user`
--
CREATE TABLE `user` (
`user_id` int(10) unsigned NOT NULL auto_increment,
`login` varchar(100) collate utf8_unicode_ci default NULL,
`password` varchar(20) collate utf8_unicode_ci default NULL,
`user_name` varchar(50) collate utf8_unicode_ci default NULL,
`status` enum('ADMIN','USER') collate utf8_unicode_ci NOT NULL default 'USER',
PRIMARY KEY (`user_id`),
UNIQUE KEY `login` (`login`),
UNIQUE KEY `user_name` (`user_name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=3 ;
--
-- Dumping data for table `user`
--
INSERT INTO `user` VALUES (1, 'admin', '12345678', 'admin', 'ADMIN');
INSERT INTO `user` VALUES (2, 'user', '12345678', 'user', 'USER');
Date :
2015-03-26 10:17:04
By :
creditGirl
กรณีทำเป็นโชว์กระทู้
แยกการเรียก ออกเป็น สองส่วน
คิวรี่ question ก่อน แสดงหัวข้อ
Code (SQL)
select q.*, u.user_name, u.status
from ( select * from `questions` where id=$q_id limit 1 ) q
inner join `user` u on u.user_id = q.user_id
และ เรียก ส่วนของ answer ตามหลัง
Code (SQL)
select a.*, u.user_name, u.status
from ( select * from `answers` where ans_id=$q_id ) q
inner join `user` u on u.user_id = a.user_id
หมายเหตุ $q_id ได้จากการคลิก ลิสต์ หัวข้อคำถาม
ส่วนการโชว question หัวข้อคำถาม
Code (SQL)
select * from (
select qu.*, count(a.id) count_answer, coalesce( max(a.created_ans), qu.created) last_answer
FROM (
select q.*, u.user_name qName, u.status qStatus
from `questions` q inner join `user` u on u.user_id = q.user_id
) qu
left join `answers` a on a.ans_id=qu.id
group by qu.id
) tmp
order by last_answer desc
ประวัติการแก้ไข 2015-03-26 11:53:57 2015-03-26 11:55:09
Date :
2015-03-26 11:53:05
By :
Chaidhanan
แล้วถ้าต้องการ insert ข้อมูลเข้าไปล่ะคะ
พอดีในโค้ดที่ให้ไป ans_id ไม่มันขึ้นอ่ะค่ะ
คือต้องการ ans_id = questions.id ค่ะ
Date :
2015-03-26 18:02:28
By :
creditGirl
Load balance : Server 01