|
|
|
ให้ สุ่ม ออกมา แล้วไม่เกิน จำนวนครั้งที่แต่ละคนมี ไม่ให้ ติดลบ (ช่วยหน่อยน่ะค่ะ หนูสุ่มแล้วมันเกินจำนวนครั้งที่มี ทำให้ได้ ค่าติดลบ อ่าค่ะ Y^Y) |
|
|
|
|
|
|
|
Code (PHP)
<body>
<div id="wrap">
<?php include("inc/head.html") ?>
<div class="right">
<br />
<h2>จัดตารางห้องสอบ</h2>
<br />
<form id="form1" name="form1" method="post" action="scheduling.php">
<h4>
<table width="95%" >
<tr align="center" bgcolor="#9966FF">
<td width="10%" >วันที่สอบ</td>
<td width="6%" >ห้อง</td>
<td width="10%" >เวลา</td>
<td width="15%" >ชื่อรายวิชา</td>
<td width="13.5%" >กรรมการคุมสอบ</td>
<td width="13.5%" >กรรมการคุมสอบ</td>
<td width="13.5%" >กรรมการคุมสอบ</td>
<td width="13.5%" >กรรมการคุมสอบ</td>
</tr>
<!-- $sql = "select I_name,NumInvigilator from invigilator where NumInvigilator >= 0 order by I_name asc";
$rs = mysql_query($sql,$conn) or die ("Error Query [".$sql."]");
while ($objResult = mysql_fetch_array($rs)){
for($i=1; $i <= $objResult["NumInvigilator"];$i++){
echo $objResult["I_name"]."<br>";
}
} -->
<?php
while($row = mysql_fetch_array($result))
{
if(in_array($row['Subj_id'],$dup_sub_id_array)) // ในกรณี วิชาเดียวสอบสองห้อง
{
$sql = "select * from invigilator where NumInvigilator >= 0 and Posi_id = 3 AND I_id !=".$row['I_id']." ORDER BY RAND() LIMIT 1 " ;
//echo $sql;
$rst = mysql_query($sql);
$invigilator = mysql_fetch_array($rst);
$I_name = $invigilator['I_name'];?><input type="hidden" name="name_numdel_fix1[]" value="<?php echo $invigilator['I_id'];?>"/></td> <?php
$I_id = $invigilator['I_id'];
} else
{
$I_name = $row['I_name'];
$I_id = $row['I_id'];?><input type="hidden" name="name_numdel_fix1[]" value="<?php echo $I_id;?>"/></td> <?php
} // ปิด ในกรณี วิชาเดียวสอบสองห้อง
?>
<tr bgcolor="#CCCCCC" align="center">
<td><?php echo $row['Date']; ?>
<input type="hidden" name="Date" value="<?php echo $row['Date'];?>"/>
</td>
<td><?php echo $row['Room']; ?>
<input type="hidden" name="Room" value="<?php echo $row['Room'];?>"/>
</td>
<td><?php echo $row['Time_show']; ?>
<input type="hidden" name="Time_show" value="<?php echo $row['Time_show'];?>"/>
</td>
<td><?php echo $row['Subj_name']; ?>
<input type="hidden" name="Subj_name" value="<?php echo $row['Subj_name'];?>"/>
</td>
<td style="color: #00D"><?php echo $I_name ?>
<input type="hidden" name="name[]" value="<?php echo $I_name;?>"/>
</td>
<td style="color: #00D">
<?php
$sql = "select * from invigilator where NumInvigilator >= 0 and I_id = ".$I_id ;
$rst = mysql_query($sql,$conn) or die ("Error Query [".$sql."]");
while ($invigilator_condition = mysql_fetch_array($rst))
{
for($i=1; $i <= $invigilator_condition["NumInvigilator"];$i++)
{
//echo $invigilator_condition['I_name'] ;
//$result1 = mysql_query($sql);
//$invigilator_condition = mysql_fetch_array($result1);
$sex = $invigilator_condition['I_sex'];
$status = $invigilator_condition['I_status'];
$position = $invigilator_condition['Posi_id'];
}
}
$sql_subj = "SELECT Subj_type,Subj_name FROM subject WHERE Subj_id =".$row['Subj_id'] ;
$result_subj = mysql_query($sql_subj);
$Subj_condition = mysql_fetch_array($result_subj);
$subject = $Subj_condition['Subj_type'];
$subject_name = $Subj_condition['Subj_name'];
/*ตั้งให้เจ้าหน้าที่เป็นหลัก*/
/*กำหนดเจ้าหน้าที่เป็นหลักวิชาทั่วไป*/
if( $sex == 'male' && $status == 'new' && $position == 2 && $subject == 'lecture')
{
$sql ="select * from invigilator where NumInvigilator >= 0 and Posi_id = 3 and NumInvigilator >0 and I_sex ='female' and I_status = 'old' ORDER BY RAND() LIMIT 1,1";
// $result_name = mysql_query($sql);
}
if($sex == 'male' && $status == 'old' && $position == 2 && $subject == 'lecture')
{
$sql ="select * from invigilator where NumInvigilator >= 0 and Posi_id = 3 and NumInvigilator >0 and I_sex ='female' and I_status = 'new' ORDER BY RAND() LIMIT 1,1";
}
if($sex == 'female' && $status == 'new' && $position == 2 && $subject == 'lecture')
{
$sql ="select * from invigilator where NumInvigilator >= 0 and Posi_id = 3 and NumInvigilator >0 and I_sex ='male' and I_status = 'old' ORDER BY RAND() LIMIT 1,1";
}
if($sex == 'female' && $status == 'old' && $position == 2 && $subject == 'lecture')
{
$sql ="select * from invigilator where NumInvigilator >= 0 and Posi_id = 3 and NumInvigilator >0 and I_sex ='male' and I_status = 'new' ORDER BY RAND() LIMIT 1,1";
}
// ส่วนที่แสดง ชื่อออก มา
$result_name = mysql_query($sql);
while($I_name_random = mysql_fetch_array($result_name))
{
echo $I_name_random['I_name'] ;?>
<input type="hidden" name="name_numdel_fix2[]" value="<?php echo $I_name_random['I_id'];?>"/>
<input type="hidden" name="name1[]" value="<?php echo $I_name_random['I_name'];?>"/>
<?php
}
?>
</td>
ทำยังไงให้มัน สุ่ม ออกมาตามจำนวนครั้ง แต่ละคนมี ไม่ให้ เกิน ทำให้ค่า มันติดลบ บางค่ะะ ช่วยดูให้หน่อยได้มั้ยค่ะ จนปัญญา แล้วค่ะ Y^Y
Tag : PHP, MySQL
|
|
|
|
|
|
Date :
2012-10-02 14:42:09 |
By :
น้ำหวาน ค่ะ |
View :
1056 |
Reply :
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขออนุญาต ไม่อ่านโค้ดนะครับ เพราะอาจจะทำให้ผมงง และก็มึนได้ แต่จะให้การแนะนำดังนี้ครับ
สิ่งที่เราต้องใช้คือเครื่องหมาย modular หรือ % ครับ (หารเอาเศษ) ยกตัวอย่างเช่น ถ้าเรามีการ loop ตั้งแต่
1 - 10 แล้วถ้า mod ด้วย 3 นั่นหมายความว่า ถ้าค่าใน loop มากกว่า 3 ค่าที่ได้ออกมาจะมีค่าตั้งแต่ 0 - 2 เท่านั้น
ผมหวังว่าตัวอย่างที่ผมยกมานั้นน่าจะช่วยคุณเจ้าของกระทู้ได้นะครับ
|
|
|
|
|
Date :
2012-10-02 20:58:11 |
By :
smeproject |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พอจะยกตัวอย่าง เป็น โค้ด ให้ดู หน่อยได้มั้ยค่ะ มันยังไม่เห็น ภาพอ่าค่ะ รบกวน อีกสักครั้งได้มั้ย ค่ะๆๆ คุณ smeproject
|
|
|
|
|
Date :
2012-10-03 00:41:55 |
By :
น้ำหวาน ค่ะ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมแนะนำนะครับ ถ้าอยากได้ทางออกไวๆ เอาแค่ code ส่วนที่ทำการ random(สุ่ม) ออกมาครับ จะช่วยได้ไวมากครับ
|
|
|
|
|
Date :
2012-10-03 01:35:25 |
By :
slashzy |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|