ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingช่วยหน่อยค่ะ อยากให้ข้อมูลขึ้นแบบไม่ซ้ำ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ช่วยหน่อยค่ะ อยากให้ข้อมูลขึ้นแบบไม่ซ้ำ  (อ่าน 1398 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
royyim
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 7



ดูรายละเอียด
« เมื่อ: 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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</p>
« แก้ไขครั้งสุดท้าย: 05 มิถุนายน 2017, 19:58:32 โดย royyim » บันทึกการเข้า
item
ก๊วนเสียว
*

พลังน้ำใจ: 23
ออฟไลน์ ออฟไลน์

กระทู้: 233



ดูรายละเอียด
« ตอบ #1 เมื่อ: 05 มิถุนายน 2017, 02:07:29 »

โค๊ด:
<?php while($objResult mysql_fetch_array($objQuery)) { ?>
<table>
  <tr>
    <th colspan="6">รูปภาพ</th>
  </tr>
  <tr>
    <td>ตำแหน่ง</td>
    <td colspan="5">1</td>
  </tr>
  <tr>
    <td>อวัยวะ</td>
    <td colspan="5">หลอดลม</td>
  </tr>
  <tr>
    <td colspan="2">โอกาสที่จะเกิดโรค</td>
    <td colspan="4"><ul><li>โรคกรดไหลย้อย</li><li>โรคหลอดลมอักเสบ</li><li>โรคหลอดลมอักเสบเสียบพลัน</li></ul></td>
  </tr>
</table>
<?php ?>

ประมาณนี้หรือเปล่าครับ น่าจะลองเขียนโค้ดให้สวยๆจะได้ดูง่ายครับ
บันทึกการเข้า

.
navico
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 108
ออฟไลน์ ออฟไลน์

กระทู้: 2,315



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 05 มิถุนายน 2017, 04:08:47 »

เอาข้อมูลมา join กัน มันเลยออกมา 5 row นะครับ
เป็นผม ปกติจะแยก 2 คิวรี่นะครับ คิวรี่แรกเอาข้อมูลหลัก คิวรี่2 เอา ราละเอียด (โอกาสที่จะเกิดโรค)
ยังไงเอา er มาประกอบด้วยจะดีกว่านะครับ จะได้เห็นความสัมพันธ์ของข้อมูล  จะคิวรี่ได้ถูก
บันทึกการเข้า
buakaew
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 41
ออฟไลน์ ออฟไลน์

กระทู้: 1,365



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 05 มิถุนายน 2017, 14:25:07 »

ช่วยดันๆๆๆ  Cry
บันทึกการเข้า

Affiliate ไทยจ่ายจริงกินหลายชั้นลึกหลากหลายผลิตภัณฑ์Affiliate ไทย
รีวิว คูปองฟรี Hosting ไทยและเทศรีวิว Hosting
ดูดวงออนไลน์ฟรีดูดวง
พระเครื่องออนไลน์พระเครื่อง

royyim
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 7



ดูรายละเอียด
« ตอบ #4 เมื่อ: 05 มิถุนายน 2017, 19:48:02 »

เอาข้อมูลมา join กัน มันเลยออกมา 5 row นะครับ
เป็นผม ปกติจะแยก 2 คิวรี่นะครับ คิวรี่แรกเอาข้อมูลหลัก คิวรี่2 เอา ราละเอียด (โอกาสที่จะเกิดโรค)
ยังไงเอา er มาประกอบด้วยจะดีกว่านะครับ จะได้เห็นความสัมพันธ์ของข้อมูล  จะคิวรี่ได้ถูก

หนูเขียนโค้ดไม่ค่อยเป็นน่ะค่ะ ส่วนมากก็ลองมั่วๆ แล้วก็ดูจากในอินเตอร์เน็ตน่ะค่ะ Smiley
แยกคิวรี่ยังไงค่ะที่พี่บอก
หนูจะให้รับค่าจาก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
« แก้ไขครั้งสุดท้าย: 05 มิถุนายน 2017, 20:08:27 โดย royyim » บันทึกการเข้า
royyim
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 7



ดูรายละเอียด
« ตอบ #5 เมื่อ: 05 มิถุนายน 2017, 20:05:25 »

ช่วยดันๆๆๆ  Cry

ขอบคุณค่ะ Smiley
« แก้ไขครั้งสุดท้าย: 05 มิถุนายน 2017, 20:07:43 โดย royyim » บันทึกการเข้า
royyim
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 7



ดูรายละเอียด
« ตอบ #6 เมื่อ: 05 มิถุนายน 2017, 20:07:11 »

โค๊ด:
<?php while($objResult mysql_fetch_array($objQuery)) { ?>
<table>
  <tr>
    <th colspan="6">รูปภาพ</th>
  </tr>
  <tr>
    <td>ตำแหน่ง</td>
    <td colspan="5">1</td>
  </tr>
  <tr>
    <td>อวัยวะ</td>
    <td colspan="5">หลอดลม</td>
  </tr>
  <tr>
    <td colspan="2">โอกาสที่จะเกิดโรค</td>
    <td colspan="4"><ul><li>โรคกรดไหลย้อย</li><li>โรคหลอดลมอักเสบ</li><li>โรคหลอดลมอักเสบเสียบพลัน</li></ul></td>
  </tr>
</table>
<?php ?>

ประมาณนี้หรือเปล่าครับ น่าจะลองเขียนโค้ดให้สวยๆจะได้ดูง่ายครับ

ขอบคุณค่ะ แต่ว่ามันต้องเชื่อมกับฐานข้อมูล หนูอยากให้หน้าค้นหาแสดงผลแบบนั้นน่ะค่ะ แค่ว่ามันขึ้นซ้ำ
บันทึกการเข้า
oob2528
ก๊วนเสียว
*

พลังน้ำใจ: 20
ออฟไลน์ ออฟไลน์

กระทู้: 364



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 05 มิถุนายน 2017, 20:34:40 »

ลองปรับโดย ใช้ผ่านบราวเซอร์ดูหรือยังครับ
บันทึกการเข้า

royyim
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 7



ดูรายละเอียด
« ตอบ #8 เมื่อ: 05 มิถุนายน 2017, 21:09:01 »

ลองปรับโดย ใช้ผ่านบราวเซอร์ดูหรือยังครับ
เปลี่ยนไปใช้อย่างอื่นก็เหมือนเดิมค่ะ
บันทึกการเข้า
navico
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 108
ออฟไลน์ ออฟไลน์

กระทู้: 2,315



ดูรายละเอียด เว็บไซต์
« ตอบ #9 เมื่อ: 05 มิถุนายน 2017, 22:36:44 »

ดูจากคิวรี่คือ ต้องการค้นหา 1 ครั้ง จากอวัยวะหลายส่วนใช่ไหมครับ ถ้าไม่ใช่ คิวรี่น้องผิดนะครับ


ถ้ายังไม่ได้ทักข้อความมานะครับ
« แก้ไขครั้งสุดท้าย: 05 มิถุนายน 2017, 22:38:09 โดย navico » บันทึกการเข้า
royyim
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 7



ดูรายละเอียด
« ตอบ #10 เมื่อ: 05 มิถุนายน 2017, 22:51:29 »

ดูจากคิวรี่คือ ต้องการค้นหา 1 ครั้ง จากอวัยวะหลายส่วนใช่ไหมครับ ถ้าไม่ใช่ คิวรี่น้องผิดนะครับ


ถ้ายังไม่ได้ทักข้อความมานะครับ

ใช่ค่ะ ค้นหา 1 ครั้ง แต่สามารถหาอวัยวะได้หลายตำแหน่งค่ะ

หนูไม่รู้ว่าจะแก้ตรงไหน ให้มันแสดงอย่างที่หนูต้องการได้อ่ะค่ะ  Lips Sealed
บันทึกการเข้า
royyim
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 7



ดูรายละเอียด
« ตอบ #11 เมื่อ: 06 มิถุนายน 2017, 00:08:33 »

 Cry Cry Cry
บันทึกการเข้า
Sompon_lipoo
คนรักเสียว
*

พลังน้ำใจ: 2
ออฟไลน์ ออฟไลน์

กระทู้: 185



ดูรายละเอียด
« ตอบ #12 เมื่อ: 06 มิถุนายน 2017, 09:04:33 »

อยากช่วยนะ แต่ไม่เป็น 555555555555
บันทึกการเข้า

อยากสร้างบ้านแต่หาผู้รับเหมาไม่ได้ ======>คลิกที่นี่
ออกแบบบ้านง่ายๆตามสไตล์คุณโดยสถาปนิกมืออาชีพ======>คลิกที่นี่
รับสร้างบ้านในแบบที่คุณต้องการ======>คลิกที่นี่
อ่านบล๊อกเกี่ยวกับเรื่องบ้าน,ที่ดิน,อสังหาได้ที่======>คลิกที่นี่
รับสร้างบ้าน
chor_th
สมุนแก๊งเสียว
*

พลังน้ำใจ: 56
ออฟไลน์ ออฟไลน์

กระทู้: 554



ดูรายละเอียด เว็บไซต์
« ตอบ #13 เมื่อ: 06 มิถุนายน 2017, 09:09:37 »

ใน sql ลองเปลี่ยนจาก left join เป็น inner join
และใช้คู่กับ group by ดูครับ
บันทึกการเข้า

infamous
ก๊วนเสียว
*

พลังน้ำใจ: 14
ออฟไลน์ ออฟไลน์

กระทู้: 295



ดูรายละเอียด
« ตอบ #14 เมื่อ: 06 มิถุนายน 2017, 10:59:56 »

ดูแนวทางน่าจะเป็นน้องๆนศ.ครับ

ผมลองทำให้ดูเป็นตัวอย่างแล้วนะครับ โดยโครงสร้างของ DB ผมจำลองให้ คล้าย กับของน้องมากที่สุด
ดูตัวอย่างโครงสร้างได้ที่ http://sqlfiddle.com/#!9/2859c6/4

sql command:

โค๊ด:
select og.id_organs AS ogid, og.*, odt.*
from tb_organs og
left join tb_detail odt on (odt.id_organs=og.id_organs)
where og.id_organs IN (1,2);

หมายเหตุ:

ในส่วนของ IN (id1,id2) นั้นจะเป็น id_organs ที่อยู่ในตาราง tb_organs นะครับ(รองรับแบบหลายอวัยวะ)
ส่วนเวลาค้นหา ก็ให้ user ใส่ id ของ อวัยวะ(ปอด,หัวใจ,ม้าม,ตับ) ได้เลย แล้วค่อยไป left join หาโรคของแต่ละอวัยวะอีกทีหนึ่ง(tb_detail)

Simple PHP code: (TESTED!)
โค๊ด:
<?php 

header
(&#39;Content-type: text/html;charset=utf8&#39;);

$link mysql_connect(&#39;localhost:3307&#39;, &#39;root&#39;, &#39;root&#39;);

if (!$link) {
   die(&
#39;Could not connect: &#39; . mysql_error());
}

mysql_select_db("dummy") or die(mysql_error());
mysql_query("SET NAMES &#39;utf8&#39;");

$query "select og.id_organs AS ogid, og.*, odt.* from tb_organs og left join tb_detail odt on (odt.id_organs=og.id_organs) where og.id_organs IN (1,2)";

$results mysql_query($query);

$rows = array();

if (
$results) {
while($row mysql_fetch_array($resultsMYSQL_ASSOC)) {
if (! isset($rows[$row[&#39;ogid&#39;]])) {
$rows[$row[&#39;ogid&#39;]] = array(&#39;title&#39;=>$row[&#39;organs&#39;],&#39;children&#39;=>array());
}

$rows[$row[&#39;ogid&#39;]][&#39;children&#39;][] = $row;
}
}

?>


<table style="text-align:left;" cellpadding="5" cellspacing="0" border="1">
<?php foreach($rows as $row) : ?>
<tr>
<th colspan="3"><h2>อวัยวะ: <?php echo $row[&#39;title&#39;]; ?></h2></th>
</tr>
<tr>
<th>DISEASE</th>
<th>INTRO</th>
<th>CAUSE</th>
</tr>

<?php if($row[&#39;children&#39;]) : ?>
<?php foreach($row[&#39;children&#39;] as $key=>$child) : ?>
<tr>
<td><?php echo ($key+1?>. <?php echo $child[&#39;disease&#39;]; ?></td>
<td><?php echo $child[&#39;intro&#39;]; ?></td>
<td><?php echo $child[&#39;cause&#39;]; ?></td>
</tr>
<?php endforeach; ?>
<?php endif; ?>

<?php endforeach; ?>
</table>

หน้าตัวอย่างผลลัพธ์ จากตัวอย่าง php code ด้านบน



แค่นี้ผมคิดว่าคงเห็นภาพแล้วนะครับ แต่ถ้ายังงงอยู่ PM มาครับ ถ้าว่างจะช่วยดูให้

ปล. ของพวกนี้มั่ว(ถาม/ตอบ)ไม่ได้นะครับ ต้องเข้าใจคอนเซ็ปต์แต่ละอย่างด้วย
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์