หัวข้อ: ช่วยหน่อยค่ะ อยากให้ข้อมูลขึ้นแบบไม่ซ้ำ เริ่มหัวข้อโดย: royyim ที่ 04 มิถุนายน 2017, 21:41:44 อยากให้หน้าค้นหาข้อมูลขึ้นข้อมูลประมาณนี้น่ะค่ะ
https://www.img.in.th/image/flEx แต่ว่ามันขึ้นเป็นแบบนี้น่ะค่ะ https://www.img.in.th/image/flEM หนูจะให้รับค่าจากText Field หน้าแรกอ่ะค่ะ https://www.img.in.th/image/fyB5 อันนี้เป็น ตารางdetail ค่ะ https://www.img.in.th/image/fyBL ส่วนอันนี้เป็น ตารางorgans ค่ะ https://www.img.in.th/image/fyBt ส่วนอันนี้ที่เชื่อมความสัมพันธ์ค่ะ https://www.img.in.th/image/fyB1 ไม่รู้ว่าจะแก้ยังไง อันนี้เป็นโค้ดค่ะ <title>Expert shirt model</title> <?php require_once('Connections/myconnection.php'); ?> <?php $word1 = $_POST["word1"]; $word2 = $_POST["word2"]; $word3 = $_POST["word3"]; $word4 = $_POST["word4"]; $word5 = $_POST["word5"]; //คำสั่งติดต่อฐานข้อมูล $objConnect = mysql_connect("127.0.0.1","root","") or die("Error Connect to Database"); //ชื่อฐานข้อมูล $objDB = mysql_select_db("diseasedb1"); mysql_query("SET NAMES UTF8"); //ให้แสดงภาษาไทย $strSQL = "SELECT DISTINCT id_detail, tb_detail.id_organs, organs, disease, intro,cause, symptem,refer,pic_or FROM `tb_detail` LEFT JOIN tb_organs ON tb_detail.id_organs = tb_organs.id_organs where tb_detail.id_organs in ('$word1','$word2','$word3','$word4','$word5') "; $objQuery = mysql_query($strSQL) or die (mysql_error()." [".$strSQL."]"); ?> <table width="500" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td><img src="หน้าปก.gif" width="1019" height="274"></td> </tr> </table> <p> </p> <table width="285" height="195" border="0" align="center" cellpadding="0" cellspacing="0"> <?php //ทำการเช็คว่ามีการอ่านข้อมูลหรือไม่ ถ้ามีให้แสดงข้อมูล while($objResult = mysql_fetch_array($objQuery)) { ?> <tr> <td><div align="center"><img src="img/<?php echo $objResult["pic_or"];?>" width="200"></div></td> </tr> </table> <p> </p> <table width="500" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="119">หมายเลขสำรวจ :</td> <td width="381"><?php echo $objResult["id_organs"];?></div></td> </tr> </table> <p> </p> <table width="500" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="64">อวัยวะ :</td> <td width="436"><?php echo $objResult["organs"];?></div></td> </tr> </table> <p> </p> <table width="404" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="134">โอกาสที่จะเกิดโรค :</td> <td width="270"><?php echo $objResult["disease"];?></td> </tr> <?php } ?> </table> <p> </p> หัวข้อ: Re: ช่วยหน่อยค่ะ อยากให้ข้อมูลขึ้นแบบไม่ซ้ำ เริ่มหัวข้อโดย: item ที่ 05 มิถุนายน 2017, 02:07:29 โค๊ด: <?php while($objResult = mysql_fetch_array($objQuery)) { ?> ประมาณนี้หรือเปล่าครับ น่าจะลองเขียนโค้ดให้สวยๆจะได้ดูง่ายครับ หัวข้อ: Re: ช่วยหน่อยค่ะ อยากให้ข้อมูลขึ้นแบบไม่ซ้ำ เริ่มหัวข้อโดย: navico ที่ 05 มิถุนายน 2017, 04:08:47 เอาข้อมูลมา join กัน มันเลยออกมา 5 row นะครับ
เป็นผม ปกติจะแยก 2 คิวรี่นะครับ คิวรี่แรกเอาข้อมูลหลัก คิวรี่2 เอา ราละเอียด (โอกาสที่จะเกิดโรค) ยังไงเอา er มาประกอบด้วยจะดีกว่านะครับ จะได้เห็นความสัมพันธ์ของข้อมูล จะคิวรี่ได้ถูก หัวข้อ: Re: ช่วยหน่อยค่ะ อยากให้ข้อมูลขึ้นแบบไม่ซ้ำ เริ่มหัวข้อโดย: buakaew ที่ 05 มิถุนายน 2017, 14:25:07 ช่วยดันๆๆๆ :'(
หัวข้อ: Re: ช่วยหน่อยค่ะ อยากให้ข้อมูลขึ้นแบบไม่ซ้ำ เริ่มหัวข้อโดย: royyim ที่ 05 มิถุนายน 2017, 19:48:02 เอาข้อมูลมา join กัน มันเลยออกมา 5 row นะครับ เป็นผม ปกติจะแยก 2 คิวรี่นะครับ คิวรี่แรกเอาข้อมูลหลัก คิวรี่2 เอา ราละเอียด (โอกาสที่จะเกิดโรค) ยังไงเอา er มาประกอบด้วยจะดีกว่านะครับ จะได้เห็นความสัมพันธ์ของข้อมูล จะคิวรี่ได้ถูก หนูเขียนโค้ดไม่ค่อยเป็นน่ะค่ะ ส่วนมากก็ลองมั่วๆ แล้วก็ดูจากในอินเตอร์เน็ตน่ะค่ะ :) แยกคิวรี่ยังไงค่ะที่พี่บอก หนูจะให้รับค่าจากText Field หน้าแรกอ่ะค่ะ https://www.img.in.th/image/fyB5 อันนี้เป็น ตารางdetail ค่ะ https://www.img.in.th/image/fyBL ส่วนอันนี้เป็น ตารางorgans ค่ะ https://www.img.in.th/image/fyBt ส่วนอันนี้ที่เชื่อมความสัมพันธ์ค่ะ https://www.img.in.th/image/fyB1 หัวข้อ: Re: ช่วยหน่อยค่ะ อยากให้ข้อมูลขึ้นแบบไม่ซ้ำ เริ่มหัวข้อโดย: royyim ที่ 05 มิถุนายน 2017, 20:05:25 หัวข้อ: Re: ช่วยหน่อยค่ะ อยากให้ข้อมูลขึ้นแบบไม่ซ้ำ เริ่มหัวข้อโดย: royyim ที่ 05 มิถุนายน 2017, 20:07:11 โค๊ด: <?php while($objResult = mysql_fetch_array($objQuery)) { ?> ประมาณนี้หรือเปล่าครับ น่าจะลองเขียนโค้ดให้สวยๆจะได้ดูง่ายครับ ขอบคุณค่ะ แต่ว่ามันต้องเชื่อมกับฐานข้อมูล หนูอยากให้หน้าค้นหาแสดงผลแบบนั้นน่ะค่ะ แค่ว่ามันขึ้นซ้ำ หัวข้อ: Re: ช่วยหน่อยค่ะ อยากให้ข้อมูลขึ้นแบบไม่ซ้ำ เริ่มหัวข้อโดย: oob2528 ที่ 05 มิถุนายน 2017, 20:34:40 ลองปรับโดย ใช้ผ่านบราวเซอร์ดูหรือยังครับ
หัวข้อ: Re: ช่วยหน่อยค่ะ อยากให้ข้อมูลขึ้นแบบไม่ซ้ำ เริ่มหัวข้อโดย: royyim ที่ 05 มิถุนายน 2017, 21:09:01 ลองปรับโดย ใช้ผ่านบราวเซอร์ดูหรือยังครับ เปลี่ยนไปใช้อย่างอื่นก็เหมือนเดิมค่ะหัวข้อ: Re: ช่วยหน่อยค่ะ อยากให้ข้อมูลขึ้นแบบไม่ซ้ำ เริ่มหัวข้อโดย: navico ที่ 05 มิถุนายน 2017, 22:36:44 ดูจากคิวรี่คือ ต้องการค้นหา 1 ครั้ง จากอวัยวะหลายส่วนใช่ไหมครับ ถ้าไม่ใช่ คิวรี่น้องผิดนะครับ
ถ้ายังไม่ได้ทักข้อความมานะครับ หัวข้อ: Re: ช่วยหน่อยค่ะ อยากให้ข้อมูลขึ้นแบบไม่ซ้ำ เริ่มหัวข้อโดย: royyim ที่ 05 มิถุนายน 2017, 22:51:29 ดูจากคิวรี่คือ ต้องการค้นหา 1 ครั้ง จากอวัยวะหลายส่วนใช่ไหมครับ ถ้าไม่ใช่ คิวรี่น้องผิดนะครับ ถ้ายังไม่ได้ทักข้อความมานะครับ ใช่ค่ะ ค้นหา 1 ครั้ง แต่สามารถหาอวัยวะได้หลายตำแหน่งค่ะ หนูไม่รู้ว่าจะแก้ตรงไหน ให้มันแสดงอย่างที่หนูต้องการได้อ่ะค่ะ :-X หัวข้อ: Re: ช่วยหน่อยค่ะ อยากให้ข้อมูลขึ้นแบบไม่ซ้ำ เริ่มหัวข้อโดย: royyim ที่ 06 มิถุนายน 2017, 00:08:33 :'( :'( :'(
หัวข้อ: Re: ช่วยหน่อยค่ะ อยากให้ข้อมูลขึ้นแบบไม่ซ้ำ เริ่มหัวข้อโดย: Sompon_lipoo ที่ 06 มิถุนายน 2017, 09:04:33 อยากช่วยนะ แต่ไม่เป็น 555555555555
หัวข้อ: Re: ช่วยหน่อยค่ะ อยากให้ข้อมูลขึ้นแบบไม่ซ้ำ เริ่มหัวข้อโดย: chor_th ที่ 06 มิถุนายน 2017, 09:09:37 ใน sql ลองเปลี่ยนจาก left join เป็น inner join
และใช้คู่กับ group by ดูครับ หัวข้อ: Re: ช่วยหน่อยค่ะ อยากให้ข้อมูลขึ้นแบบไม่ซ้ำ เริ่มหัวข้อโดย: infamous ที่ 06 มิถุนายน 2017, 10:59:56 ดูแนวทางน่าจะเป็นน้องๆนศ.ครับ
ผมลองทำให้ดูเป็นตัวอย่างแล้วนะครับ โดยโครงสร้างของ DB ผมจำลองให้ คล้าย กับของน้องมากที่สุด ดูตัวอย่างโครงสร้างได้ที่ http://sqlfiddle.com/#!9/2859c6/4 sql command: โค๊ด: select og.id_organs AS ogid, og.*, odt.* หมายเหตุ: ในส่วนของ IN (id1,id2) นั้นจะเป็น id_organs ที่อยู่ในตาราง tb_organs นะครับ(รองรับแบบหลายอวัยวะ) ส่วนเวลาค้นหา ก็ให้ user ใส่ id ของ อวัยวะ(ปอด,หัวใจ,ม้าม,ตับ) ได้เลย แล้วค่อยไป left join หาโรคของแต่ละอวัยวะอีกทีหนึ่ง(tb_detail) Simple PHP code: (TESTED!) โค๊ด: <?php หน้าตัวอย่างผลลัพธ์ จากตัวอย่าง php code ด้านบน (https://www.img.in.th/images/26100b430c73b03b0464a2b4fa1e0d7a.png) แค่นี้ผมคิดว่าคงเห็นภาพแล้วนะครับ แต่ถ้ายังงงอยู่ PM มาครับ ถ้าว่างจะช่วยดูให้ ปล. ของพวกนี้มั่ว(ถาม/ตอบ)ไม่ได้นะครับ ต้องเข้าใจคอนเซ็ปต์แต่ละอย่างด้วย |