ตารางรูปแยกออกมาจาก จากตาราง detail แต่พอดึงออกมาแล้ว รูปไม่ตรงกับรายการ เรา sql ยังไงดีคะ
ตารางรูป เก็บ index ของ ตาราง detail ไว้หรือเปล่า
Date :
2015-03-23 13:48:39
By :
progamer2000
เก็บคะ รบกวนแนะด้วยคะ
ตาราง Detail
ตารางรูป
Date :
2015-03-23 14:29:05
By :
nottpoo
คำสั่ง 1 เลือกรายการ detail เพื่อแสดง ที่ <div class="box-1"> ใช่ไหมครับ
Code (SQL)
$sql="SELECT * FROM ingredient_page1 ORDER By id ASC ";
คำสั่ง 2 เลือก รูปภาพ เพื่อแสดงที่ <div class="box-2"> ใช่ไหมครับ
Code (SQL)
$sql="SELECT * FROM ingredient_page1_img";
ผมว่าคำสั่งที่ 2 มันควรจะอยู่ในลูปของ คำสั่งที่ 1 หรือเปล่าครับ เพื่อจะได้นำไอดีมาอ้างอิงถึงกัน
เพราะตามโค้ดเหมือนเขียนแยกกันคนละลูป ไม่เกี่ยวเนื่องกันเลย
Date :
2015-03-23 15:28:44
By :
WiTT
Code (PHP)
<div id="frame">
<div class="box-1">
<div class="addrecord">
<ul>
<li>Active Ingredient - Page 1 | Raw Materaial | Active</li>
</ul>
<?
$sql="SELECT * FROM ingredient_page1 ORDER By id ASC ";
$query = mysql_query($sql) or die ("Error Query = ".$sql."");
while($result=mysql_fetch_assoc($query))
{
?>
<ul>
<li><div>รหัสสินค้า (Items Code)</div> : <?=$result['item_code'];?></li>
<li><div>ชื่อสินค้า (Name)</div>: <?=$result['name'];?></li>
<li><div>ชื่อ INCI (Inci Name)</div>: <?=$result['inic_name'];?></li>
<li><div>ลักษณะ (Appearance)</div> : <?=$result['appearance'];?></li>
<li><div>ผลประโยชน์ (Advantage)</div> : <?=$result['benefit'];?></li>
<li><div>เปอร์เซ็นต์ (%) ที่ใช้</div> : <?=$result['percent'];?></li>
<li><div>Supplier</div> : <?=$result['supplier'];?></li>
<li><div>Source (Manufacturing)</div> : <?=$result['source_m'];?></li>
<li><div>Source Type</div> : <?=$result['source_type'];?></li>
<li><div>Resource</div> : <?=$result['resouce'];?></li>
<li><div>URL</div> : <?=$result['url'];?></li>
<li><div> </div>
<a href="<?=$PHP_SELF?>?action=edit_update&id_ac=<?=$result['id'];?> ">Edit</a> |
<a href="<?=$_SERVER['PHP_SELF']?>?action=delete&id_ac=<?=$result['id'];?>"onclick="return confirm('Are you sure you want to delete?')">Delete</a></li>
</ul>
<div class="line"></div>
</div><!--addrecord -->
<div class="box-2">
<?
//$sql="SELECT * FROM ingredient_page1_img WHERE ac_id=$_GET[id_show]";
$sql="SELECT * FROM ingredient_page1_img WHERE ac_id=".$result['id']."";
$query = mysql_query($sql) or die ("SQL Query = ".$sql."");
//echo $sql;
?>
<?
while($result=mysql_fetch_assoc($query))
{
?>
<ul>
<li><img src="uploads/ingredient_page1/<?=$result['images'];?>" width="236" height="166" border="0"><br /></li>
<li><?=$result["galleryName"];?></li>
</ul>
<?
}//while 2
?>
<?
}//while 1
?>
</div><!--box-2 -->
</div><!--box-1 -->
</div> <!--frame --> <br /><br />
<br class="clear" />
Date :
2015-03-23 15:33:49
By :
WiTT
เคยลองแล้วค่ะแบบนี้ ไม่ได้ แบบที่เอา While ซ้อน While
Date :
2015-03-23 16:12:22
By :
nottpoo
code ของ Nottpoo
ผิดบรรทัดที่50 กับ 56 ใช้ไม่ตรงกันครับ
บรรทัด 50
Code (PHP)
while($recs=mysql_fetch_assoc($querys)){
ใช้ตัวแปร $recs
แต่บรรทัดที่ 56
Code (PHP)
$sql="SELECT * FROM ingredient_page1_img WHERE ac_id=".$result['id']."";
ใช้ $result['id'] ซะงั้น
Date :
2015-03-23 17:24:32
By :
progamer2000
ขอเย็นๆ นะคะ แล้วจะกลับมารายงานผล
Date :
2015-03-23 17:33:05
By :
nottpoo
ไหนๆ เขียนแล้ว ลองฝึกใช้พวก oop เลยคับ ชีวิต จะดี๊ดี
Date :
2015-03-23 17:36:41
By :
progamer2000
โค้ดของ คนธรรมดา ไม่พิเศษ คำตอบที่ 8 รันออกมาแล้วมันออกมารายการเดียวคะ สมุติมีอยู่ 5 รายการ มันออกมารายการเดียว
ซึ่งมันไม่ตรง Concept ที่อยากได้ เช่นมีอยู่ 5 รายการ ก็รันต่อๆ กันมาเลยค่ะ ขอแค่ให้รูปมันตรงกันกับรายการก็พอค่ะ และรูปก็ไม่ออกค่ะ
ส่วนคำตอบที่ 9 ที่บอกว่าใช้ตัวแปรผิด เราใช้ไม่ผิดแน่ๆ ค่ะ อันนั้นน่าจะเป็นโค้ดเก่าคะ ซึ่งเราปรับเปลี่ยนหลายแบบมาก ลองทุกแบบ
ปรากฏว่า มันก็ยังไม่ได้
Date :
2015-03-24 09:10:35
By :
nottpoo
ตาราง ingredient_page1
เอาข้อมูลทดลอง มาวางได้ไหมครับ
Date :
2015-03-24 10:25:00
By :
WiTT
เป็นผมผมจะ <TABLE> แต่ไม่กล้าแนะนำ (เดี๋ยวมีคนตามด่า )
Date :
2015-03-24 12:07:35
By :
meannerss
@ meannerss อย่าเลยคะ Table เค้าเลิกใช้กันแล้วคะ
@ Guest 13 ข้อมูลทดลองคืออะไรคะ ถ้าจะดูรูปก็ตามที่อัพให้ดูเลยคะ ตอนนี้รูปมันไม่ตรงกับรายการ TT
Date :
2015-03-24 12:16:40
By :
nottpoo
รูปเห็นแล้วครับ
แต่จะลองรันโค้ดคุณผมก็ขี้เกียจสร้างตารางเอง
หากไม่สะดวกก็ไม่เป็นไรครับ
แต่เท่าที่ดู SQL มีแค่
Code (SQL)
SELECT * FROM ingredient_page1 ORDER By id ASC
ดูแล้วยังไงข้อมูลก็ต้องออกมาหมดตามที่คุณ arm8957 คห.8 เขียนหน่ะครับ
Date :
2015-03-24 12:33:06
By :
WITT
ทดลองเอาโค้ดของคุณ arm8957 คห.8 มาเทสแล้วคะ
มันออกมาแค่รายการที่ 1 รายการเดียวคะ เป็นไปไม่ได้คะ ที่ detail จะมีรายการเดียว
เช่น ยา มันก้ต้องมีตัวยา ที่1
ยาที่ 2 ใช่ไหมคะ
หรือถ้าเราจะเขียน join ผลมันจะออกมาเป็นยังไงนะ
ประวัติการแก้ไข 2015-03-24 12:57:21
Date :
2015-03-24 12:56:20
By :
nottpoo
ลองอีกครั้งสิครับ คือถ้ายังไม่ตรงนี่ผมว่าคุณออกแบบฐานข้อมูลหรืออ้างอิงข้อมูลผิดแล้วละครับ
Code (PHP)
<?PHP
#หารายละเอียดข้อมูลใน ingredient_page1 ก่อน
$getIngDetail = mysql_query(" SELECT * FROM ingredient_page1 ORDER BY id ASC ");
while($resultIngDetail = mysql_fetch_assoc($getIngDetail)){
echo 'รายละเอียดของ '.$resultIngDetail['item_code'].' คือ :';
echo "<pre>";
print_r($resultIngDetail);
echo "</pre>";
echo "<hr/>";
#หารูปใน ingredient_page1_img ต่อ
$getImg = mysql_query(" SELECT * FROM ingredient_page1_img WHERE ac_id = '".$resultIngDetail['id']."' ORDER BY id ASC");
while($resultImg = mysql_fetch_assos($getImg)){
echo 'รูปของ ID : '.$resultIngDetail['id'].' คือ ';
echo "<pre>";
print_r($resultImg);
echo "</pre>";
echo "<hr/>จบ<hr/>";
} #จบ while 2
} #จบ while 1
?>
ประวัติการแก้ไข 2015-03-24 14:18:21
Date :
2015-03-24 14:17:56
By :
arm8957
โค้ดล่าสุดค่ะ ลองปรับเปลี่ยนเป็นแบบ sql join 1 รายการมีได้หลายรูป แต่พอ join ออกมาแล้วรายการมันเบิ้ลตาม img_id ของตาราง
ingredient_page1_img ผลรันออกมาแบบ 1 รายการ 1 รูป ทำให้รายการมันเบิ้ลคะ เฮ้อ เหนื่อยซะจริงๆ
Code (PHP)
<div id="frame">
<div class="box-1">
<div class="addrecord">
<ul>
<li>Active Ingredient - Page 1 | Raw Materaial | Active</li>
</ul>
<?
$sql="SELECT ingredient_page1.*,ingredient_page1_img.* FROM ingredient_page1,ingredient_page1_img WHERE ingredient_page1.ac_id = ingredient_page1_img.ac_id";
$query = mysql_query($sql) or die ("Error Query = ".$sql."");
//echo $sql;
//$no=1;
while($result=mysql_fetch_assoc($query))
{
?>
<ul>
<li><div><?= $no?>.รหัสสินค้า (Items Code)</div> : <?=$result['item_code'];?></li>
<li><div>ชื่อสินค้า (Name)</div>: <?=$result['name'];?></li>
<li><div>ชื่อ INCI (Inci Name)</div>: <?=$result['inic_name'];?></li>
<li><div>ลักษณะ (Appearance)</div> : <?=$result['appearance'];?></li>
<li><div>ผลประโยชน์ (Advantage)</div> : <?=$result['benefit'];?></li>
<li><div>เปอร์เซ็นต์ (%) ที่ใช้</div> : <?=$result['percent'];?></li>
<li><div>Supplier</div> : <?=$result['supplier'];?></li>
<li><div>Source (Manufacturing)</div> : <?=$result['source_m'];?></li>
<li><div>Source Type</div> : <?=$result['source_type'];?></li>
<li><div>Resource</div> : <?=$result['resouce'];?></li>
<li><div>URL</div> : <?=$result['url'];?></li>
<li><div> </div>
<a href="<?=$PHP_SELF?>?action=edit_update&id_ac=<?=$result['ac_id'];?> ">Edit</a> |
<a href="<?=$_SERVER['PHP_SELF']?>?action=delete&id_ac=<?=$result['ac_id'];?>"onclick="return confirm('Are you sure you want to delete?')">Delete</a></li>
</ul>
<div class="box-2">
<ul>
<li><img src="uploads/ingredient_page1/<?=$result['images'];?>" width="236" height="166" border="0"></li>
<li><?=$result["galleryName"];?></li>
</ul>
</div>
<ul>
<li>
<a href="ingredient_page_one.php">*รายละเอียด</a>
<a href="ingredient_page_two.php">*ทดลองกับคน</a>
<a href="ingredient_page_three.php">*ทดลองกับเครื่องมือ</a>
<a href="ingredient_page_four.php">*สรุปผลการทดลอง</a>
<a href="ingredient_page_five.php">*นวัตกรรมใหม่ๆ</a>
</li>
</ul>
<div class="line"></div>
<?
//$no++;
}//while
?>
</div><!--addrecord -->
</div> <!--box-1 -->
</div> <!--frame -->
<br class="clear" />
Date :
2015-03-24 14:19:28
By :
nottpoo
อันแรกเลยครับ คือ คุณเอารูปตาราง ingredient_page1 มาให้ดูไม่ตรงกับที่คุณใช้อยู่ปัจจุบัน อันเก่าตั้งชื่อฟิลด์ว่า id อันที่เอามาให้ดูล่าสุดเปลี่ยนชื่อเป็น ac_id
เอาว่าคุณช่วยรันโค้ดนี่ให้ผมดูหน่อยครับ แล้วแคปหน้าจอที่ได้มาให้ดูหน่อยว่ามันตรงไม๊ คือเคสคุณมันไม่ได้ยากอะไรเลยถ้าอ้างอิงข้อมูลที่ตรงกัน
Code (PHP)
<?PHP
#หารายละเอียดข้อมูลใน ingredient_page1 ก่อน
$getIngDetail = mysql_query(" SELECT * FROM ingredient_page1 ORDER BY ac_id ASC ");
while($resultIngDetail = mysql_fetch_assoc($getIngDetail)){
echo 'รายละเอียดของ '.$resultIngDetail['item_code'].' คือ :';
echo "<pre>";
print_r($resultIngDetail);
echo "</pre>";
echo "<hr/>";
#หารูปใน ingredient_page1_img ต่อ
$getImg = mysql_query(" SELECT * FROM ingredient_page1_img WHERE ac_id = '".$resultIngDetail['ac_id']."' ORDER BY id ASC");
while($resultImg = mysql_fetch_assoc($getImg)){
echo 'รูปของ ID : '.$resultIngDetail['ac_id'].' คือ ';
echo "<pre>";
print_r($resultImg);
echo "</pre>";
echo "<hr/>จบ<hr/>";
} #จบ while 2
} #จบ while 1
?>
ประวัติการแก้ไข 2015-03-24 14:28:56
Date :
2015-03-24 14:26:43
By :
arm8957
ผลรันคะ
Date :
2015-03-24 14:48:00
By :
nottpoo
ตาราง ingredient_page1
Date :
2015-03-24 14:51:24
By :
nottpoo
Code (PHP)
$sql=<<<SQL
SELECT *
FROM ingredient_page1 ip
left join (
select ac_id, GROUP_CONCAT(images SEPARATOR ',') img
from ingredient_page1_img
group by ac_id
) tmp on tmp.ac_id=ip.id
ORDER By id ASC
SQL;
$query=$db->query( $sql ) or die ( ..... );
while( $result = $query->fetch_assoc()){
$img = explode(',', $result['img']);
print_r(array( $result, $img));
}
ประวัติการแก้ไข 2015-03-24 15:06:45
Date :
2015-03-24 15:04:54
By :
Chaidhanan
Load balance : Server 03