Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > ต้องการค้นหาข้อมูลด้วย ListMenu มี 4 ListMenu ด้วยจากหลาย ๆ ตารางที่สัมพันธ์กัน ได้อย่างไรครับ??



 

ต้องการค้นหาข้อมูลด้วย ListMenu มี 4 ListMenu ด้วยจากหลาย ๆ ตารางที่สัมพันธ์กัน ได้อย่างไรครับ??

 



Topic : 025431



โพสกระทู้ ( 230 )
บทความ ( 0 )



สถานะออฟไลน์




เรียน พี่ ๆ ทุกท่าน
คือว่าผมได้ออกแบบ Database และตารางต่าง ๆ ออกเป็นหลาย ๆ ตาราง ซึ่งมีการสัมพันธ์กัน แต่ผมต้องการจะค้นหาข้อมูลด้วย ListMenu จากเงื่อนไขต่าง ๆ 4 ListMenu จะต้องเขียนโค๊ด PHP อย่างไรครับ...(ขอส่งรูปภาพมาให้ดูเป็นตัวอย่างประกอบนะครับ)

ตารางการค้นหาข้อมูล

ที่เห็นแต่ในกระทู้ต่าง ๆ จะเป็นการค้นหาด้วย TextField แทบทั้งนั้น และค้นหาในตารางเดียวเท่านั้นเอง
ดังนั้นผมขอความกรุณาช่วยเหลือผมด้วยนะครับ แต่ผมจะพยายามเขียนโค๊ดด้วยนะครับ...ขอขอบคุณมาก ๆ ครับ



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2009-03-13 21:09:14 By : pukmtec View : 2880 Reply : 11
 

 

No. 1



โพสกระทู้ ( 119 )
บทความ ( 0 )



สถานะออฟไลน์


ช่วยอธิบายหน่อยได้ไหมครับว่า ค้นหาอะไร เนื่องจากปกติแล้วการเลือก list menu

ไม่น่าเรียกว่า search มันเหมือนการเรียกธรรมดาเฉยๆ






Date : 2009-03-13 21:36:39 By : เด็กชาย กอ ไก่
 


 

No. 2



โพสกระทู้ ( 11,835 )
บทความ ( 10 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


มันก็เหมือน textbox อะครับ ขึ้นอยู่กับ value ของ dropdown หาดูกระทู้เก่าๆ เกี่ยวกับการค้นหา เหมือนกันครับ ไม่ยาก
Date : 2009-03-13 22:06:58 By : plakrim
 

 

No. 3



โพสกระทู้ ( 230 )
บทความ ( 0 )



สถานะออฟไลน์


เรียน พี่ graph และพี่ PlaKriM

คือว่าผมกำลังเขียนโปรแกรม PHP เพื่อเก็บรายละเอียดครุภัณฑ์คอมพิวเตอร์ในสำนักงาน
(อันที่จริงจะมีรายละเอียดต่าง ๆ มากกว่านี้ แต่ผมได้สมมุติตัวอย่างโปรแกรมคล้ายๆ กันมาให้ เพื่อ
จะได้ไม่ยุ่งยากเกินไป)

(จากตาราง tb_cmp) จะเป็นตารางหลักในการเก็บรายละเอียดทั้งหมด แล้วจะมีหน้าจอฟอร์ม (จากรูปต่อมา)
โดยจะทำการค้นหารายละเอียดต่าง ๆ ด้วยกัน 4 แบบ คือ ค้นหาจากสถานที่ใช้งานเครื่องคอมฯ, รายชื่อผู้ใช้งานเครื่องคอมฯ,Serial No. ของเครื่องคอมฯ และประเภทของเครื่องคอมฯ (Computer, Notebook เป็นต้น) ตามลำดับจากหน้าจอฟอร์ม

โดยเงื่อนไขตามที่ผมคิดว่าหากทำช่อง ListMenu ของ Place, Type จากตาราง tb_cmp โดยการใช้ SELECT คงจะแสดงออกมาเป็น place_id และ type_id คงจะต้องทำการ Join Table ทั้งหมดเข้าด้วยกันหรือไม่ครับ...แล้วจะเขียนโค๊ดอย่างไรหรือครับ???

แล้วในรายการ ListMenu ในช่องต่าง ๆ มันต้องมีรายการบางอย่างซ้ำกัน เช่น Place, User name และ Type (แต่ช่อง Serial No. คงไม่มีข้อมูลซ้ำกัน) แล้วจะต้องเขียนโค๊ดให้ข้อมูลมัน Group อย่างไรครับ???

หากทำการค้นหาจากเงื่อนไขดังกล่าว 4 เงื่อนไข จะต้องแสดงออกมาเป็นหน้า ๆ ของฟอร์ม แบ่งหน้าไปเรื่อย ๆ จนหมดข้อมูลที่ค้นหาเจอนะครับ

ผมเองก็ทำอยู่หลายวันแล้ว ก็ไม่สามารถเขียนได้เลย มันสับสน งง ไปหมดแล้ว
จึงขอรบกวนช่วยแนะนำ หรือเขียนโคีดตัวอย่างพอให้เป็นแนวทางจะได้หรือไม่ครับ??? ขอขอบคุณอย่างสูงครับ...
Date : 2009-03-14 14:08:00 By : pukmtec
 


 

No. 4

Guest


จาก Database และ Table ต่าง ๆ ครับ


-- phpMyAdmin SQL Dump
-- version 2.10.2
-- http://www.phpmyadmin.net
--
-- โฮสต์: localhost
-- เวลาในการสร้าง: 14 มี.ค. 2009 น.
-- รุ่นของเซิร์ฟเวอร์: 5.0.22
-- รุ่นของ PHP: 5.1.4

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- ฐานข้อมูล: `db_computer`
--

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

--
-- โครงสร้างตาราง `tb_brand`
--

CREATE TABLE `tb_brand` (
`brand_id` int(11) NOT NULL auto_increment,
`brand_desc` varchar(255) character set utf8 collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`brand_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=13 ;

--
-- dump ตาราง `tb_brand`
--

INSERT INTO `tb_brand` VALUES (1, 'DELL Optiplex260');
INSERT INTO `tb_brand` VALUES (2, 'ACER Veriton T661');
INSERT INTO `tb_brand` VALUES (3, 'COMPAQ Presario SR5710f ');
INSERT INTO `tb_brand` VALUES (4, 'TOSHIBA Qa9857');
INSERT INTO `tb_brand` VALUES (5, 'ACER TravelMate3270');
INSERT INTO `tb_brand` VALUES (6, 'ACER TravelMate5220x');
INSERT INTO `tb_brand` VALUES (7, 'BENQ Joybook S57');
INSERT INTO `tb_brand` VALUES (8, 'ASUS V1Sn');
INSERT INTO `tb_brand` VALUES (9, 'COMPAQ Presario SR5710f ');
INSERT INTO `tb_brand` VALUES (10, 'COMPAQ Presario CQ60Z series');
INSERT INTO `tb_brand` VALUES (11, 'HP LaserJet5300dn');
INSERT INTO `tb_brand` VALUES (12, 'Fujisu 5520 ScanJet');

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

--
-- โครงสร้างตาราง `tb_cmp`
--

CREATE TABLE `tb_cmp` (
`cmp_id` int(11) NOT NULL auto_increment,
`username` varchar(255) character set utf8 collate utf8_unicode_ci NOT NULL,
`serial_no` varchar(255) character set utf8 collate utf8_unicode_ci NOT NULL,
`type_id` int(11) NOT NULL,
`place_id` int(11) NOT NULL,
`brand_id` int(11) NOT NULL,
PRIMARY KEY (`cmp_id`),
KEY `brand_id` (`brand_id`),
KEY `place_id` (`place_id`),
KEY `type_id` (`type_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=11 ;

--
-- dump ตาราง `tb_cmp`
--

INSERT INTO `tb_cmp` VALUES (1, 'Rungtip Krataitong', '123xxd98', 1, 1, 3);
INSERT INTO `tb_cmp` VALUES (2, 'Akerintr Anyamaneecharoen', '958defefd45', 3, 2, 12);
INSERT INTO `tb_cmp` VALUES (3, 'Anchalee Manonukul', 'er8s95r', 3, 6, 12);
INSERT INTO `tb_cmp` VALUES (4, 'Oraphin Chaikumpollert', 'Ssdec84r4', 2, 10, 9);
INSERT INTO `tb_cmp` VALUES (5, 'Siam Kaewkumsai', 'SSerd987DD', 2, 8, 5);
INSERT INTO `tb_cmp` VALUES (6, 'Anek Phuchamnong', '54erdfer', 1, 12, 1);
INSERT INTO `tb_cmp` VALUES (7, 'Rungtip Krataitong', '784efswersdf', 2, 1, 9);
INSERT INTO `tb_cmp` VALUES (8, 'Oraphin Chaikumpollert', '18787eerdfer', 1, 10, 1);
INSERT INTO `tb_cmp` VALUES (9, 'Anchalee Manonukul', 'OPPOkloper784547', 4, 6, 11);
INSERT INTO `tb_cmp` VALUES (10, 'Akrapol Soisungval', 'BBSSder784er', 3, 9, 12);

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

--
-- โครงสร้างตาราง `tb_place`
--

CREATE TABLE `tb_place` (
`place_id` int(11) NOT NULL auto_increment,
`place_desc` varchar(255) character set utf8 collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`place_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=16 ;

--
-- dump ตาราง `tb_place`
--

INSERT INTO `tb_place` VALUES (1, 'M-110 Automation and Mechatronic Lab');
INSERT INTO `tb_place` VALUES (2, 'M-106b Analytical and Testing');
INSERT INTO `tb_place` VALUES (3, 'M-108 Utilities Room');
INSERT INTO `tb_place` VALUES (4, 'M-130 Chemical storage');
INSERT INTO `tb_place` VALUES (5, 'M-134 SEM Sample Preparation room');
INSERT INTO `tb_place` VALUES (6, 'M-133 TEM Sample Preparation room2');
INSERT INTO `tb_place` VALUES (7, 'M-137 Electrical Properties Measurement Laboratory');
INSERT INTO `tb_place` VALUES (8, 'M-136 Dark room');
INSERT INTO `tb_place` VALUES (9, 'M-205b Organization Development');
INSERT INTO `tb_place` VALUES (10, 'M-207 Ceramics Fabrication Lab');
INSERT INTO `tb_place` VALUES (11, 'M-140 Research Staff Office');
INSERT INTO `tb_place` VALUES (12, 'M-139 Transmission Electron Microscopy X-RAY');
INSERT INTO `tb_place` VALUES (13, 'M-304 Office of Director');
INSERT INTO `tb_place` VALUES (14, 'M-225 Furnace room');
INSERT INTO `tb_place` VALUES (15, 'M-219 Optical Microscopy Image Analysis Lab');

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

--
-- โครงสร้างตาราง `tb_type`
--

CREATE TABLE `tb_type` (
`type_id` int(11) NOT NULL auto_increment,
`type_desc` varchar(255) character set utf8 collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`type_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=5 ;

--
-- dump ตาราง `tb_type`
--

INSERT INTO `tb_type` VALUES (1, 'COMPUTER');
INSERT INTO `tb_type` VALUES (2, 'NOTEBOOK');
INSERT INTO `tb_type` VALUES (3, 'SCANNER');
INSERT INTO `tb_type` VALUES (4, 'PRINTER');

Date : 2009-03-14 15:22:08 By : pukmtec
 


 

No. 5



โพสกระทู้ ( 11,835 )
บทความ ( 10 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


Code
SELECT a.*, b.type_desc, c.brand_desc, d.place_desc
FROM tb_cmp AS a
Inner Join tb_type AS b ON b.type_id = a.type_id
Inner Join tb_brand AS c ON c.brand_id = a.brand_id
Inner Join tb_place AS d ON d.place_id = a.place_id
WHERE a.username = 'abc'


ตัวอย่าง search แค่ username แต่ส่วนอื่นๆ ก็เพิ่มเอา น่าจะพอช่วยได้นิดหนอ่ย
Date : 2009-03-14 20:51:10 By : plakrim
 


 

No. 6



โพสกระทู้ ( 230 )
บทความ ( 0 )



สถานะออฟไลน์


ขอขอบคุณพี่ PlaKriM อีกครั้งนะครับ
ผมจะพยายามทำดูก่อนนะครับ หากทำไม่ได้จริง ๆ จนสุดปัญญา (อันโง่เขลา) แล้วผมจะกลับมาถามอีกครั้งนะครับ
รบกวนด้วยจริง ๆ นะครับ ผมเองก็ไม่รู้ว่าจะไปปรึกษาที่ไหนได้ เว็บนี้มันเป็นที่พึ่งของผมเลยนะครับ...

ตกลงว่าจะต้องทำการ Join Table ทั้งหมดก่อนใช่หรือไม่ครับ แล้ว a c d คืออะไรเหรอครับ ใช่ชื่อตารางแต่ละตารางใช่หรือไม่??? รบกวนตอบนิดหนึ่งนะครับ...
Date : 2009-03-14 22:07:10 By : pukmtec
 


 

No. 7



โพสกระทู้ ( 11,835 )
บทความ ( 10 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


เหอะๆ ผมไม่รู้จะอธิบายเป็นทางการยังไง แต่เข้าใจว่า เปลี่ยนชื่อให้มันหน่อย ที่ทำแบบนี้เพราะเวลา join กันยาวๆ และไม่ใช้ select * มันจะยาวเหยียดมากมาย เลยเปลี่ยนการอ้างถึง ให้มันกระทัดรัด ยิ่งอธิบายยิ่งงงตัวเอง เง้อออ... ใครก็ได้ อธิบายเทนโผมมมมมที
Date : 2009-03-14 22:18:59 By : plakrim
 


 

No. 8



โพสกระทู้ ( 230 )
บทความ ( 0 )



สถานะออฟไลน์


เรียน พี่ครับ
จาก Database ข้างบนสุด และโค๊ดนี้ ผมได้ลองเขียนแล้วครับ แต่มันแปลกอยู่ที่ว่า หากค้นหา keyword เช่น รายการ Brand_id ที่ 1 มันจะแสดงออกมาคือ 1, 10, 11, 12... เหมือนกับว่าจะเอาตัวอักษรใด ๆ ที่มีออกมาด้วยนะครับ...ทำอยู่เป็นวันแล้วครับ รบกวนช่วยแก้ไขโค๊ดให้ผมด้วยนะครับ ขอขอบคุณมาก ๆ ครับ
--------------------------------------


<?php
$hostname = "localhost";
$username = "user";
$password = "user";
$connDB = mysql_connect($hostname, $username, $password) or die ("ไม่สามารถติดต่อ Server ได้");
mysql_query("SET NAMES utf8", $connDB); 
mysql_query("USE db_computer");

$keyword = $_REQUEST['keyword'];
$sql= "SELECT * FROM tb_cmp
									  INNER JOIN tb_type ON tb_type.type_id = tb_cmp.type_id
									  INNER JOIN tb_place ON tb_place.place_id = tb_cmp.place_id
									  INNER JOIN tb_brand ON tb_brand.brand_id = tb_cmp.brand_id
                                      WHERE tb_brand.brand_id LIKE '%$keyword%' ORDER BY tb_cmp.cmp_id ASC";    
											                                                        
  $result = mysql_query($sql) or die ("$sql_Error");
 ?>

<form id="FrmTestSearch" name="FrmTestSearch" method="post" action="testSearch.php">
<table width="99%" border="0" align="center" cellpadding="0" cellspacing="2" bordercolor="#D4D0C8">
  <tr  valign="middle" bgcolor="#94B8ED">
    <td height="21" colspan="8" valign="middle" bgcolor="#F5F5F5"></td>
  </tr>
  <tr  valign="middle" bgcolor="#94B8ED">
    <td height="21" colspan="8" valign="middle" bgcolor="#F5F5F5">
<?php
 $sqlBrand= "SELECT  * FROM tb_brand ORDER BY tb_brand.brand_id ASC ";
											                                                        
  $resultBrand = mysql_query($sqlBrand) or die ("$sql_Error");
?>
User name :  <select name="keyword">
								  <option></option>
								 <?php
								  while($rowBrand=mysql_fetch_array( $resultBrand)){
								  ?>
								  <option value="<?=($rowBrand["brand_id"])?>"><?=($rowBrand["brand_id"])?>&nbsp;<?=($rowBrand["brand_desc"])?></option>
							   <?php } ?>
								 </select>
	               &nbsp;&nbsp;
	               <input name="Submit" type="Submit"id="Search" value="Search" /> </td>
  </tr>
  <tr>
    <td colspan="8">
	<table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="31%" height="20">
        <td width="69%"><a href="testSearch.php">ดูรายละเอียดทั้งหมด</a></td>
      </tr>
    </table></td>
  </tr>
  <tr>
    <td width="64" height="17" align="center" bgcolor="#CDCDCD">cmp_id</td>
	<td width="187" bgcolor="#CDCDCD" align="center">Username</td>
	<td width="193" bgcolor="#CDCDCD" align="center">Brand</td>
	<td width="131" bgcolor="#CDCDCD" align="center">Type</td>
	<td width="167" bgcolor="#CDCDCD" align="center">Serial No. </td>
	<td width="482" bgcolor="#CDCDCD" align="center">Place</td>
  </tr>
<?php
    while($row=mysql_fetch_array( $result)){
 ?>
   <tr>
		<td height="14" align="center"><?=$row['cmp_id'] ?></td>
		<td><?=$row['username'] ?></td>
		<td><?=$row['brand_id'] ?><?=$row['brand_desc'] ?></td>
		<td align="center"><?=$row['type_id'] ?><?=$row['type_desc'] ?></td>
		<td><?=$row['serial_no'] ?></td>
		<td><?=$row['place_desc'] ?></td>
	</tr> 
<?php } ?>
  <tr>
    <td height="18" colspan="8" bgcolor="#CDCDCD">
<?php
mysql_close($connDb);
?></td>
  </tr>
</table>
</form>
</body>
</html>

Date : 2009-03-17 16:44:17 By : pukmtec
 


 

No. 9



โพสกระทู้ ( 11,835 )
บทความ ( 10 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


WHERE tb_brand.brand_id = '$keyword' ORDER BY tb_cmp.cmp_id ASC";

Date : 2009-03-17 21:53:20 By : plakrim
 


 

No. 10



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

สร้าง Dependent ListMenu เลือกข้อมูลหลักและข้อมูลย่อยเปลี่ยนตามหัวข้อหลัก
Date : 2009-03-17 22:30:55 By : webmaster
 


 

No. 11

Guest


พี่ PlaKriM สุดยอด เก่งมว๊ากก
โค้ดพี่ช่วยหนูได้ทุกหัวข้อเลย
ขอบคุณมากนะค่ะ


Date : 2012-02-06 22:23:51 By : ผึ้ง
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ต้องการค้นหาข้อมูลด้วย ListMenu มี 4 ListMenu ด้วยจากหลาย ๆ ตารางที่สัมพันธ์กัน ได้อย่างไรครับ??
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่