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,028

HOME > PHP > PHP Forum > PHP สอบถามครับ เราไม่สามารถเรียกใช้ Function จากใน Loop ได้เหรอครับ



 

PHP สอบถามครับ เราไม่สามารถเรียกใช้ Function จากใน Loop ได้เหรอครับ

 



Topic : 119010



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



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




จากโค้ดเป็นโค้ดนับเวลาถอยหลัง ใช้ปกติแบบไม่ใส่ใน loop ก็ใช้ได้ปกติ แต่พอมาใส่ใน loop ก็มีปัญหาคือไม่สามารถใช้งาน tab อะไรได้เลย แล้วไม่มี error แจ้ง ต้องแก้ยังไงครับ

Code (PHP)
<body onLoad="begintimer()">

<script language="">
var limit="<?=$time;?>";
if (document.images){
var parselimit=limit.split(":")
parselimit=(parselimit[0]*3600)+(parselimit[1]*60)+parselimit[2]*1
//alert(parselimit);
}
function begintimer(){
if (!document.images)
return
if (parselimit==1)
// เหตุการณ์ที่ต้องการให้เกิดขึ้น
// window.location='page.php'; ถ้าต้องการให้กระโดดไปยัง Page อื่น
frmTest.submit();
else{
parselimit-=1
curhr=parseInt((parselimit%86400)/3600);
curmin=parseInt((parselimit%86400)%3600/60);
cursec=parseInt(((parselimit%86400)%3600)%60);
if (curhr!==0 && curmin!=0)
curtime="เวลาที่เหลือ <font color=red> "+curhr+"</font> ชั่วโมง <font color=red>"+curmin+" </font>นาที กับ <font color=red>"+cursec+" </font>วินาที "
else
if(cursec==0 && curmin==0 && curhr==0)
{
alert('หมดเวลาแล้วจ้า');
}
else
{
curtime="เวลาที่เหลือ <font color=red> "+curhr+"</font> ชั่วโมง <font color=red>"+curmin+" </font>นาที กับ <font color=red>"+cursec+" </font>วินาที "
}
document.getElementById('dplay').innerHTML = curtime;
setTimeout("begintimer()",1000)
}
}
//-->
</script>
<div id=dplay ></div>


Code (PHP)
<div id="menu8" class="tab-pane fade">
    	<?php
                  $machine = $db->prepare('SELECT mType,mName,maintaince,id,inuse, SUBSTRING(mName,-2,2) AS substr
                                           FROM  tbl_machine 
                                           WHERE mType = 10
                                           ORDER BY substr ASC');
                  $machine->execute();
      ?>

      <?php
      $i = 0;
        while($row = $machine->fetch(PDO::FETCH_ASSOC)) {
      ?>

          <div class="col-sm-2 col-md-2" style="padding-top: 1cm;" >
          <div class="thumbnail">
      <?php 
           $disabled = ''; 
           if ($row['maintaince'] <> 0) {//เผื่อมีสถานะอื่นที่ไม่ใช่ 1
              $pic = 'image/installation-icon.jpg';
              $disabled = 'disabled';
              $text = 'ชำรุด';
              $alert = 'danger';
           }
          else if ($row['inuse'] == 1) {

             $m_id = $row['id'];
             $status = 'Y';
                    
                     $log = $db->prepare('SELECT Id,machine_id
                                           FROM tbl_logs
                                           WHERE machine_id = :m_id AND status = :status 
                                           ORDER BY Id DESC');
                    $log->bindParam(':m_id',$m_id,PDO::PARAM_STR);
                    $log->bindParam(':status',$status,PDO::PARAM_STR);
                    $log->execute();
                    $r = $log->fetch(PDO::FETCH_ASSOC);


                    $logs_id = $r['Id'];            
                    $mat = $db->prepare('SELECT title,barcode,call_on
                                           FROM tbl_material
                                           WHERE logs_id = :logs_id
                                           ORDER BY Id DESC');
                    $mat->bindParam(':logs_id',$logs_id,PDO::PARAM_STR);
                   // $mat->bindParam(':status',$status,PDO::PARAM_STR);
                    $mat->execute();
                    $r_mat = $mat->fetch(PDO::FETCH_ASSOC);
                   // print_r($r_mat);

                    $call_on = $r_mat['call_on'];
                    $call = $db->prepare('SELECT result_callno,result_time
                                           FROM tbl_result
                                           WHERE result_callno = :call_on ');
                    $call->bindParam(':call_on',$call_on,PDO::PARAM_STR);
                    $call->execute();
                    $r_call = $call->fetch(PDO::FETCH_ASSOC);

              $pic = 'image/User-Computer.png';
              $text = 'คืน';
              $alert = 'warning';
              $in = 'return';

              $Time = $r_call['result_time']; // หน่วยเป็นนาที
              echo $t = date('H:i', mktime(0,$Time)); // แปลงเป็น xx:xx

              ///////////// แปลงจาก xx:xx:xx เป็นวินาที //////////////////
function secondsTime($examTime){
  $time = explode(":", $examTime);
  $h = $time[0]*3600;
  $m = $time[1]*60;
  $s = $time[2]*1;
  $seconds = $h+$m+$s;
  return $seconds;

}
echo "<br>วินาที : ".$seconds = secondsTime($t);
///////////////////////////////////////////////////////


///////////////// session เวลา ////////////////////
if (!isset($_SESSION['timeend'])){ 
  unset($_SESSION['timeend']);
    $endtime = time() + $seconds; 
    $_SESSION['timeend'] = $endtime; 
} 

($_SESSION['timeend'] - time()) < 0 ? $EndTime = 0 :  $EndTime = $_SESSION['timeend'] - time();

if($EndTime <= 0) { 
  unset($_SESSION['timeend']);
//session_destroy(); 
} 
/////////////////////////////////////////////////


///////////// แปบวจากวินาทีเป็น HH:MM:SS /////////////////
function checkTime($seconds){
  $hours = floor($seconds / 3600);
  $mins = floor(($seconds - ($hours*3600)) / 60);
  $secs = floor(($seconds - ($hours*3600)) % 60);
  $time = $hours.":".$mins.":".$secs;
  return $time;
//แปลงเป็นวินาทีให้อยู่ในรูปแบบ xx:xx:xx
}
$time = checkTime($EndTime);
///////////////////////////////////////////////////
          }
          else {
              $pic = 'image/My-Computer-icon.png'; 
              $text = 'ยืม';
              $alert = 'primary';
              $in = 'add';
              $r_mat['title'] = '';
              $r_call['result_time'] = '';
              $r_mat['call_on'] = '';
          }
        ?>
 
      				<img src="<?=$pic?>" alt="...">
      			<div class="caption">
        			<h5><?=$row['mName'];?></h5>
              <p><?=$r_mat['call_on'];?></p>
        			<p class="text-primary"><?=$r_mat['title'];?></p>
              <p class="text-primary">ความยาว : <?=$r_call['result_time'];?> นาที</p>
              <p class="text-danger">เหลืออีก : </p>
        			<p><a href="Machineborrowform.php?action=<?=$in;?>&&id=<?=$row['id'];?>&&inuse=<?=$row['inuse'];?>" class="btn btn-<?=$alert?>" role="button" <?=$disabled?> > &nbsp;&nbsp;&nbsp;&nbsp;<?=$text?>&nbsp;&nbsp;&nbsp;&nbsp;</a><!--  <a href="javascript:if(confirm('ยืนยันการคืนทรัพยากร \r\n<?=$row['mName'] ?>')==true){window.location='return.php?id=<?=$row['id'];?>&&inuse=<?=$row['inuse'];?>';}" class="btn btn-default" role="button" <?=$a?> <?=$b?> >คืน</a> --></p>
      			</div>
    			</div>
  			</div>
<?php 
$i++; 
} 
?>
    </div>





Tag : PHP, MySQL, HTML/CSS, JavaScript, Ajax, jQuery







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-09-22 10:30:08 By : littlebeer View : 2708 Reply : 25
 

 

No. 1



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



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

เรียกใช้ function ในลูป ได้ครับ แต่ เขียน function ไว้ในลูปไม่ได้ครับ
แบบข้างล่างได้
Code (PHP)
function a (){
}
for(){
   a(); 
}


แบบข้างล่างนี้ไม่ได้
Code (PHP)
for(){
   function a (){
   }
   a(); 
}


แต่ถ้าต้องการให้ function อยู่ใน loop จริงๆ ต้องเขียนตรวจสอบก่อนครับ

if( function_exists( 'ชื่อฟังก์ชั่น') )

Code (PHP)
for(){
   if( !function_exists('a'){
      function a (){
      }
   }
   a(); 
}









ประวัติการแก้ไข
2015-09-22 10:49:57
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-22 10:44:52 By : NewbiePHP
 


 

No. 2



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

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

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


ฟังก์ชั่นอะไรสักอย่าง.php
function nCategory($aaa)
	{
             
                if($aaa=="1"){$aaa="วิชาพื้นฐาน";}
                if($aaa=="2"){$aaa="วิชาเฉพาะ";}
                if($aaa=="3"){$aaa="วิชาทัวไป";}
                if ($aaa == ""){
                    return "";
                    }else{
                        return $aaa ;
                        }
            
        }
?>


show.php
include 'ฟังก์ชั่นอะไรสักอย่าง.php';
include 'mysql_connection_class.php'; //class จาก thaicreate
$mysql=new MySQL_Connection("$host","$user","$pw","$dbname");
$mysql->charset = 'utf8';

if ($mysql->query(" SELECT * FROM [course] WHERE [category] = '1' ORDER BY [id] DESC") > 0) {
	  $no = 1;
	 while ($rs= $mysql->fetch()) { 
   echo  nCategory($rs['id_category']);

}

อันนี้อยู่ในลูป while ก็เรียกใช้งานได้นะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-22 11:55:33 By : apisitp
 

 

No. 3



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



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


Function ทำงานใน loop แล้วครับ แต่ทำงานไม่ครบตามเงื่อนไข จากรูป คือมันจะต้องขึ้นเวลานับถอยหลังทั้ง 2 เครื่อง ครับ

หหหหห

Code (PHP)
<div id="menu8" class="tab-pane fade">
    	<?php
                  $machine = $db->prepare('SELECT mType,mName,maintaince,id,inuse, SUBSTRING(mName,-2,2) AS substr
                                           FROM  tbl_machine 
                                           WHERE mType = 10
                                           ORDER BY substr ASC');
                  $machine->execute();
      ?>

      <?php
      $i = 0;
        while($row = $machine->fetch(PDO::FETCH_ASSOC)) {
      ?>

          <div class="col-sm-2 col-md-2" style="padding-top: 1cm;" >
          <div class="thumbnail">
      <?php 
           $disabled = ''; 
           if ($row['maintaince'] <> 0) {//เผื่อมีสถานะอื่นที่ไม่ใช่ 1
              $pic = 'image/installation-icon.jpg';
              $disabled = 'disabled';
              $text = 'ชำรุด';
              $alert = 'danger';
           }
          else if ($row['inuse'] == 1) {

             $m_id = $row['id'];
             $status = 'Y';
                    
                     $log = $db->prepare('SELECT Id,machine_id
                                           FROM tbl_logs
                                           WHERE machine_id = :m_id AND status = :status 
                                           ORDER BY Id DESC');
                    $log->bindParam(':m_id',$m_id,PDO::PARAM_STR);
                    $log->bindParam(':status',$status,PDO::PARAM_STR);
                    $log->execute();
                    $r = $log->fetch(PDO::FETCH_ASSOC);


                    $logs_id = $r['Id'];            
                    $mat = $db->prepare('SELECT title,barcode,call_on
                                           FROM tbl_material
                                           WHERE logs_id = :logs_id
                                           ORDER BY Id DESC');
                    $mat->bindParam(':logs_id',$logs_id,PDO::PARAM_STR);
                   // $mat->bindParam(':status',$status,PDO::PARAM_STR);
                    $mat->execute();
                    $r_mat = $mat->fetch(PDO::FETCH_ASSOC);
                   // print_r($r_mat);

                    $call_on = $r_mat['call_on'];
                    $call = $db->prepare('SELECT result_callno,result_time
                                           FROM tbl_result
                                           WHERE result_callno = :call_on ');
                    $call->bindParam(':call_on',$call_on,PDO::PARAM_STR);
                    $call->execute();
                    $r_call = $call->fetch(PDO::FETCH_ASSOC);

              $pic = 'image/User-Computer.png';
              $text = 'คืน';
              $alert = 'warning';
              $in = 'return';

              $Time = $r_call['result_time'];
              echo $t = date('H:i', mktime(0,$Time));

                if( !function_exists('secondsTime')) {
                    ///////////// แปลงจาก xx:xx:xx เป็นวินาที //////////////////
                    function secondsTime($examTime){
                        $time = explode(":", $examTime);
                        $h = $time[0]*3600;
                        $m = $time[1]*60;
                        $s = $time[2]*1;
                        $seconds = $h+$m+$s;
                      return $seconds;
                    }
                    //echo "<br>วินาที : ".$seconds = secondsTime($t);
                    ///////////////////////////////////////////////////////
                }

                ///////////////// session เวลา ////////////////////
                if (!isset($_SESSION['timeend'])){ 
                    unset($_SESSION['timeend']);
                    $endtime = time() + $seconds; 
                    $_SESSION['timeend'] = $endtime; 
                } 

                ($_SESSION['timeend'] - time()) < 0 ? $EndTime = 0 :  $EndTime = $_SESSION['timeend'] - time();

                if($EndTime <= 0) { 
                    unset($_SESSION['timeend']);
                    //session_destroy(); 
                } 
                /////////////////////////////////////////////////

                 if( !function_exists('checkTime')) {
                    ///////////// แปบวจากวินาทีเป็น HH:MM:SS /////////////////
                    function checkTime($seconds){
                      $hours = floor($seconds / 3600);
                      $mins = floor(($seconds - ($hours*3600)) / 60);
                      $secs = floor(($seconds - ($hours*3600)) % 60);
                      $time = $hours.":".$mins.":".$secs;
                      return $time;
                      //แปลงเป็นวินาทีให้อยู่ในรูปแบบ xx:xx:xx
                    }
                    $time = checkTime($EndTime);
                    //////////////////////////////////////////////////
                 }
          }
          else {
              $pic = 'image/My-Computer-icon.png'; 
              $text = 'ยืม';
              $alert = 'primary';
              $in = 'add';
              $r_mat['title'] = '';
              $r_call['result_time'] = '';
              $r_mat['call_on'] = '';
          }
        ?>
 
      				<img src="<?=$pic?>" alt="...">
      			<div class="caption">
        			<h5><?=$row['mName'];?></h5>
              <p><?=$r_mat['call_on'];?></p>
        			<p class="text-primary"><?=$r_mat['title'];?></p>
              <p class="text-primary">ความยาว : <?=$r_call['result_time'];?> นาที</p>
              <p class="text-danger" id="dplay">เหลืออีก : </p>
        			<p><a href="Machineborrowform.php?action=<?=$in;?>&&id=<?=$row['id'];?>&&inuse=<?=$row['inuse'];?>" class="btn btn-<?=$alert?>" role="button" <?=$disabled?> > &nbsp;&nbsp;&nbsp;&nbsp;<?=$text?>&nbsp;&nbsp;&nbsp;&nbsp;</a><!--  <a href="javascript:if(confirm('ยืนยันการคืนทรัพยากร \r\n<?=$row['mName'] ?>')==true){window.location='return.php?id=<?=$row['id'];?>&&inuse=<?=$row['inuse'];?>';}" class="btn btn-default" role="button" <?=$a?> <?=$b?> >คืน</a> --></p>
      			</div>
    			</div>
  			</div>
<?php 
$i++; 
} 
?>
    </div>


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-22 13:45:53 By : littlebeer
 


 

No. 4



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



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

106.$time = checkTime($EndTime);
107.//////////////////////////////////////////////////
108.}

เอา 106 มาอยู่ หลัง 108 ครับ

Code (PHP)
if( !function_exists('checkTime')) {  //ตรวจสอบว่ามี ฟังก์ชั่นอยู่หรือเปล่า
   //ถ้าไม่มีให้สร้าง ฟังก์ชั่นขึ้นมา
}
//ตรวจสอบเสร็จก็ไปทำคำสั่ง
$time = checkTime($EndTime);

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-22 14:08:19 By : NewbiePHP
 


 

No. 5



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



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


ยังขึ้นถอยหลังแค่อันเดียวเหมือนในรูปอยู่ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-22 14:41:08 By : littlebeer
 


 

No. 6



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



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

ขอโทษนะครับ เอาโค๊ดที่แก้ไขแล้วมาดูด้วยครับ
โค๊ดเก่า คห 3 ผมหาความสัมพันธ์ ของ function กับตัวแปรอื่นๆ ไม่ได้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-22 17:28:26 By : NewbiePHP
 


 

No. 8

Guest


Code (PHP)
document.getElementById('dplay').innerHTML = curtime;


div ที่มี id dplay มันมีหลายตัวหรือเปล่าครับ เห็นคุณสร้างมันไว้ที่ loop while
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-23 09:40:51 By : WiTT
 


 

No. 9



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



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

011.$i = 0; $time = array(); //กำหนด $time ให้เก็บเป็น array ไว้เก็บ กำหนดส่ง
012.while($row = $machine->fetch(PDO::FETCH_ASSOC)) {
$time[$i]=''; // กำหนดค่า default ให้ $time[$i]


077.echo "<br>วินาที : ".($seconds = secondsTime($t)); ใส่ลงเล็บครอบไว้หน่อยสีแดง
078.///////////////////////////////////////////////////////
079.}
ข้างบน สลับกันเหมือนกัน เอา 77 มาต่อท้าย 79

109.$time[$i] = checkTime($EndTime); // เพิ่มสีแดง เพื่อกำหนดเป็น array

128.<p class="text-danger dplay" data-i="<?=$i?>" ></p>
เปลี่ยน id=dplay เป็น คลาส และเพิ่ม data-i ไว้อ้างอิง


ส่วนของ script
Code (JavaScript)
var times=JSONparse("<?=json_encode($time);?>"); // กำหนดตัวแปร times เป็น array
var column=0; // กำหนดตัวแปร pointer สำหรับ column


ส่วนฟังก์ชั่น แสดงรายการ ถอยหลัง ลองคิดใหม่นะครับ
มันต้องมีเวลา กำหนดส่ง ลบด้วย เวลาปัจจบัน
ผมหา ฟีลด์ กำหนดส่งไม่เจอ ควรจะกำหนดไว้ เอาไว้ลบกับเวลาปัจจุบัน
แล้วเก็บไว้ในตัวแปร $time เป็น array ส่งไปให้ javascript

ลองค้นหา timediff datediff มาประยุกต์ นะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-23 10:48:06 By : NewbiePHP
 


 

No. 10



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



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


ตอบความคิดเห็นที่ : 8 เขียนโดย : WiTT เมื่อวันที่ 2015-09-23 09:40:51
รายละเอียดของการตอบ ::
ใช่ครับ มีหลายตัวตาม loop

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-23 10:57:24 By : littlebeer
 


 

No. 11



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



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


ตอบความคิดเห็นที่ : 9 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-09-23 10:48:06
รายละเอียดของการตอบ ::
ไม่ขึ้นนับถอยหลังให้เลยครับ คราวนี้

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-23 13:31:43 By : littlebeer
 


 

No. 12



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



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

funcition begintimer ต้องเขียนใหม่ ให้รองรับ $time ที่เป็น array
ครับ

ส่วน
document.getElementById('dplay').innerHTML=curtime;

อ้างอิง array
document.getElementsByClassname('dplay')[colmun].innerHTML=curtime;

หรืออ้างอิง dataset เพราะตัวอย่างผมทำเป็น dataset
document.querySelector("[data-i='"+column+"']").innerHTML=curtime;


ประวัติการแก้ไข
2015-09-23 15:35:35
2015-09-23 15:37:10
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-23 15:33:23 By : NewbiePHP
 


 

No. 13



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



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


ตอบความคิดเห็นที่ : 12 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-09-23 15:33:23
รายละเอียดของการตอบ ::
พอจะบอกแนวทางได้มั้ยครับ ยังไม่ค่อยเข้าใจเลย

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-24 09:19:48 By : littlebeer
 


 

No. 14



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



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

นี่เป็นตัวอย่าง การใช้ เวลาของกำหนดส่ง กับเวลาปัจจุบัน
Code (PHP)
<html>
<head>
<script language="">
var times=JSONparse("<?=json_encode($time);?>");
var column = 0;
function chk_time(){
	var c = false;
	for( var i=0; i<times.length; i++) if( times[i]>'') { c=true; break;};
	return c;
}
function begintimer(){
	if ( !chk_time() ) return // ตรวจสอบ element ที่ยังอยู่ในการนับถอยหลัง
	if(times[column]==''){ 
		//ตรวจสอบ column ปัจจุบัน ไม่อยู่ในการนับถอยหลัง  
		column += (column+1)% times.length; 
		setTimeout( 'begintimer()' , 100);
		return;
	}
	var tm = times[column];
	var curtime = new Date();
	var target = new Date(tm);
	var sec=Math.floor((target.getTime() - curtime.getTime())/1000);
	var s=sec%60;
	var m=Math.floor(sec/60) % 60;
	var h=Math.floor(sec/3600);
	if(h|m|s){
		curtime = "เวลาที่เหลือ <font color=red> "+h+"</font> ชั่วโมง "+
			"<font color=red>"+m+" </font>นาที กับ <font color=red>"+s+" </font>วินาที ";
	}else{ curtime = "หมดเวลาแล้วจ้า"; times[column]='';}
	document.querySelector("[data-i='"+column+"']").innerHTML=curtime;
	setTimeout("begintimer()",1000)
}
</script>
</head>
<body onload="begintimer()">
***** data *****
<body>
</html>


ปล.แต่คุณต้องไปเปลี่ยน endtime ตัวกำหนดส่งให้เป็นเวลามาตรฐาน
จากโค๊ดผมเห็นคุณไปเอามาจาก $_SESSION['timeend'] ซึ่งเป็นตัวแปรปรกติ ไม่ใช่ array
ซึ่งจะเก็บค่าของ กำหนดส่งได้แค่รายการเดียว ต้องไปแก้ให้เก็บ ตัวแปรกำหนดส่ง ได้หลายรายการ
การกำหนดค่าหลายๆ ค่า ต้องกำหนดเป็น array ลองเขียนใหม่ครับ
ศึกษาการเก็บข้อมูลให้เป็น array ให้ดีครับ


ประวัติการแก้ไข
2015-09-25 17:20:22
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-24 10:42:14 By : NewbiePHP
 


 

No. 15



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



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


ตอบความคิดเห็นที่ : 14 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-09-24 10:42:14
รายละเอียดของการตอบ ::
ลองกำหนด $_SESSION['timeend'] = array();
ไม่แสดง error แต่ tab ไม่ทำงาน กำหนด session ให้เป็น array ไม่ได้เหรอครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-24 14:01:27 By : littlebeer
 


 

No. 16



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



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

ตอบความคิดเห็นที่ : 15 เขียนโดย : littlebeer เมื่อวันที่ 2015-09-24 14:01:27
รายละเอียดของการตอบ ::
เซทได้ครับ อยู่ที่ว่าเซทยังไง

Code (PHP)
$_SESSION['timeend']=array();
$column=0; $_SESSION['timeend'][$colume]='2015-10-01 20:00:00';
$column=1; $_SESSION['timeend'][$colume]='2015-10-01 21:00:00';

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-24 16:13:19 By : NewbiePHP
 


 

No. 17



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



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


ไม่รู้ถูกมั้ยผลลัพธ์ยังไม่ได้เหมือนเดิม คงยังไม่ถูก รบกวนอีกหลาย ๆ ทีครับ

ตอบความคิดเห็นที่ : 16 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-09-24 16:13:19
รายละเอียดของการตอบ ::
Code (PHP)
<div id="menu8" class="tab-pane fade">
    <?php
                  $machine = $db->prepare('SELECT mType,mName,maintaince,id,inuse, SUBSTRING(mName,-2,2) AS substr
                                           FROM  tbl_machine 
                                           WHERE mType = 10
                                           ORDER BY substr ASC');
                  $machine->execute();
      ?>

        <?php
      $i = 0;
      $time = array(); //กำหนด $time ให้เก็บเป็น array ไว้เก็บ กำหนดส่ง
      $_SESSION['timeend']=array();
        while($row = $machine->fetch(PDO::FETCH_ASSOC)) {
      $time[$i] = ''; // กำหนดค่า default ให้ $time[$i]
      ?>

            <div class="col-sm-2 col-md-2" style="padding-top: 1cm;">
                <div class="thumbnail">
                    <?php 
           $disabled = ''; 
           if ($row['maintaince'] <> 0) {//เผื่อมีสถานะอื่นที่ไม่ใช่ 1
              $pic = 'image/installation-icon.jpg';
              $disabled = 'disabled';
              $text = 'ชำรุด';
              $alert = 'danger';
           }
          else if ($row['inuse'] == 1) {

             $m_id = $row['id'];
             $status = 'Y';
                    
                     $log = $db->prepare('SELECT Id,machine_id
                                           FROM tbl_logs
                                           WHERE machine_id = :m_id AND status = :status 
                                           ORDER BY Id DESC');
                    $log->bindParam(':m_id',$m_id,PDO::PARAM_STR);
                    $log->bindParam(':status',$status,PDO::PARAM_STR);
                    $log->execute();
                    $r = $log->fetch(PDO::FETCH_ASSOC);


                    $logs_id = $r['Id'];            
                    $mat = $db->prepare('SELECT title,barcode,call_on
                                           FROM tbl_material
                                           WHERE logs_id = :logs_id
                                           ORDER BY Id DESC');
                    $mat->bindParam(':logs_id',$logs_id,PDO::PARAM_STR);
                   // $mat->bindParam(':status',$status,PDO::PARAM_STR);
                    $mat->execute();
                    $r_mat = $mat->fetch(PDO::FETCH_ASSOC);
                   // print_r($r_mat);

                    $call_on = $r_mat['call_on'];
                    $call = $db->prepare('SELECT result_callno,result_time
                                           FROM tbl_result
                                           WHERE result_callno = :call_on ');
                    $call->bindParam(':call_on',$call_on,PDO::PARAM_STR);
                    $call->execute();
                    $r_call = $call->fetch(PDO::FETCH_ASSOC);

              $pic = 'image/User-Computer.png';
              $text = 'คืน';
              $alert = 'warning';
              $in = 'return';

              $Ti = $r_call['result_time']; // จาก DB เวลาหน่วยเป็นนาที
              $t = date('H:i', mktime(0,$Ti)); //แปลงเป็น XX:XX:XX

                if( !function_exists('secondsTime')) {
                    ///////////// แปลงจาก xx:xx:xx เป็นวินาที //////////////////
                    function secondsTime($examTime){
                        $time = explode(":", $examTime);
                        $h = $time[0]*3600;
                        $m = $time[1]*60;
                        $s = $time[2]*1;
                        $seconds = $h+$m+$s;
                      return $seconds;
                    }
                    // echo "<br>วินาที : ".$seconds = secondsTime($t);
                    ///////////////////////////////////////////////////////
                }
                       $seconds = secondsTime($t);

                // ///////////////// session เวลา ////////////////////
                if (!isset($_SESSION['timeend'][$i])){ 
                    unset($_SESSION['timeend'][$i]);
                    $endtime = time() + $seconds; 
                    $_SESSION['timeend'][$i] = $endtime; 
                } 

                ($_SESSION['timeend'][$i] - time()) < 0 ? $EndTime = 0 :  $EndTime = $_SESSION['timeend'][$i] - time();

                if($EndTime <= 0) { 
                    unset($_SESSION['timeend'][$i]);
                    //session_destroy(); 
                } 
                ////////////////////////////////////////////////////////


                // /////////////////////////////////////////////////
                 if( !function_exists('checkTime')) {
                    ///////////// แปบวจากวินาทีเป็น HH:MM:SS /////////////////
                    function checkTime($seconds){
                      $hours = floor($seconds / 3600);
                      $mins = floor(($seconds - ($hours*3600)) / 60);
                      $secs = floor(($seconds - ($hours*3600)) % 60);
                      $time = $hours.":".$mins.":".$secs;
                      return $time;
                      //แปลงเป็นวินาทีให้อยู่ในรูปแบบ xx:xx:xx
                    }
                     //$time = checkTime($EndTime);
                    //////////////////////////////////////////////////
                 }
                   $time[$i] = checkTime($EndTime);
                   print_r($time);
          }
          else {
              $pic = 'image/My-Computer-icon.png'; 
              $text = 'ยืม';
              $alert = 'primary';
              $in = 'add';
              $r_mat['title'] = '';
              $r_call['result_time'] = '';
              $r_mat['call_on'] = '';
          }
        ?>

           <button type="button" id="rev" class="btn btn-danger btn-xs" data-container="body" data-toggle="popover" data-placement="top" data-content='<form>รหัสนักศึกษา<input type="text" class="form-control" /><br> <button type="submit" class="btn btn-success btn-xs">ตกลง</button>&nbsp;<button type="reset" class="btn btn-warning btn-xs">ยกเลิก</button></form>'>จอง</button>
                        <img src="<?=$pic?>" alt="...">
                        <div class="caption">
                            <h5><?=$row['mName'];?></h5>
                            <p>
                                <?=$r_mat['call_on'];?>
                            </p>
                            <p class="text-primary">
                                <?=$r_mat['title'];?>
                            </p>
                            <p class="text-primary">ความยาว :
                                <?=$r_call['result_time'];?> นาที</p>
                            <p class="text-danger" id="dplay" data-i="<?=$i?>"></p>
                            <p><a href="Machineborrowform.php?action=<?=$in;?>&&id=<?=$row['id'];?>&&inuse=<?=$row['inuse'];?>" class="btn btn-<?=$alert?>" role="button" <?=$disabled?> > &nbsp;&nbsp;&nbsp;&nbsp;<?=$text?>&nbsp;&nbsp;&nbsp;&nbsp;</a>
                                <!--  <a href="javascript:if(confirm('ยืนยันการคืนทรัพยากร \r\n<?=$row['mName'] ?>')==true){window.location='return.php?id=<?=$row['id'];?>&&inuse=<?=$row['inuse'];?>';}" class="btn btn-default" role="button" <?=$a?> <?=$b?> >คืน</a> --></p>
                        </div>
                </div>
            </div>
            <?php 
$i++; 
} 
?>
</div>



Code (PHP)
 <script language="">
var times=JSONparse("<?=json_encode($time);?>");
var column = 0;
function chk_time(){
  var c = false;
  for( var i=0; i<times.length; i++) if( times[i]>'') { c=true; break;};
  return c;
}
function begintimer(){
  if ( !chk_time() ) return // ตรวจสอบ element ที่ยังอยู่ในการนับถอยหลัง
  if(times[column]==''){ 
    //ตรวจสอบ column ปัจจุบัน ไม่อยู่ในการนับถอยหลัง  
    column += (column+1)% times.length; 
    setTimeout( 'begintimer()' , 100);
    return;
  }
  var tm = times[column];
  var curtime = new Date();
  var target = new Date(tm);
  var sec=Math.floor((target.getTime() - curtime.getTime())/1000);
  var s=sec%60;
  var m=Math.floor(sec/60) % 60;
  var h=Math.floor(sec/3600);
  if(h|m|s){
    curtime = "เวลาที่เหลือ <font color=red> "+h+"</font> ชั่วโมง "+
      "<font color=red>"+m+" </font>นาที กับ <font color=red>"+s+" </font>วินาที ";
  }else{ curtime = "หมดเวลาแล้วจ้า"; times[column]='';}
  document.querySelector("[data-i='"+column+"']").innerHTML=curtime;
  setTimeout("begintimer()",1000)
}
</script>


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-25 09:50:52 By : littlebeer
 


 

No. 18



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



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

// ///////////////// session เวลา ////////////////////
086.if (!isset($_SESSION['timeend'][$i])){
087.unset($_SESSION['timeend'][$i]);
088.$endtime = time() + $seconds;
089.$_SESSION['timeend'][$i] = $endtime;
090.}
091.
092.($_SESSION['timeend'][$i] - time()) < 0 ? $EndTime = 0 : $EndTime = $_SESSION['timeend'][$i] - time();
093.
094.if($EndTime <= 0) {
095.unset($_SESSION['timeend'][$i]);
096.//session_destroy();
097.}
098.

ข้างบน เป็นกำหนดส่งที่เอามาจาก session มันส่งค่ามายังไงครับ
มันมีการลบ ข้อมูลทำให้ลำดับของ array ไม่คงที่ ให้ลำดับที่ในการกำหนด pointer ไม่ได้
ต้องกำหนดด้วย keyname

และที่สำคัญและง่ายกว่า น่าจะเอาเวลากำหนดส่งมาจาก ตารางเลยครับ ไม่ต้องเอามาจาก session
เข้าถึงแหล่งข้อมูลแล้ว เอาจากมันโดยตรงดีกว่า
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-25 11:40:44 By : NewbiePHP
 


 

No. 19



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



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


Code (PHP)
067.$Ti = $r_call['result_time']; // จาก DB เวลาหน่วยเป็นนาที
068.$t = date('H:i', mktime(0,$Ti)); //แปลงเป็น XX:XX:XX


result_time ซึ่งเก็บนาทีมาจาก DB เลยครับ แล้วก็เอามาแปลงเป็นในรูปแบบ XX:XX:XX
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-25 13:34:35 By : littlebeer
 


 

No. 20



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



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

ปรับใหม่ ไม่ต้องแปลง เวลาเอามาดิบๆ นั่นแหล่ะครับ
067 - 114 เอาออก
115.$time[$i] = date('Y-m-d H:i:s', strtotime($r_call['วันเวลาที่ยืม']) + ($r_call['result_time'] * 60) );

ใช้เวลากำหนดส่งที่เป็นจำนวนนาที ตรงๆ ไมได้ ต้องรวมกับ วันเวลาที่ยืม
แล้วทำให้เป็น Y-m-d H:i:s เพื่อเอาไปใช้นับเวลาถอยหลัง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-25 14:16:50 By : NewbiePHP
 


 

No. 21



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



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


มาช้าไปหน่อยครับ พอดีเพิ่งได้ลองทำ ตัด 067 - 114 เอาออก
แล้วเอา $time[$i] = date('Y-m-d H:i:s', strtotime($r_call['วันเวลาที่ยืม']) + ($r_call['result_time'] * 60) ); ใส่ไปแทน ก็ยังไม่ได้ครับ
เวลาที่แสดงก็ไม่ตรง

Code (PHP)
<div id="menu8" class="tab-pane fade">
    <?php
                  $machine = $db->prepare('SELECT mType,mName,maintaince,id,inuse, SUBSTRING(mName,-2,2) AS substr
                                           FROM  tbl_machine 
                                           WHERE mType = 10
                                           ORDER BY substr ASC');
                  $machine->execute();
      ?>

        <?php
      $i = 0;
      $time = array(); //กำหนด $time ให้เก็บเป็น array ไว้เก็บ กำหนดส่ง
      $_SESSION['timeend']=array();
        while($row = $machine->fetch(PDO::FETCH_ASSOC)) {
      $time[$i] = ''; // กำหนดค่า default ให้ $time[$i]
      ?>

            <div class="col-sm-2 col-md-2" style="padding-top: 1cm;">
                <div class="thumbnail">
                    <?php 
           $disabled = ''; 
           if ($row['maintaince'] <> 0) {//เผื่อมีสถานะอื่นที่ไม่ใช่ 1
              $pic = 'image/installation-icon.jpg';
              $disabled = 'disabled';
              $text = 'ชำรุด';
              $alert = 'danger';
           }
          else if ($row['inuse'] == 1) {

             $m_id = $row['id'];
             $status = 'Y';
                    
                     $log = $db->prepare('SELECT Id,machine_id,start
                                           FROM tbl_logs
                                           WHERE machine_id = :m_id AND status = :status 
                                           ORDER BY Id DESC');
                    $log->bindParam(':m_id',$m_id,PDO::PARAM_STR);
                    $log->bindParam(':status',$status,PDO::PARAM_STR);
                    $log->execute();
                    $r = $log->fetch(PDO::FETCH_ASSOC);


                    $logs_id = $r['Id'];            
                    $mat = $db->prepare('SELECT title,barcode,call_on
                                           FROM tbl_material
                                           WHERE logs_id = :logs_id
                                           ORDER BY Id DESC');
                    $mat->bindParam(':logs_id',$logs_id,PDO::PARAM_STR);
                   // $mat->bindParam(':status',$status,PDO::PARAM_STR);
                    $mat->execute();
                    $r_mat = $mat->fetch(PDO::FETCH_ASSOC);
                   // print_r($r_mat);

                    $call_on = $r_mat['call_on'];
                    $call = $db->prepare('SELECT result_callno,result_time
                                           FROM tbl_result
                                           WHERE result_callno = :call_on ');
                    $call->bindParam(':call_on',$call_on,PDO::PARAM_STR);
                    $call->execute();
                    $r_call = $call->fetch(PDO::FETCH_ASSOC);

              $pic = 'image/User-Computer.png';
              $text = 'คืน';
              $alert = 'warning';
              $in = 'return';

             echo $time[$i] = date('Y-m-d H:i:s', strtotime($r['start']) + ($r_call['result_time'] * 60) );
          }
          else {
              $pic = 'image/My-Computer-icon.png'; 
              $text = 'ยืม';
              $alert = 'primary';
              $in = 'add';
              $r_mat['title'] = '';
              $r_call['result_time'] = '';
              $r_mat['call_on'] = '';
          }
        ?>

           <button type="button" id="rev" class="btn btn-danger btn-xs" data-container="body" data-toggle="popover" data-placement="top" data-content='<form>รหัสนักศึกษา<input type="text" class="form-control" /><br> <button type="submit" class="btn btn-success btn-xs">ตกลง</button>&nbsp;<button type="reset" class="btn btn-warning btn-xs">ยกเลิก</button></form>'>จอง</button>
                        <img src="<?=$pic?>" alt="...">
                        <div class="caption">
                            <h5><?=$row['mName'];?></h5>
                            <p>
                                <?=$r_mat['call_on'];?>
                            </p>
                            <p class="text-primary">
                                <?=$r_mat['title'];?>
                            </p>
                            <p class="text-primary">ความยาว :
                                <?=$r_call['result_time'];?> นาที</p>
                            <p class="text-danger" id="dplay" data-i="<?=$i?>"></p>
                            <p><a href="Machineborrowform.php?action=<?=$in;?>&&id=<?=$row['id'];?>&&inuse=<?=$row['inuse'];?>" class="btn btn-<?=$alert?>" role="button" <?=$disabled?> > &nbsp;&nbsp;&nbsp;&nbsp;<?=$text?>&nbsp;&nbsp;&nbsp;&nbsp;</a>
                                <!--  <a href="javascript:if(confirm('ยืนยันการคืนทรัพยากร \r\n<?=$row['mName'] ?>')==true){window.location='return.php?id=<?=$row['id'];?>&&inuse=<?=$row['inuse'];?>';}" class="btn btn-default" role="button" <?=$a?> <?=$b?> >คืน</a> --></p>
                        </div>
                </div>
            </div>
            <?php 
$i++; 
} 
?>
</div>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-29 09:25:25 By : littlebeer
 


 

No. 22



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



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



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-29 12:23:33 By : littlebeer
 


 

No. 23



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



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

อยากเห็นโค๊ด HTML ทั้งหมดที่ถูกสร้างขึ้นเรียบร้อยที่อยู่บน Browser ครับ
ช่วย วิวซอร์ส มาลงให้ดูหน่อยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-29 19:26:12 By : NewbiePHP
 


 

No. 26



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



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


อันนี้แบบไฟล์ .php

https://www.dropbox.com/s/8askvkkq8blw0fr/tabsmenu.7z?dl=0
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-30 08:53:33 By : littlebeer
 


 

No. 27



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



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

ึคห. 24-25 แก้เป็นแบบ คห 26 ก็ดีนะครับ 5555 ยาวเกิน แต่ผมก๊อปมาแล้ว เดี๋ยวดูให้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-09-30 13:15:11 By : NewbiePHP
 


 

No. 28



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



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


ตอบความคิดเห็นที่ : 27 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-09-30 13:15:11
รายละเอียดของการตอบ ::


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-10-01 09:33:56 By : littlebeer
 

   

ค้นหาข้อมูล


   
 

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