ช่วยเขียนคำสั่ง select หน่อยค่ะ

15 replies [Last post]
greengrape
Joined: 2007-06-08
Points: 0
User offline. Last seen 3 years 2 weeks ago.

อยากให้ช่วยเขียนคำสั่ง  select เพื่อดึงข้อมูลจากตาราง

หน้า Interface จะมีปุ่ม check box ที่สามารถเลือก กี่อันก็ได้ พอเลือกแล้วกดตกลง หน้าจอ Interfaceก็จะแสดงผลเฉพาะ ที่เราเลือก

ใช้ phpหรือ mysql เขียน น่ะค่ะ นี้คือข้อมมูลของดาตาเบส น่ะค่ะ (สร้าง ใน appserv ค่ะ)

ฐานข้อมูล: `receiving`

CREATE TABLE `customer1` (

   `id` INT( 100 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
   `name` VARCHAR( 100 ) NOT NULL ,
   `surname` VARCHAR( 100 ) NOT NULL ,
   `phone` VARCHAR( 100 ) NOT NULL ,
   `address` VARCHAR( 300 ) NOT NULL ,
   `product` VARCHAR( 100 ) NOT NULL
) ENGINE = MYISAM ;

 

 dump ตาราง `customer1`

ข้อมูลในตารางมีดั้งนี้น่ะค่ะ

http://imagehost.compgamer.com/uploads/ea8b6fba49.jpg

ขอบคุณมากน่ะค่ะ ช่วยหน่อยค่ะ

greengrape
Joined: 2007-06-08
Points: 0
User offline. Last seen 3 years 2 weeks ago.

กำรูปไม่ขึ้น เอาไปใหม่น่ะค่ะ

http://imagehost.compgamer.com/uploads/ea8b6fba49.jpg

roteee
roteee's picture
Joined: 2007-06-06
Points: 49
User offline. Last seen 7 hours 34 min ago.

เอ่อ ... ยังไม่เข้าใจคำถามอยู่ดีคับ ...

  1. ปุ่ม check box ที่เลือกกี่อันก็ได้นี่ เลือกจากไหนคับ จากหน้า list ของ customer1 ทั้งหมด หรือไม่อย่างไร
  2. เมื่อกดตกลงแล้วหน้าจอแสดงข้อมูลที่เลือก จะแสดงอะไรบ้าง หรือไม่ อย่างไร

ลองให้ข้อมูลเพิ่มเติมมาหน่อยคับ ... เดี๋ยวจะพะยามช่วย :)

greengrape
Joined: 2007-06-08
Points: 0
User offline. Last seen 3 years 2 weeks ago.

1 .ปุ่ม check box  ที่ว่านี้คือ เขียน code แล้วรัน จาก http://localhost  ออกมาอะค่ะ  ที่user สามารถดูรายละเอียดได้อะค่ะ

2. หน้า จอแสดงแค่

รายละเอียดของลูกค้า

แล้วต่อด้วย ปุ่ม check box หัวข้อปุ่ม check box ก็คือ id, name ,surname ,phone ,address ,procude ประมานว่า เรา เลือก ปุ่ม check box  ไหนก็จะแสดง เฉพาะรายละเอียดในข้อหัวที่เราเลือก อะค่ะ

 

ปล ม่ายรู้ว่าจะเข้าใจที่นู๋บอกรึป่าว  ไม่รู้จะอธิบายยังไงอะค่ะ ได้แค่นี้ละ ขอบคุณทุกคนที่คิดจะช่วยแต่ถ้าไม่เข้าใจสิ่งที่นู่ถาม ก็ไม่เป็นไรค่ะ

roteee
roteee's picture
Joined: 2007-06-06
Points: 49
User offline. Last seen 7 hours 34 min ago.

เอ่อ ... ยังไม่เข้าใจอยู่ดี เหอ เหอ :)

แต่ ... ปกติจะเป็นอย่างนีน้ะครับ ที่เขาใช้งานกันอยู่ ระหว่างปุ่ม checkbox ที่ว่า (จริงๆ มันไม่ใช่ปุ่ม มันเป็น checkbox เฉยๆ) 

--------------------------------------------------------------------------------

My Customer

Check Box ID Name
01 Mister 01
02 Mister 02
03 Mister 03

ทำกับที่เลือกไว้:

--------------------------------------------------------------------------------

พอกด Submit จะขึ้น

 

--------------------------------------------------------------------------------

Customers Detail

  • Mister 02
    ID:: 02
    Address:: xxxxxxxxxxxxxxx
    Phone:: xxxx
  • Mister 03
    ID:: 03
    Address:: xxxxxxxxxxxxxxx
    Phone:: xxxx

--------------------------------------------------------------------------------

ผมเข้าใจถูกมั้ยคับ ว่าคงต้องการอย่างนี้ ????

greengrape
Joined: 2007-06-08
Points: 0
User offline. Last seen 3 years 2 weeks ago.

ช่ายค่ะ ถูกต้อง 1000 เปอร์เซ็ต นู้อธิบายไม่เป็นเอง อิอิ

ช่วยหน่อยน่ะค่ะ เอาแบบนี้เลย เอาแสดงได้ทุกหัวข้อเลยน่ะค่ะ id, name ,surname ,phone ,address ,procude

ขอบพระคุณอย่างสูงค่ะ คุณ rotee  ช่าวหน่อยน่ะค่ะ

 

(ได้เป็นไฟล์มาเลยยิ่งดี)

greengrape
Joined: 2007-06-08
Points: 0
User offline. Last seen 3 years 2 weeks ago.

คุณ rotee ไปไหนแล้วค่ะ มาช่วยหนูหน่อยค่ะ คุณเข้าใจถูกแล้ว

roteee
roteee's picture
Joined: 2007-06-06
Points: 49
User offline. Last seen 7 hours 34 min ago.

เอ่อ ... เดี๋ยวเย็นๆ มาตอบให้น้ะครับ ... ตอนนี้ปั่นงานก่อน :)

roteee
roteee's picture
Joined: 2007-06-06
Points: 49
User offline. Last seen 7 hours 34 min ago.

กลับมาตอบให้ตามสัญญาน้ะครับ แต่จะขอตอบพอเป็น guide น้ะครับ คงต้องเอาไปประยุกต์ต่อเอง เดี๋ยวเขียนให้หมดจะหาว่าดูถูกกัน ...

ที่จะเอามาให้ดูเป็นตัวอย่างง่ายๆ น้ะครับ โดยประเด็นในการทำงานมันมีจุดน่าสนใจอยู่ 4 จุด ดังนี้

  1. ใน FORM ถ้าเราต้องการให้ checkbox มันเลือกได้หลายอัน เพื่อให้ทำงานง่าย เราก็ตั้งชื่อของ checkbox ให้เป็น array ของ php โดยใส่ [] เข้าไป เช่น
    <input type="checkbox" name="customerIdArr[]" value="1"/>Mister 01<br/>
  2. พอ FORM ถูก SUBMIT ไป ใน PHP เราก็จะเห็นข้อมูลที่มาจาก checkbox เป็น array (ในกรณีที่ user ติ๊กมาน้ะครับ) เช่นในกรณีนี้ เราสามารถดึงข้อมูลมาใช้ ผ่านตัวแปร คือ
    $_REQUEST['customerIdArr']
    • ทำไมผมใช้ $_REQUEST ??? ในเมื่อ อ้างตัวแปรจากชื่อเดียวกันกับชื่อ FIELD ใน FORM ก็ได้ ... เนื่องจาก ผมต้องการให้ code มันเคลียร์ เนื่องจากตัวแปรในโปรแกรมเรามีหลายรูปแบบ ทั้งตัวแปรที่เราสร้างขึ้นในโปรแกรม, ตัวแปร session, ตัวแปร cookie และตัวแปรจาก form นี่แหล่ะ ซึ่งทั้งหมดนั้น สามารถอ้างด้วยการขึ้นต้นด้วย $ ได้หมดเลย ผมก็เลยผมงงเอง ว่าตัวไหนเป็นตัวไหน ตัวไหนมาจากไหน ผมก็เลยใส่ $_REQUEST ไว้เพื่อบ่งบอกว่า ตัวแปรนี้มันมาจากการ Request น้ะ
    • ดูข้อมูลเพิ่มเติมได้ที่ Predefined Variables
  3. สุดท้าย เราก็เอา id ที่ user เลือกมาหลายๆอัน และอยู่ใน array มาใช้ใน sql command ของเรา โดยใช้ expression IN และใช้ function join() ในการเชื่อมข้อมูลใน array มาเป็น string ดังนี้
    $sql =  "SELECT id, name, surname, phone, address, product FROM customer1 WHERE id IN ("
    . join(",", $_REQUEST['customerIdArr'])
    . ")";  
  4. จากนั้นก็เอา $sql ไปทำงานในการ query ข้อมูล และเอาข้อมูลมาแสดงผลต่อไป

 

ตัวอย่าง Code

File: index.php
-------------------------
<html>
<head>
<title>Test multiple checkboxs - Form - phpzealots.com</title>
</head>
<body>
<h1>My Customer List</h1>
<fieldset>
<legend>Please select one or more customers that you want to see their detail:</legend>
<form method="post" action="processor.php">
<input type="checkbox" name="customerIdArr[]" value="1"/>Mister 01<br/>
<input type="checkbox" name="customerIdArr[]" value="2"/>Mister 02<br/>
<input type="checkbox" name="customerIdArr[]" value="3"/>Mister 03<br/>
<input type="checkbox" name="customerIdArr[]" value="4"/>Mister 04<br/>
<input type="checkbox" name="customerIdArr[]" value="5"/>Mister 05<br/>
<br/>
<input type="submit" />
<input type="reset" />
</form>
</fieldset>
</body>
</html>

File: processor.php
-------------------------
<?php

header("Content-type: text/html; charset=tis-620"); 
if( empty($_REQUEST['customerIdArr']) || !is_array($_REQUEST['customerIdArr']) )
{
$result = "You have no select any customer, please back and try again.";
}
else
{
$sql = "SELECT id, name, surname, phone, address, product FROM customer1 WHERE id IN ("
. join(",", $_REQUEST['customerIdArr'])
. ")";
$result = "<b>Sql ที่นำไปใช้งานต่อ ในการเอาไป Query เอาข้อมูล customer::</b><br/>".$sql;
//.. เอา $sql ไปทำงานต่อเองน้ะครับ
}
?>
<html>
<head>
<title>Test multiple checkboxs - Result - phpzealots.com</title>
</head>
<body>
<h1>My Customer Details</h1>
<fieldset>
<legend>The result</legend>
<br/>
<br/>
<?= $result ?>
<br/>
<br/>
<a href="javascript:history.back();">[Back]</a>
<br/>
<br/>
<br/>
</fieldset>
</body>
</html>
ดูตัวอย่าง online ได้ที่นี่

 

greengrape
Joined: 2007-06-08
Points: 0
User offline. Last seen 3 years 2 weeks ago.

คุณ rotee ค่ะ

นู่ทำต่อมิได้ ติ๊ก chackbox แล้ว แสดงค่ามิได้ อ่ะค่ะ

File: processor.php ไฟล์นี้ที่ให้มา นู่ไม่เข้าใจอ่า

คือที่นู่ทำมันไม่ยอม ดึงข้อมูลจาก ดาต้าเบส มาเลยอะค่ะ

ช่วยหน่อยนาค่ะ

 

ninja_noy
Joined: 2007-09-06
Points: 0
User offline. Last seen 2 years 44 weeks ago.

ลองแบบนี้ดูนะครับ

//$chkID คือตัวแปรที่ส่งมาจากform
for($i=0;$i $sql="DELETE FROM news WHERE id='$chkID[$i]'";
$query=mysql_query($sql);
$data=mysql_fetch_array($query)

echo"ID:: $data[id]

Address:: $data['address']

Phone:: $data['phone']
"
}
//ตอนแสดงผลก็ลองทำดูเองนะครับ



©2007-2010 PHPZealots.com. All right reserved.