Thu 6 Dec 2007 16:49:29
คือผมต้องการสร้าง TEMPORARY TABLE โดยใช้ PHP น่ะครับ ปัญหาที่ผมเจอคือ ผมรันคำสั่ง SQL จาก phpMyAdmin โดยใช้คำสั่ง
CREATE TEMPORARY TABLE ex_tmp_table ( ID int, Name char(100) )
พอ Query แล้วมันแจ้งว่า "ทำคำค้นเสร็จเรียบร้อยแล้ว (คำค้นใช้เวลา 0.0128 วินาที)" ไม่มี Error ใดๆ แต่พอผม Query โดยใช้คำสั่ง
SELECT * FROM ex_tmp_table
มันแจ้งกลับมาว่าไม่มี ตาราง ex_tmp_table นี้ในฐานข้อมูลแบบนี้ครับ
#1146 - Table 'naturnova_mlm.ex_tmp_table' doesn't exist
ก็เลยงงครับ ลองคิดดูว่ามาเป็นที่ สิทธิ์ หรือเปล่าก็เลยลองเช็คดู ก็ไม่น่าจะใช่ คือผมใช่ คือผมลองรันคำสั่งสร้างตารางธรรมดาดูมันก็ได้ตามปกติคือ
CREATE TABLE ex_tmp_table ( ID int, Name char(100) )
มันก็สร้างได้ ผมใช้ phpMyAdmin โดยใช้ user root แล้ว (ผมรันที่เครื่องของตัวเองน่ะครับ ใช้ AppServ V.2.4.9)
แต่ผมลอง query ที่โปรแกรม MySQL ตรงๆเลยน่ะครับ มันก็สร้าง TEMPORARY TABLE ได้ไม่มีปัญหา โดยใช้คำสั่งเดิม
CREATE TEMPORARY TABLE ex_tmp_table ( ID int, Name char(100) )
ผมใช้ navicat น่ะครับเป็นตัวจัดการ ก็เลยไม่แน่ใจว่า Script PHP ไม่สามารถรัน SQL Command " CREATE TEMPORARY TABLE "
หรือว่าผมต้องไป Config ในส่วนใดบ้างครับ เพราะว่าผลลองเขียนโปรแกรมเป็น php แล้วก็ไม่ได้ หรือจะรันใน phpMyAdmin ก็ไม่ได้ครับ
ขอบพระคุณครับ
Sun 9 Dec 2007 13:11:51
Mon 10 Dec 2007 08:52:52
คือผมทำระบบ mlm (ขายตรงน่ะครับ เหมือน Amway) คือระบบที่ผมทำอยู่นี้คือ แสดงจำนวน Downline ในแต่ละชั้นของสมาชิกคนนั้นๆ เช่น สมมุติว่าผม Login ผ่านหน้าเว็บมาแล้วก็จะแสดง ดาวน์ไลน์ทั้งหมดของผม เช่น
= ชั้นที่ 1 มี
--> สมปอง
--> สมชาย
--> สมศรี
= ชั้นที่ 2 มี
--> อาทิตย์
--> อาคม
= ชั้นที่ 3 มี
--> กรองทิพย์
--> กรองสิน
คือว่าตอนนี้ผมเขียนคำสั่งต่างๆ ให้มันหาว่า เรามี Downline ทั้งหมดกี่ชั้น? และแต่ละชั้นมีทั้งหมดกี่คน? ใครบ้าง?
ที่นี้ผมเขียนพวกนี้ได้แล้ว แต่ผมต้องการที่จะพักข้อมูลพวกนี้ไว้ใน Temporary table ต่างหาก เพื่อที่จะนำไปใช้ต่อชั่วคราว เช่นอาจจะนำไปคำนวณหา รายได้แต่ละชั้น ฯลฯ *----- ที่ตอนนี้ผมทำให้มัน Create Table จริงๆเลยซึ่งไม่ใช่ Temp table น่ะครับ มันทำให้ Database บวมโดยใช่เหตุ !
งั้นผมคงต้องเปลี่ยน Solution ในการพักข้อมูลของผลแหล่ะครับ ผมคิดว่าจะนำข้อมูลทั้งหมดที่ Query หา Downline ทั้งหมดกี่ชั้น? และแต่ละชั้นมีทั้งหมดกี่คน? ใครบ้าง? มาเก็บลง Table จริงๆ ซึ่งไม่ใช่ Temporary Table
แล้วตอน Logout ค่อย DROP TABLE นั้นเอา **** -- แต่ผมมองว่า ตอนนี้ผมมี สมาชิก 5,000 กว่าคน งั้นมันต้องสร้างตาราง 5,000 ตารางแน่ๆเลย ---- กรรม
งั้นผมรบกวนถามอีกข้อน่ะครับ ผมจะใช้คำสั่ง เช็คว่ามี Table ที่ชื่อว่า downline_userid อยู่ใน Database นี้แล้วหรือยัง คือแบบนี้ครับผมจะเช็คว่า หากมีการสร้างตาราง downline_userid นี้แล้ว ผมก็จะ DROP TABLE นั้นก่อนน่ะครับ ผมควรใช่คำสั่งอย่างไรดีครับ
ขอบพระคุณครับ
Mon 10 Dec 2007 09:44:12
ถ้าจะเอาไว้แสดงผลข้อมูล ไม่ลองใช้ view ใน mysql 5.1 ล่ะครับน่าจะง่ายกว่าเยอะเลย
http://dev.mysql.com/doc/refman/5.1/en/create-view.html
Tue 11 Dec 2007 08:15:45

















