|
|
|
มีคำถามเกี่ยวกับ PHP (session , redirect) , Ajax (Prototype Framework) และ MySQL (relational database with InnoDB storage engine) ครับ |
|
|
|
|
|
|
|
** ผมเขียน Ajax โดยใช้ Prototype Framework นะครับ **
1. ทำไมการส่งผ่าน parameter ของ
Quote:A : Ajax.Updater(div,url {parameters: $F('data')});
B : Ajax.Updater(div,url {parameters: $('data').serialize()});
แบบ B ถึงสามารถดึงข้อมูลด้วย $_POST['data'] ได้ในขณะที่ A ทำไม่ได้ครับ
2. Ajax.Updater สามารถส่ง parameter มากกว่า 1 ตัวด้วย method "post" ได้ไหมครับ ทุกวันนี้ผมใช้แบบ "get" อยู่เนื่องจากพอใช้ "post" แล้วไม่สามารถดึงข้อมูลด้วย $_POST ได้ครับ
3. ถ้าตั้ง frequency ของ Ajax.PeriodicalUpdater เป็น 1 ควรจะตั้ง decay เท่าไรดีครับ
4. Prototype Framework ต้องเขียนโค๊ดเฉพาะสำหรับ browser อื่นๆนอกเหนือจาก IE ไหมครับ เพราะโค๊ดที่ผมมี ทำงานได้กับเฉพาะ IE เท่านั้น นอกอื่นไม่แสดงผลเลย
5. PHP สามารถ redirect ด้วยวิธีอื่นนอกจาก header ได้มั้ยครับ เพราะจะ redirect ตอนที่เช็คเงื่อนไขกลาง page ซึ่งมีการส่ง tag html ออกไปแล้ว นอกจากนั้นแล้ว header สามารถระบุ delay time ก่อนจะ redirect ได้ไหมครับ
6. ผมมีใช้ session ในการเช็คล๊อกอินโดยมีโค๊ดดังนี้
Quote:session_start();
/ ตรวจสอบการล๊อกอิน /
if ( ล๊อกอินสำเร็จ ){
$_SESSION['logged_in'] = 1
}
พอผมล๊อกอินด้วย IE browser แรกไปแล้ว ผมลองเปิด IE browser ขึ้นมาอีกอัน ปรากฏว่า IE ตัวที่สอง สามารถเข้าถึง $_SESSION ได้ ทำให้มีสถานะเป็นล๊อกอินเช่นเดียวกับ IE ตัวแรก ต้องแก้ไขอย่างไรครับ
** ผมยังไม
7. ผมสร้าง MySQL relational database ที่มี storage engine เป็น InnoDB พอผมสร้าง FK เสร็จเรียบร้อยหมดแล้ว และลองทดสอบไปซักพัก พอจะล้างข้อมูล ( ด้วยคำสั่ง truncate ใน PHPMyAdmin ) ปรากฎว่าไม่สามารถทำได้ เกิด mysql errno 1216 บ้าง 1217 บ้าง เป็นเพราะอะไรหรอครับ แก้ไขได้อย่างไร
8. ถ้าผมมีตาราง 2 ตารางโดยสมมุติตารางแรกเก็บข้อมูลผู้ใช้ ตารางที่สองเก็บ log ของผู้ใช้ เช่น
Quote:Table user
user_id : PK มีข้อมูล {1,2,3,4,5,...}
...
...
...
Table log
log_id : PK มีข้อมูล {1,2,3,4,5,6,7,8,...}
user_id : FK มีข้อมูล {1,4,6,1,2,4,...}
...
...
...
แล้วผม query = SELECT * FROM user INNER JOIN log (user.user_id = log.user_id) ตารางผลลัพท์ที่ออกมาจะเป็น
Quote:user_id : ข้อมูล 1,1
log_id : ข้อมูล 1,4
ใช่ไหมครับ
9. ถ้าผมมีข้อมูลที่กำหนดวันหมดอายุไว้ จะทำอย่างไรให้ข้อมูลนั้นถูกเปลี่ยนสถานะได้เมื่อถึงเวลาดังกล่าวครับ ( เช่นเปลี่ยนฟิลด์ status ในฐานข้อมูลจาก active เป็น inactive )
Tag : PHP, MySQL, Ajax
|
ประวัติการแก้ไข 2010-10-04 23:22:03
|
|
|
|
|
Date :
2010-10-04 23:18:24 |
By :
Tar_Tw45 |
View :
1904 |
Reply :
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เรื่องมันเยอะนะครับ ไว้ค่อยมาตอบละกัน
|
|
|
|
|
Date :
2010-10-05 00:13:16 |
By :
PlaKriM |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
กำ พิมพ์ตั้งนาน ดันเจ้ง save ไม่ติดซะงั้น เอาไว้เข้าออฟฟิตก่อนแล้วจะตอบใหม่ละกัน
|
|
|
|
|
Date :
2010-10-06 01:00:21 |
By :
PlaKriM |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ข้อแรกๆ ผมตอบไม่ได้เพราะไม่เคยใช้ prototype
ข้อ 5 รีไดเรค ใช้วิธี header() นั้นถูกต้องแล้วครับ ถ้าคุณเกรงว่าจะมี output ออกไปก่อน ก็เก็บไว้ในบัฟเฟอร์ก่อนครับ โดยใช้ ob_start();
ข้อ 6 ปรกติ session ก็จะมีให้เห็นอยู่แล้วครับ ถ้ายังไม่ปิดบราวเซอร์ถูกหน้าต่าง (ถือว่าเป็นผู้ใช้เดียวกัน)
ข้อ 7 ผมเองก็ไม่เคยใช้ innoDB อย่างจริงจัง สาเหตุคาดว่า มีการกำหนด FK ซึ่งลิงค์อยู่กับอีกตารางหนึ่งครับ ดังนั้น (เดานะ) ให้ truncate ตารางหลัก แล้วตารางที่มี FK จะลบออกเองมั้ง (ลองดูนะ)
ข้อ 8 น่าจะจะได้ {1, 2, ...} , {1, 4, ...} มั้ง
ข้อ 9 ใช้ query ครับ
|
|
|
|
|
Date :
2010-10-06 08:16:49 |
By :
pjgunner.com |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|