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 > พี่ๆช่วยด้วยค่ะงมแก้ไม่ได้ซะที ถามเรื่องการประเมินค่ะ ในฐานการประเมิน(assess)มี



 

พี่ๆช่วยด้วยค่ะงมแก้ไม่ได้ซะที ถามเรื่องการประเมินค่ะ ในฐานการประเมิน(assess)มี

 



Topic : 032617



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



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



ถามเรื่องการประเมินค่ะ
ในฐานการประเมิน(assess)มี
ID_At รหัสการประเมิน
ID_Sc โรงเรียนที่ถูกประเมิน
ID_Tc อาจารย์ที่ถูกประเมิน
Point คะแนนรวม
Date_At วันที่ประเมิน
ID_Assess ผู้ประเมิน

ตัวอย่างข้อมูลassess
ID_At | ID_Sc | ID_Tc | Point | Date_At | ID_Assess |
At_1254667118 | NULL | Tc_1252748611 | 76 | 4/10/2552 21:38:38 | Sc_1252749187 |
At_1254667118 | NULL | Tc_1252748611 | 76 | 4/10/2553 22:38:38 | Sc_1252749187 |

โรงเรียนประเมินอาจารย์ได้คะแนน76คะแนนและประเมินวันที่ 4/10/2552ที่นี้เมื่อประเมินอาจารย์คนนี้ไปแล้วชื่ออาจารย์คนนี้ต้องหายไปจากlist boxที่เลือกชื่ออาจารย์ที่จะประเมิน
พอเปลี่ยนปีเป็นปี2553แล้วประเมินใหม่ชื่ออาจารย์ต้องกลับมาให้ประเมินใหม่แต่พอหนูประเมินของปี2553ไปแล้วชื่ออาจารย์ก็ไม่หายไปจากlistอะค่ะทั้งๆที่จิงๆมันต้องหายไปเพราะประเมินไปแล้ว
พอไปดูcodeตรงนี้

Code (PHP)
<? 
<!----------------------------------ส่วนนี้จะแสดงในlistเมื่ออาจารย์คนนั้นยังไม่เคยถูกประเมินเลย----------------------->
		   $list = mssql_query("select Promise.ID_Tc,First_Tc,Name_Tc,Sur_Tc from  Promise,Teacher where Promise.ID_Sc = '$_SESSION[ID_Sc]' and Promise.ID_Tc = Teacher.ID_Tc EXCEPT select Promise.ID_Tc,First_Tc,Name_Tc,Sur_Tc from  Promise,Assess,Teacher where Promise.ID_Sc = '$_SESSION[ID_Sc]' and Promise.ID_Tc = Teacher.ID_Tc and  Promise.ID_Tc = Assess.ID_Tc ");
		
		   ?>
		   <select name="teacher_lb" class="TextBox"  id="teacher_lb" style="width:250px;" >
		    <option value=''>---กรุณาเลือกอาจารย์ที่ท่านต้องการประเมิน----</option>
		   <?
		while($a = mssql_fetch_array($list)){
		?>		
    <option value='<? echo $a[0] ?>'><? echo $a[1]?>&nbsp;&nbsp;<? echo $a[2]?>&nbsp;&nbsp;<? echo $a[3]?></option>
                              <? } ?>
<!-------------------------------------ส่วนด้านล่างจะแสดงเมื่ออาจารย์คนนั้นเคยถูกประเมินไปแล้ว------------------------------------------------------------------------------------------->
		 <? 
		   $ans1 = mssql_query("select  Assess.ID_Tc,Date_At from Assess,Period where Assess.ID_Assess = '$_SESSION[ID_Sc]' and	Assess.ID_Period = Period.ID_Period 
");
$num2 = mssql_num_rows($ans1);
if($num2 != ""){
	while($ans2 = mssql_fetch_array($ans1)){
			$Y =  explode (" ",$ans2['Date_At']);
			
			//if($Y[2] == $start[2]) คือ ถ้าปีที่ประเมินไปแล้วเท่ากับปีนี้ไม่ต้องแสดงชื่อคนนั้น ($start[2]คือปีปัจจุบัน)
				
			if($Y[2] ==  $start[2]  ){ }else{ //แต่ถ้าไม่เท่ากับก็ให้แสดงรายชื่ออาจารย์คนนั้น
								$list2 = mssql_query("select  Promise.ID_Tc,First_Tc,Name_Tc,Sur_Tc from Promise,Teacher where Promise.ID_Sc = '$_SESSION[ID_Sc]' and Promise.ID_Tc = Teacher.ID_Tc and  Promise.ID_Tc = '$ans2[ID_Tc]' ");
					while($a2 = mssql_fetch_array($list2)){  ?>
						 <option value='<? echo $a2[0] ?>'><? echo $a2[1]?>&nbsp;&nbsp;<? echo $a2[2]?>&nbsp;&nbsp;<? echo $a2[3]?></option>		
			<? }
								
			 }  
	}
	
}
			?>
	
		     </select>	
<!------------------------------------------------------------------------------------------------------------------------------------------------------------>


หนูรู้ว่าที่ปี53ประเมินไปแล้วยางออกชื่ออาจารย์คนนั้นอยู่เพราะตอนวนwhile($ans2 = mssql_fetch_array($ans1)){ มันวนข้อมูลแรกก่อนคือปี52ทำให้แสดงชื่ออาจารย์คนนั้นออกมาเพราะข้อมูลนั้น$Y[2] != $start[2]กว่ามันจามาวนปี53ที่เราประเมินไปแล้วมันก็แสดงข้อมูลของปี52ออกมาแล้ว
หนูไม่รู้จาแก้ยังไงพี่ๆคนไหนช่วยได้ช่วยด้วยนะค่ะ



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2009-10-05 11:43:24 By : LuckyStar View : 1020 Reply : 21
 

 

No. 1



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

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

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

ดูโค้ดแค่นี้ไม่รู้จะช่วยไงครับ มองไม่ออกครับ

ไม่เข้าใจหลายๆจุดเลย แต่ก่อนอื่นขอดูว่าตารางแต่ละตารางใช้ทำอะไร เพราะเห็นเรียกหลายตาราง มึนเหมือนกันน่ะครับ






Date : 2009-10-05 14:40:02 By : xbeginner01
 


 

No. 2



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



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


อึมพอจะเข้าใจครับ แต่ดูจากข้อมูลแล้วหน้าจะเพิ่ม field ขึ้นมาอีกหนึ่ง field นะครับ ให้ชื่อว่า success ครับ
สาเหตุที่เพิ่มก็คือให้เราสามารถตรวจสอบการประเมินได้ครับ คือถ้าค่าใน field success = 1 ก็ให้ประเมินเรียบร้อย เวลาดึงข้อมูลก็ดึงเฉพาะ field success = 0 คือ ในส่วนอาจารย์ที่ยังไม่ได้ประเมินนะครับ แต่ให้เรากำหนดเงื่อนไขในการแสดงผล แค่นั้นก็หน้าจะเรียบร้อยครับ
Date : 2009-10-05 15:29:05 By : cshunter
 

 

No. 3



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



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

ไม่ได้อ่าพี่ถ้าอาจารย์ที่ประเมินไปแล้วเป็นsuccess=1แต่ถ้าปีต่อมาจะประเมินอาจารย์คนเดิมชื่อก้อไม่ขึ้นซิค่ะเพราะข้อมูลเดิมปีที่แล้วมานเป็นsuccess=1ไปแล้วอ่าพี่
Date : 2009-10-05 15:49:05 By : LuckyStar
 


 

No. 4



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



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

ตอบพี่ xbeginner01

$list = mssql_query("select Promise.ID_Tc,First_Tc,Name_Tc,Sur_Tc from Promise,Teacher where Promise.ID_Sc = '$_SESSION[ID_Sc]' and Promise.ID_Tc = Teacher.ID_Tc EXCEPT select Promise.ID_Tc,First_Tc,Name_Tc,Sur_Tc from Promise,Assess,Teacher where Promise.ID_Sc = '$_SESSION[ID_Sc]' and Promise.ID_Tc = Teacher.ID_Tc and Promise.ID_Tc = Assess.ID_Tc ");

ตัวcodeนี้เป็นการselectแต่อาจารย์ที่สังกัดโรงเรียนหนูเลยให้ Promise.ID_Tc = Teacher.ID_Tc และ Promise.ID_Sc = '$_SESSION[ID_Sc]'ว่าให้คัดจากอาจารย์ที่สังกัดโรงเรียนตัวเองเท่านั้นที่โชว์ในlist และ หนูก็เอามา EXCEPT กับ Promise.ID_Tc = Assess.ID_Tc เพื่อให้แสดงว่าอาจารย์คนนี้ยังไม่ถูกประเมินในปีนี้อ่าค่ะ

ช่วยด้วยนะค่ะ
Date : 2009-10-05 15:56:42 By : LuckyStar
 


 

No. 5



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

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

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


capture หน้าตารางแต่ละตารางมาดูหน่อยครับ

เอาให้เห็นทุกฟิล์ เผื่อจะมีประโยชน์กับผู้ที่จะเข้ามาช่วยเหลือหน่อยน่ะครับ
Date : 2009-10-05 16:03:21 By : pokultra
 


 

No. 6



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

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

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

ปัญหาอยู่ที่ $Y[2] และ $start[2] ไม่เท่ากันหรือเปล่าครับ
ลองทดสอบก่อนน่ะครับ
Code (PHP)
if($Y[2] ==  $start[2]  ){ }else{ //แต่ถ้าไม่เท่ากับก็ให้แสดงรายชื่ออาจารย์คนนั้น
								$list2 = mssql_query("select  Promise.ID_Tc,First_Tc,Name_Tc,Sur_Tc from Promise,Teacher where Promise.ID_Sc = '$_SESSION[ID_Sc]' and Promise.ID_Tc = Teacher.ID_Tc and  Promise.ID_Tc = '$ans2[ID_Tc]' ");
					while($a2 = mssql_fetch_array($list2)){  ?>
                            <!--<option value='<? echo $a2[0] ?>'><? echo $a2[1]?>&nbsp;&nbsp;<? echo $a2[2]?>&nbsp;&nbsp;<? echo $a2[3]?></option>-->
						 <option value='<? echo $a2[0] ?>'><? echo $a2[1]?>&nbsp;&nbsp;<? echo $Y[2]?>&nbsp;เท่ากับ &nbsp;<? echo $start[2]?></option>		
			<? }


ผมเริ่มเดาไปเรื่อยเลยน่ะครับ
Date : 2009-10-05 16:17:39 By : xbeginner01
 


 

No. 7



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



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

รูปตารางฐานนะค่ะ

สัญญา(Promise)

promise

ตารางประเมิน(Assess)

assess
Date : 2009-10-05 18:45:43 By : LuckyStar
 


 

No. 8



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

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

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

(>.< '' )

ถ้ายังไงช่วยส่งโค้ดทั้งหมดมาให้ดูดีกว่า
แล้วเดียวช่วยหาที่จะแก้ให้
Date : 2009-10-05 19:18:22 By : xbeginner01
 


 

No. 9



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



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

Code (PHP)
<?
		$day = date("d");
					$month = date("m");
					$year = date("Y");
					$sql = mssql_query("select  ID_Period,Date_start,Date_finish  from Period   ");
		?>
	  <div class="main">
	  
	  <table width="903" >
	    <? 
				 while($result  = mssql_fetch_array($sql)){
				 		
				 			//$start =  explode ("/", date("d/m/Y",$result['Date_start']));
							//$finish =  explode ("/", date("d/m/Y",$result['Date_finish']));
							
							$start =  explode (" ",$result['Date_start']);
							$finish =  explode (" ", $result['Date_finish']);
						
									if($start[2] == $year){//เลือกช่วงการประเมินปีนี้
											//echo  $start[0].$start[1].$start[2];
												$_SESSION[ID_Period] = $result['ID_Period'];
												$day_start =  $start[1];
												$day_finish = $finish[1];
												
												/*------------------------------แปลงค่าเดือนที่เริ่ม-----------------------------*/   
												if($start[0] == 'Jun'){
														$month_start = '01';
												}else if($start[0] == 'Feb'){
																$month_start = '02';
												}else  if($start[0] == 'Mar'){
																$month_start = '03';
												}else  if($start[0] == 'Apr'){
																$month_start = '04';
												}else  if($start[0] == 'May'){
																$month_start = '05';
												}else  if($start[0] == 'Jun'){
																$month_start = '06';
												}else  if($start[0] == 'Jul'){
																$month_start = '07';
												}else if($start[0] == 'Aug'){
																$month_start = '08';
												}else  if($start[0] == 'Sep'){
																$month_start = '09';
												}else  if($start[0] == 'Oct'){
																$month_start = '10';
												}else  if($start[0] == 'Nov'){
																$month_start = '11';
												}else  if($start[0] == 'Dec'){
																$month_start = '12';
												}
												/*---------------------------------------แปลงค่าเดือนที่สิ้นสุด-------------------------*/
												if($finish[0] == 'Jun'){
														$month_finish = '01';
												}else if($finish[0] == 'Feb'){
																$month_finish = '02';
												}else  if($finish[0] == 'Mar'){
																$month_finish = '03';
												}else  if($finish[0] == 'Apr'){
																$month_finish = '04';
												}else  if($finish[0] == 'May'){
																$month_finish = '05';
												}else  if($finish[0] == 'Jun'){
																$month_finish = '06';
												}else  if($finish[0] == 'Jul'){
																$month_finish = '07';
												}else if($finish[0] == 'Aug'){
																$month_finish = '08';
												}else  if($finish[0] == 'Sep'){
																$month_finish = '09';
												}else  if($finish[0] == 'Oct'){
																$month_finish = '10';
												}else  if($finish[0] == 'Nov'){
																$month_finish = '11';
												}else  if($finish[0] == 'Dec'){
																$month_finish = '12';
												}
												//echo $_SESSION[ID_Period];
												//echo $day_start.'/'.$month_start."-".$day_finish.'/'.$month_finish.'/'.$finish[2];
								
							if($day >= $day_start && $month >= $month_start &&  $day <= $day_finish  && $month <= $month_finish&& $year <= $finish[2]  ){
				?>       
                          <tr>
                            <td height="20" colspan="2" align="left"><table width="375" border="0" cellspacing="0" cellpadding="0">
                                <tr>
                                  <td width="375" height="20" align="center" bgcolor="#0066CC" class="TopicSection"><div class="style3" id="result_box" dir="ltr">  รายชื่ออาจารย์ประจำโรงเรียน  <? echo $_SESSION[Name_Sc];?></div></td>
                                </tr>
                            </table></td>
                          </tr>
                 
        <tr>
          <td ><div align="left">กรุณาเลือกชื่ออาจารย์ผู้สอนที่ต้องการประเมิน</div></td>
		   <td height="20" align="left">
		   
		   <? 
		   $list = mssql_query("select Promise.ID_Tc,First_Tc,Name_Tc,Sur_Tc from  Promise,Teacher where Promise.ID_Sc = '$_SESSION[ID_Sc]' and Promise.ID_Tc = Teacher.ID_Tc EXCEPT select Promise.ID_Tc,First_Tc,Name_Tc,Sur_Tc from  Promise,Assess,Teacher where Promise.ID_Sc = '$_SESSION[ID_Sc]' and Promise.ID_Tc = Teacher.ID_Tc and  Promise.ID_Tc = Assess.ID_Tc ");
		
		   ?>
		   <select name="teacher_lb" class="TextBox"  id="teacher_lb" style="width:250px;" >
		    <option value=''>---กรุณาเลือกอาจารย์ที่ท่านต้องการประเมิน----</option>
		   <?
		while($a = mssql_fetch_array($list)){
		?>		
    <option value='<? echo $a[0] ?>'><? echo $a[1]?>&nbsp;&nbsp;<? echo $a[2]?>&nbsp;&nbsp;<? echo $a[3]?></option>
                              <? } ?>
		<!------------------------------------------------------------------------------------------------------------------------------------------------------------->
		 <? 
		   $ans1 = mssql_query("select  Assess.ID_Tc,Date_At from Assess,Period where Assess.ID_Assess = '$_SESSION[ID_Sc]' and	Assess.ID_Period = Period.ID_Period 
");
$num2 = mssql_num_rows($ans1);
if($num2 != ""){
	while($ans2 = mssql_fetch_array($ans1)){
								$Y =  explode (" ",$ans2['Date_At']);
				
			if($Y[2] ==  $start[2]  ){ }else{
								$list2 = mssql_query("select  Promise.ID_Tc,First_Tc,Name_Tc,Sur_Tc from Promise,Teacher where Promise.ID_Sc = '$_SESSION[ID_Sc]' and Promise.ID_Tc = Teacher.ID_Tc and  Promise.ID_Tc = '$ans2[ID_Tc]' ");
					while($a2 = mssql_fetch_array($list2)){  ?>
						 <option value='<? echo $a2[0] ?>'><? echo $a2[1]?>&nbsp;&nbsp;<? echo $a2[2]?>&nbsp;&nbsp;<? echo $a2[3]?></option>		
			<? }
								
			 }  
	}
	
}
			?>
	<!------------------------------------------------------------------------------------------------------------------------------------------------------------>
		     </select>		   </td>
			  <td height="20"><div align="center">
                              <input type="submit" name="Submit" value="ประเมิน" />
                            </div></td>
        </tr>
		<? }else{echo "<span class='style4'>ยังไม่อยู่ในช่วงเวลาการประเมิน  กรุณาประเมินในช่วงวันที่ ".$day_start." ".$month_start." ".$start[2]." ถึง".$day_finish." ".$month_finish." ".$finish[2]."</span> ";
		
		
		}
		
			}else{	echo "<center><span class='style4'>ยังไม่อยู่ในช่วงการประเมินของปี".$year."<center><span class='style2'>";  
			}
				 			}
		?>
      </table>
	  </div>


codeทั้งหมดคะพี่(อิอิพี่ดูรู้เรื่องป่าว)
Date : 2009-10-05 22:43:21 By : LuckyStar
 


 

No. 10



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

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

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

เดียวตอนเช้าค่อยมาดูให้น่าครับ
แต่ถ้ายังไงก็ช่วยตั้งคำถามใหม่หน่อยครับ คือผมยังมึน ๆ กับคำถามอยู่นิดหน่อย
Date : 2009-10-06 04:07:00 By : xbeginner01
 


 

No. 11



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



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

ระบบประเมินอ่าพี่โรงเรียนจาประเมินได้ต้องอยู่ในช่วงเวลาที่adminกำหนดช่ายปะหนูเลยselectช่วงเวลาประเมินแบบนี้
$sql = mssql_query("select ID_Period,Date_start,Date_finish from Period ");

แล้วเปรียบเทียบกะวันที่ปัจจุบันถ้าอยู่ในช่วงก้อให้selectอาจารย์ที่มีสัญญากับโรงเรียนออกมาในlistแบบนี้

Code (PHP)
<tr> 
 <td ><div align="left">กรุณาเลือกชื่ออาจารย์ผู้สอนที่ต้องการประเมิน</div></td> 
          
<td height="20" align="left"> 
         
<?  
         
$list = mssql_query("select Promise.ID_Tc,First_Tc,Name_Tc,Sur_Tc from  Promise,Teacher where Promise.ID_Sc = '$_SESSION[ID_Sc]' and Promise.ID_Tc = Teacher.ID_Tc EXCEPT select Promise.ID_Tc,First_Tc,Name_Tc,Sur_Tc from  Promise,Assess,Teacher where Promise.ID_Sc = '$_SESSION[ID_Sc]' and Promise.ID_Tc = Teacher.ID_Tc and  Promise.ID_Tc = Assess.ID_Tc "); 
           
?>           
<select name="teacher_lb" class="TextBox"  id="teacher_lb" style="width:250px;" >            
<option value=''>---กรุณาเลือกอาจารย์ที่ท่านต้องการประเมิน----</option> 
          
<?        
while($a = mssql_fetch_array($list)){        
?>        
   
<option value='<? echo $a[0] ?>'><? echo $a[1]?>&nbsp;&nbsp;<? echo $a[2]?>&nbsp;&nbsp;<? echo $a[3]?></option> 
                          
<? } ?> 
    
<!------------------------------------------------------------------------------------------------------------------------------------>


แล้วที่นี้เมื่อประเมินอาจารย์คนไหนไปแล้วกลับมาที่listจะต้องไม่มีชื่อาจาย์คนนั้นที่ประเมินแล้วในlistแต่ถ้าถัดไปปีต่อไปชื่ออาจารย์คนนั้นต้องกลับมาใหม่เพราะคนละปีหนูเลยเขียนแบบนี้

Code (PHP)
<?  
        
$ans1 = mssql_query("select  Assess.ID_Tc,Date_At from Assess,Period where Assess.ID_Assess = '$_SESSION[ID_Sc]' and Assess.ID_Period = Period.ID_Period  
"); 
$num2 = mssql_num_rows($ans1); 
if($num2 != ""){ 
   
while($ans2 = mssql_fetch_array($ans1)){ 
                              
$Y =  explode (" ",$ans2['Date_At']); 
           
if($Y[2] ==  $start[2]  ){ }else{ 
                             
$list2 = mssql_query("select  Promise.ID_Tc,First_Tc,Name_Tc,Sur_Tc from Promise,Teacher where Promise.ID_Sc = '$_SESSION[ID_Sc]' and Promise.ID_Tc = Teacher.ID_Tc and  Promise.ID_Tc = '$ans2[ID_Tc]' "); 
                   
while($a2 = mssql_fetch_array($list2)){  ?> 
                      
<option value='<? echo $a2[0] ?>'><? echo $a2[1]?>&nbsp;&nbsp;<? echo $a2[2]?>&nbsp;&nbsp;<? echo $a2[3]?></option>         
           
<? }             
}   
   
} 


เพราะจะเอามาcheckว่าปีทีประเมินไปแล้วของอาจารย์คนนั้นเท่ากับปีนี้หรือป่าวถ้าไม่แสดงว่าปีนี้ยังไม่ประเมินอาจารย์คนนั้นให้แสดงชื่ออาจารย์ในlistได้

ปัญหาคือว่า
พอมีข้อมูลประเมินปีก่อนคือ51พอมาปี52ปีนี้ชื่ออาจารย์ที่เคยประเมินไปปีที่แล้วก็กลับมาอยู่ในlist
พอประเมินปี52เสร็จแต่ปรากฏว่าในlistชื่ออาจารย์คนนั้นยังไม่หายไปทั้งๆที่ต้องหายไปเพราะเราประเมินไปแล้วงี้อ่าพี่(จาเข้าใจหนูไหมเนี่ยฮ่าๆๆๆ)

ไงช่วยด้วยนะค่ะ
Date : 2009-10-06 09:42:52 By : LuckyStar
 


 

No. 12



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

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

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

Code (PHP)
if($day >= $day_start && $month >= $month_start &&  $day <= $day_finish  && $month <= $month_finish&& $year <= $finish[2]  ){

เปลี่ยนเป็ฯ
Code (PHP)
	if($day >= $day_start && $month >= $month_start &&  
								(($day <= $day_finish  && $month == $month_finish&& $year == $finish[2])||
								($month < $month_finish&& $year == $finish[2])|| 
								($year<$finish[2])) 
								){


เอาแค่นี้ก่อน กำลังตรวจสอบให้อยู่
แล้วส่งตาราง Period มาให้ดูหน่อยครับ

อ่อนึกออกอีกอย่างแล้วตอนแทรกข้อมูลหลังการประเมิน ทำถูกต้องเปล่าครับข้อมูลถูกแทรกในฐานข้อมูลจริงเปล่า ค่าที่แทรกแต่ละฟิลด์ถูกต้องตามที่ต้องการเปล่า เช็คตรงนี้ให้ด้วยครับ เพราะไม่ได้โชว์ส่วนนี้ให้ไว้ด้วย
Date : 2009-10-06 16:36:22 By : xbeginner01
 


 

No. 13



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



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

โทษพี่หนูหายไปนานเลยชีวิตวุ่นวายอยู่

นี่ภาพของPeriodนะ

Period

แทรกที่พี่หมายถึงคือข้อมลปี52ช่ายป่าวถ้าช่ายมันก้อลงฐานนะพี่
Date : 2009-10-10 18:40:05 By : LuckyStar
 


 

No. 14



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

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

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



ลืมไปแล้วน่ะเนี่ย 55+
นึกว่าได้ไปแล้ว งั้นขออีกสักพักครับ ตอนนี้ดูหนังอยู่ เดียวดูจบแล้วมาช่วย หรือรอพี่ๆใจดีคนอื่นมาดูต่อให้ได้น่ะ
สองอันเนี่ยผิดแน่ๆแหล่ะ
$start = explode (" ",$result['Date_start']);
$finish = explode (" ", $result['Date_finish']);
Date : 2009-10-10 18:49:33 By : xbeginner01
 


 

No. 15

Guest


Code (PHP)
$day = date("d");
					$month = date("m");
					$year = date("Y");
					$sql = mssql_query("select  ID_Period,Date_start,Date_finish  from Period   ");
		?>
	  <div class="main">
	  
	  <table width="903" >
	    <? 
				 while($result  = mssql_fetch_array($sql)){
				 		
				 			//$start =  explode ("/", date("d/m/Y",$result['Date_start']));
							//$finish =  explode ("/", date("d/m/Y",$result['Date_finish']));
							
							$start =  explode (" ",$result['Date_start']);
							$finish =  explode (" ", $result['Date_finish']);
						
									if($start[2] == $year){//เลือกช่วงการประเมินปีนี้
											//echo  $start[0].$start[1].$start[2];
												$_SESSION[ID_Period] = $result['ID_Period'];
												$day_start =  $start[1];
												$day_finish = $finish[1];
												
												/*------------------------------แปลงค่าเดือนที่เริ่ม-----------------------------*/   
												if($start[0] == 'Jun'){
														$month_start = '01';
												}else if($start[0] == 'Feb'){
																$month_start = '02';
												}else  if($start[0] == 'Mar'){
																$month_start = '03';
												}else  if($start[0] == 'Apr'){
																$month_start = '04';
												}else  if($start[0] == 'May'){
																$month_start = '05';
												}else  if($start[0] == 'Jun'){
																$month_start = '06';
												}else  if($start[0] == 'Jul'){
																$month_start = '07';
												}else if($start[0] == 'Aug'){
																$month_start = '08';
												}else  if($start[0] == 'Sep'){
																$month_start = '09';
												}else  if($start[0] == 'Oct'){
																$month_start = '10';
												}else  if($start[0] == 'Nov'){
																$month_start = '11';
												}else  if($start[0] == 'Dec'){
																$month_start = '12';
												}
												/*---------------------------------------แปลงค่าเดือนที่สิ้นสุด-------------------------*/
												if($finish[0] == 'Jun'){
														$month_finish = '01';
												}else if($finish[0] == 'Feb'){
																$month_finish = '02';
												}else  if($finish[0] == 'Mar'){
																$month_finish = '03';
												}else  if($finish[0] == 'Apr'){
																$month_finish = '04';
												}else  if($finish[0] == 'May'){
																$month_finish = '05';
												}else  if($finish[0] == 'Jun'){
																$month_finish = '06';
												}else  if($finish[0] == 'Jul'){
																$month_finish = '07';
												}else if($finish[0] == 'Aug'){
																$month_finish = '08';
												}else  if($finish[0] == 'Sep'){
																$month_finish = '09';
												}else  if($finish[0] == 'Oct'){
																$month_finish = '10';
												}else  if($finish[0] == 'Nov'){
																$month_finish = '11';
												}else  if($finish[0] == 'Dec'){
																$month_finish = '12';
												}
												//echo $_SESSION[ID_Period];
												//echo $day_start.'/'.$month_start."-".$day_finish.'/'.$month_finish.'/'.$finish[2];
								
							if($day >= $day_start && $month >= $month_start &&  $day <= $day_finish  && $month <= $month_finish&& $year <= $finish[2]  ){
				?>    


เปลี่ยนเป็น
Code (PHP)
<?php
session_start();
$day = date("d");
$month = date("m");
$year = date("Y")+543; // +543 เพื่อให้เป็นปี พ.ศ.  <--จำเป็นต้องให้เป็น พ.ศ.
$sql = mssql_query("select  ID_Period,Date_start,Date_finish  from Period   ");
?>
<div class="main">
<table width="903" >
<? php
 while($result  = mssql_fetch_array($sql)){
	list($day_start,$month_start,$year_start)= split('[/[:space:]]',$result['Date_start']);
	list($day_finish,$month_finish,$year_finish)= split('[/[:space:]]',$result['Date_finish']);
if($year_start ==$year){
	$_SESSION[ID_Period] = $result['ID_Period'];
	if($day >= $day_start && $month >= $month_start &&  
		(($day <= $day_finish  && $month == $month_finish&& $year == $year_finish)||
		($month < $month_finish&& $year == $year_finish)|| 
		($year<$year_finish)) ){
 ?>


Code (PHP)
if($Y[2] ==  $start[2]  )
เปลี่ยนเป็น
if($Y[2] ==  $year_start  )

Code (PHP)
echo "<span class='style4'>ยังไม่อยู่ในช่วงเวลาการประเมิน  กรุณาประเมินในช่วงวันที่ ".$day_start." ".$month_start." ".$start[2]." ถึง".$day_finish." ".$month_finish." ".$finish[2]."</span> "
เปลี่ยนเป็น 
echo "<span class='style4'>ยังไม่อยู่ในช่วงเวลาการประเมิน  กรุณาประเมินในช่วงวันที่ ".$day_start." ".$month_start." ".$year_start." ถึง".$day_finish." ".$month_finish." ".$year_finish."</span> "


อันนี้แก้ให้ กรณีที่แน่ใจว่าโค้ดตัวเอง echo มาถูกน่ะไม่ต้องแก้ก็ได้
แต่ตรง $year เช็คหน่อยครับเป็นปี พ.ศ เปล่าถ้าไม่ใช้ก็ +543 ไป จำเป็นมากน่ะครับต้องให้เป็น พ.ศ เพราะในฐานข้อมูลเป็น พ.ศ หมด
อีกอย่างอย่าลืม session_start() ไว้บนสุดด้วย

ต่อไปเดียวมาดูใน query มาเห็นแว๊บๆแหล่ะว่ามีที่ผิด...
Date : 2009-10-10 22:06:00 By : xbeginner01
 


 

No. 16

Guest


เย้ๆขอบคุนนะค่ะ พี่สู้ๆๆ ดูให้ด้วยนะค่ะ
Date : 2009-10-11 08:11:23 By : LuckyStar
 


 

No. 17



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

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

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

ง่า สรุปยังแก้ไม่ได้อีกหรอ
ลองเช็ค $_SESSION[ID_Sc] มีค่าเปล่า

แล้วที่ถามคือตอนเลือกชื่ออาจารย์ผู้สอนที่ต้องการประเมิน มันแสดงผิดใช่ป่ะ ???

ลองเช็คคำสั่งข้างล่างดูใหม่ ลองเรียบเรียงความคิดใหม่ พอดีพี่ใช้ except ไม่ได้ก็เลยจะทดสอบผลไม่ได้ไปด้วย +ขี้เกียจอ่านนิดหน่อย 555+
$list = mssql_query("select Promise.ID_Tc,First_Tc,Name_Tc,Sur_Tc from Promise,Teacher where Promise.ID_Sc = '$_SESSION[ID_Sc]' and Promise.ID_Tc = Teacher.ID_Tc EXCEPT select Promise.ID_Tc,First_Tc,Name_Tc,Sur_Tc from Promise,Assess,Teacher where Promise.ID_Sc = '$_SESSION[ID_Sc]' and Promise.ID_Tc = Teacher.ID_Tc and Promise.ID_Tc = Assess.ID_Tc ");

ทางที่ดีน้องต้องพีเซนความสัมพันธ์ของสี่ตาราง assess promise period teacher ให้พี่ฟังหน่อยหรือจะแสดงเป็น ERD ให้พี่ดูก็ยังดี

เรื่องนี้สงสัยจะยาว บอกตามตรงเลยพี่ยังไม่มองไม่ออก
น้องต้องพยายามแก้ไปเรื่อยๆน่ะ อย่าหวังไรมากเอิ้กๆ
Date : 2009-10-11 12:46:53 By : xbeginner01
 


 

No. 18



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



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

พี่ค่ะ $result['Date_start'] มานแสดงเปง Oct 11 2009 12:00 AM ถ้าจะให้เป็นเป็นdd/mm/YYYYยังไงค่ะเพราะเป็นงี้เลยใช้codeพี่ไม่ได้อ่า
Date : 2009-10-11 12:48:53 By : LuckyStar
 


 

No. 19



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

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

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

กำ แล้วไมน้องให้ตารางพี่เป็น 1/10/2552 0:00:00 มาละ ทำให้เข้าใจผิดไปใหญ่เลยเหอะๆ งั้นกลับไปใช้อันเก่าเลยครับ
แล้วฟิลด์อืนๆ แสดง Oct 11 2009 12:00 AM เรียงกันแบบนี้เหมือนกันเปล่าครับ
Date : 2009-10-11 12:55:08 By : xbeginner01
 


 

No. 20



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



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

ในตารางมันเป็น 1/10/2552 0:00:00 อ่าพี่แต่เวลาechoแสดงออกมาอยู่ดีมานเป็น Oct 11 2009 12:00 AM อ่าค่ะหนูก้อไม่รู้ว่าทามไม
Date : 2009-10-12 00:25:29 By : LuckyStar
 


 

No. 21



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

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

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

เป็นเพราะ mssql หรือเปล่าน่ะ หุหุ อันนี้ไม่ทราบแหล่ะ งั้นยึดผลการ echo ละกันน่ะครับ ใช้โค้ดของน้องแต่แรกเลยครับ มาเริ่มดูส่วนอื่นดีกว่า

-เช็ค $_SESSION[ID_Sc] มีค่าเปล่า echo มาทีครับ ถ้าไม่มีค่าก็ผิดตรงนี้
-ทางที่ดีช่วยแสดง ERD ให้พี่ดูหน่อยได้เปล่าครับ
- ไม่งั้นลองมาเขียนคำสั่ง query กันใหม่ไม เพราะพี่ไม่ค่อยเข้าใจ except เท่าไร (พูดอีกอย่าง mysql ไม่มี except :p )

แต่แรกน้องยึด $_SESSION[ID_Sc] เป็นหลัก แล้วลองค้นหาข้อมูลจากตาราง Promise
select * from Promise where Promise.ID_Sc=$_SESSION[ID_Sc]

จากนั้น ก็ดูที่ตาราง Assess ดูว่า ID_Sc นี้ประเมินอาจารย์คนไหนไปแล้วบ้าง
select * from Assess where Assess.ID_Assess=$_SESSION[ID_Sc]

ถ้า ID_Sc คนนี้ มี id_tc หรือไอดีของจารย์ใน assess หรือมีการประเมินไปแล้ว ก็ไม่ให้แสดงข้อมูล
select Promise.ID_Sc,Promise.ID_Tc from Promise,Assess where Promise.ID_Sc=$_SESSION[ID_Sc] and Assess.ID_Assess=$_SESSION[ID_Sc] and Promise.ID_Tc!=Assess.ID_Tc

เนื่องจากว่าบางทีมีการแสดงข้อมูลซ้ำ เราจึงต้อง group by ID_Tc
select Promise.ID_Sc,Promise.ID_Tc from Promise,Assess where Promise.ID_Sc=$_SESSION[ID_Sc] and Assess.ID_Assess=$_SESSION[ID_Sc] and Promise.ID_Tc!=Assess.ID_Tc group by Promise.ID_Tc

จากนั้นอยากแสดงแค่ข้อมูลอาจารย์คนนี้ด้วยชื่อนามสกุลก็แทรกตาราง Teacher เข้าไป
select Promise.ID_Tc,First_Tc,Name_Tc,Sur_Tc from Promise,Assess,Teacher where Promise.ID_Sc=$_SESSION[ID_Sc] and Assess.ID_Assess=$_SESSION[ID_Sc] and Promise.ID_Tc!=Assess.ID_Tc group by Promise.ID_Tc


แต่ว่าถ้าใน Assess มีข้อมูลการประเมินปีที่แล้ว และไม่ใช่ปีนี้ ก็ต้องทำให้มันแสดงข้อมูลออกมาโดยเทียบปีที่จะประเมินกับ Date_at เช่นประเมินปี 1980
select Promise.ID_Tc,First_Tc,Name_Tc,Sur_Tc from Promise,Assess,Teacher where Promise.ID_Sc=$_SESSION[ID_Sc] and Assess.ID_Assess=$_SESSION[ID_Sc] and ( Promise.ID_Tc!=Assess.ID_Tc or year(Assess.Date_At)=1980)


Date_At พี่มอง type เป็น datetime พี่ก็เลยใช้ year(Assess.Date_At) แสดงปีออกมาได้ แต่กรณีที่ไม่ใช่ type datetime อาจเป็น varchar หรือ int ต้องใช้วิธีอื่น ตอนนี้พี่นึกไม่ออกแหล่ะ

concept การสร้างquery ของพี่ก็ประมาณนี้แหล่ะ ตรงนี้อาจเป็นแนวทางให้น้องคิดออกได้บ้างว่าควรแก้ตรงไหน
Date : 2009-10-12 02:48:15 By : xbeginner01
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : พี่ๆช่วยด้วยค่ะงมแก้ไม่ได้ซะที ถามเรื่องการประเมินค่ะ ในฐานการประเมิน(assess)มี
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 00
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 อัตราราคา คลิกที่นี่