|
|
|
ปัญหา insert Tag Articles ครับ insert ข้อมูล 3 ตารางแบบ many-to-many |
|
|
|
|
|
|
|
พอดีผมจะทำระบบ แท็กติดบทความครับ ก็เลยออกแบบตารางไว้แบบนี้ครับ
โดย 1 บทความ มีแท็กได้มากกว่า 1 แท็ก และแต่ละแท็ก มีอยู่ได้มากกว่า 1 บทความ
โดยจะเพิ่มข้อมูลลงตาราง แต่มีเงื่อนไขคือ ตาราง tb_tag.tag_name ห้ามซ้ำกัน(Unique)
ผมอยากเพิ่มข้อมูลลงทั้ง 3 ตารางได้ประมาณนี้ครับ
ตาราง tb_articles
ตาราง tb_tagmap
ตาราง tb_tags
ประเด็น มันติดปัญหาอยู่สองตาราง คือ tb_tagmap กับ tb_tags คือผมไม่รู้จะเพิ่มยังไงทั้ง 2 ตาราง โดยที่อ้างอิง tag_id
Code
$strSQL = "INSERT INTO tb_articles (articles_id,title, content, picture, thumbnail, date, status, category_id, member_id) VALUES ('','$txt_title', '$txt_content', '$txt_image', '$txt_thumb', '$txt_date', '$txt_status', '$txt_category', '$txt_id')";
$query = mysqli_query($link, $strSQL);
$articles_id = mysqli_insert_id($link);// id ของ articles ล่าสุด
$tags = $_POST['txt_tags'];//ข้อความที่ส่งมาจาก from
$expArray = explode(', ', $tags);//แบ่งข้อความเป็นอาร์เรย์ เก็บไว้ใน $expArray
$count = count($expArray);//นับจำนวนอาร์เรย์
for ($i = 0; $i < $count; ++$i) { //ถ้าตัวแปร i น้อยกว่า จำนวนอาร์เรย์
$txt_tags = $expArray[$i]; //เก็บอาร์เรย์ไว้ใน $txt_tags
$strSQL_t = "INSERT INTO tb_tags (tag_id, tag_name) VALUES ('','$txt_tags')";
$query_t = mysqli_query($link, $strSQL_t);
$txt_tags = mysqli_insert_id($link);
$strSQL_tm = "INSERT INTO tb_tagmap (tagmap_id, tag_id, articles_id) VALUES ('', '$txt_tags', '$articles_id' )";
$query_tm = mysqli_query($link, $strSQL_tm);
}
if ($query) {
?>
ยังไงก็ขอบคุณพี่ๆที่แวะมานะครับ...ผมนั่งงมมา 2-3 วันแล้ว ไม่ได่ซักที
Tag : PHP, MySQL
|
|
|
|
|
|
Date :
2016-09-11 03:17:14 |
By :
cskpru |
View :
1119 |
Reply :
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้วครับ!
หลังจากที่นั่ง งมมา 3 คืน เหมือนเส้นผมบังภูเขาเลย ใช้ if เช็ค last_insert_id จบเลย
|
|
|
|
|
Date :
2016-09-11 12:36:41 |
By :
cskpru |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จัดไปครับ
|
|
|
|
|
Date :
2016-09-12 11:44:53 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|