พี่ค่ะ รบกวนเรื่องวนลูปตารางค่ะ

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา พี่ค่ะ รบกวนเรื่องวนลูปตารางค่ะ

พี่ค่ะ รบกวนเรื่องวนลูปตารางค่ะ
คือ ในหน้า edit อ่ะค่ะ สมมุติว่า id ที่ 17 ค่ะ มีเรียนวิชาแค่ A กับ B เวลาเราโชว์ข้อมูลมันก็จะโชว์แค่ A กับ B ใช่ไหมค่ะ ที่นี้ พอต้องการอยากให้ข้อมูล ของ id ที่ 17 ขึ้นโชว์ข้อมูลที่ไม่ได้ลงเรียนด้วย เช่น วิชาเรียนมีทั้งหมด 10 วิชา แต่ id ที่ 17 ลงเรียนไปแค่สองวิชา คือ A กับ B แล้วต้องการจะลงเรียนเพิ่ม โดยการเข้ามาที่ในหน้าของ edit อยากให้ในหน้า edit โชว์ข้อมูล ทั้งหมด 10 วิชา แล้วในช่อง input ตรง value ต้องการให้เค้าแก้ไขข้อมูลได้ด้วยค่ะ  แล้วก็ให้โชว์ข้อมูลตามปกติ พอมีแนวทางแนะนำไหมค่ะ รบกวนด้วยค่ะ หาไม่เจอเลย T_T

<?

	$sql_cert = "select*from name_certificates left join crew_certificates on crew_certificates.cc_fk_nc_id = name_certificates.nc_id where nc_status ='1' and cc_fk_cp_id = '17'";
	$result_cert = mysql_query($sql_cert);
?>
<div class="table-responsive">
    	<table class="table table-striped">
         <h3><span>(B).Certificates And Qualifications</span></h3>
            <tr align="center">
            	<td><b>Description of Cert / Course</b></td>
                <td><b>Country of issue</b></td>
                <td><b>Number</b></td>
                <td><b>Date of Issue</b></td>
                <td><b>Date of Expiry</b></td>
                <td><b>Place of issue</b></td>
                <td><b>Issuing Authority / Body</b></td>
                <td><b>Upload file</b></td>
            </tr>
            <?
				while($row_cert = mysql_fetch_array($result_cert))
				{
			?>
            <tr>
            	<td>
					<?=$row_cert["nc_formal_name_en"]; ?>
                </td>
                <td>
                	<select class="form-control" name="" >
                            	<option value="Thailand">Thailand</option>
                            	<?
           							$result = mysql_query("SELECT * FROM addr_countries WHERE country_status = 1 ORDER BY country_name_en");
           							while($country = mysql_fetch_array($result)){
							
        						?>
                    			<option value="<? echo $country['country_name_en'] ?>"
                                	<? if($row['country_name_en']==$country['country_name_en']){?>selected<? }?> ><? echo $country['country_name_en'] ?>
                                </option>
                                <? } ?>
                    </select>
                </td>
                <td>
                	<input type="text" name="cc_number" value="<?=$row_cert["cc_number"] ?>" class="form-control"/>
                	<input type="text" name="cc_number" class="form-control"/>
                </td>
                <td><input type="date" name="" value="" class="form-control"/></td>
                <td><input type="date" name="" value="" class="form-control"/></td>
                <td><input type="text" name="" value="" class="form-control"/></td>
                <td><input type="text" name="" value="" class="form-control"/></td>
                <td><input type="file" name="" /></td>
            </tr>
            <?
				}
			?>
         </table>
         <center>
            	<input type="submit" name="sub1" class="btn btn-primary" value="Save"/>
                <input type="button" name="button" class="btn btn-danger" value="Cancel"/>
         </center>
    </div>
 


Chickenkook 14.207.54.xxx 22-12-2015 12:46:28

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
ต้องตัดเงื่อนไขว่าลงทะเบียนออกแล้วด้วยหรือเปล่า ดูตรง where 
nc_status ='1'
ถ้าตรงนี้คือสถานะการลงทะเบียน ก็ให้ตัดออก
ส่วนตรง textbox ให้โชว์ข้มอูลปกติ ก็ทำเหมือนรายการก่อนหน้าน่าจะได้

<input type="text" name="cc_number" value="<?=$row_cert["cc_xxxxxx"] ?>" class="form-control"/>  

 
ถ้ามีข้อมูลก็แสดง ถ้าไม่มีก็จะเป็น null หรือค่าว่าง


ninenik 180.183.9.xxx 22-12-2015
 ความคิดเห็นที่ 2
nc_status =1 คือ เป็นเหมือนใช้เป็นสถานนะค่ะว่า ว่าให้โชว์เฉพาะรายวิชาที่เปิดเท่านั้นค่ะ แต่่ตารางดาต้าเบสเป็นงี้ค่ะ เก็บ วันเดือนปี ที่ลงทะเบียนเรียน แยกไปตารางหนึ่ง อีกตารางก็จะเก็บเฉพาะรายชื่อวิชานั้นๆ ค่ะ ผลปรากฎว่า หนูลองหลายวิธีมากเลยค่ะ ถ้าเกิด select ข้อมูล โดยการมี where ที่ไอดี ของคนคนนั้น มันจะขึ้นแต่ตัวที่คนคนนั้น ลงทะเบียนเรียนวิชานั้นค่ะ อยากให้โชว์ทั้งหมด ทั้งที่มีลงกับไม่มีลง ต้องทำอย่างไรค่ะ ช่วยแนะนำหน่อยค่ะ คิดไม่ออกเลยค่ะ รบกวนด้วยนะค่ะ.


chickenkook 27.55.32.xxx 22-12-2015 18:22
 ความคิดเห็นที่ 3
ต้องดูตัวอย่างจากนี้เป็นแนวทาง ตามตัวอย่างที่สองกับสาม คือเน้นให้ตารางแรกแสดงทั้งหมด โดย
ในตารางที่สองจะมีข้อมูลหรือไม่ก็ได้
ถ้าเทียบกับที่ใช้งานอยู่ก็คือ ตารางแรกก็เป็นตารางวิชาทั้งหมด ตารางที่สองก็เป้นตารางของคนที่ลงทะเบียน

การใช้งาน SQL LEFT JOIN 


ninenik 180.183.9.xxx 23-12-2015
 ความคิดเห็นที่ 4
ยังไงมันก็จะติด ไอดีของคนนั้น ค่ะ ไม่สามารถทำได้เลย ลองแล้วค่ะ ตอนนี้ปัจจุบันก็ยังคงใช้ left join อยู่ค่ะ


chickenkook 14.207.48.xxx 23-12-2015 10:25
 ความคิดเห็นที่ 5
ใช้ AND แทน WHERE

ประมาณนี้

SELECT * 
FROM tbl_product a
LEFT JOIN tbl_order b ON a.pro_id = b.pro_id
AND b.cus_id =1
ORDER BY a.pro_id


>>>  อัพเดท >>> 23-12-2015
------------------------------------------
SELECT * FROM 
name_certificates a LEFT JOIN
crew_certificates b 
ON a.nc_id=b.cc_fk_nc_id 
AND a.nc_status=1
AND b.cc_fk_cp_id=17


ninenik 180.183.9.xxx 23-12-2015
 ความคิดเห็นที่ 6
เย้ ได้แล้วค่ะ ขอบคุณค่ะ 


chickenkook 14.207.48.xxx 23-12-2015 12:12
1






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ