มีปัญหาเรื่องสร้างเงื่อนไขก่อนการบันทึกข้อมูล กับข้อมูลที่ใช้ loop for
คือติดปัญหาเรื่องการสร้างเงื่อนไขให้กับข้อมูล ดังนี้
1. กำหนดเงื่อนไขว่า ตัวแปล A ต้องไม่เท่ากับ ฟิลล์ A ในตาราง A
หรือ ตัวแปล B ต้องไม่เท่ากับ ฟิลล์ B ในตาราง B
ซึ่งหากเข้าเงื่อนไข ตัวใดตัวหนึ่ง ข้อมูลต้องไม่บันทึก
แต่กลับเข้าเงื่อนไขตาราง A เท่านั้น ซึ่งตาราง B ยังสามารถบันทึกข้อมูลได้
2. ตัวแปล B มีข้อมูลมากกว่า 1 ตัว ซึ่งใช้ loop for ในการเลือกจำนวนและเด้ง textfild ขึ้นมาตามจำนวนที่เลือก ดังรูป
3. ความต้องการ : หากข้อมูลซ้ำแม้แต่ตัวเดียว ทั้งของตัวแปล A และ B จะไม่สามารถบันทึกข้อมูลได้ มีวิธีทำอย่างไรค่ะ ขอคำแนะนำด้วยค่ะ >/\<
ฟอร์มการกรอกข้อมูล
Code (PHP)
<form name="drb_add" id="drb_add" method="POST" enctype="multipart/form-data" action="drb_addNew.php">
<table width="784" border="0">
<tr>
<td style="padding:10px"><font color="#2A5FAA">จำนวน</font><font color="#FF0000"><strong>*</strong></font></td>
<td style="padding:10px"><div class="row"><div class="col-xs-3">
<select name="menu1" id="menu1" onChange="MM_jumpMenu('parent',this,0)" class="btn btn-default dropdown-toggle">
<?php
for($i=0;$i<=20;$i++)
{
if($_GET["Line"] == $i)
{
$sel = "selected";
}
else
{
$sel = "";
}
?>
<option value="<?php echo $_SERVER["PHP_SELF"];?>?Line=<?php echo $i;?>"<?php echo $sel;?> ><?php echo $i;?></option>
<?php } ?></select>
<input type="hidden" name="drb_pd_amount" value="<?php echo $_GET["Line"];?>"> <!--- >> เก็บค่าจำนวน ----->
</div><font size="2"><strong>**กรุณาเลือกจำนวนตั้งแต่ 1 ขึ้นไป**</strong></font>
</div></td></tr>
<tr>
<td style="padding:10px"><font color="#2A5FAA">รหัสเฉพาะของครุภัณฑ์</font><font color="#FF0000"><strong>*</strong></font></td>
<td style="padding:10px">
<?php
$line = $_GET["Line"];
if($line == 0){$line=1;}
for($i=1;$i<=$line;$i++)
{
?>
<div class="row"><div class="col-xs-5">
<input type="text" name="drb_pd_codeT<?php echo $i;?>" id="drb_pd_codeT" placeholder="เช่น GE-001-999-9999/59" minlength="15" maxlength=20
class="form-control" style="font-size:14px" onKeyPress="return KeyCodeT(drb_pd_codeT)" OnChange="JavaScript:doCallAjaxT();" required>
<span id="mySpanT"></span></div>
<strong><font size="2">เช่น GE-001-999-9999/</font><font size="2" color="#FF0000">59</font>
<font size="2"> (</font><font size="2" color="#FF0000">59</font><font size="2">=ปีที่รับเข้า)</font><br>
<font size="2">**ระบุตัวเลข/อักษร อย่างน้อย 15 หลัก**</font></strong></div>
<?php } ?></td></tr>
<tr>
<td height="10" width="120" style="padding:10px"><font color="#2A5FAA">หมวดหมู่</font><font color="#FF0000"><strong>*</strong></font></td>
<td style="padding:10px">
<select id="drb_cg_id" name="drb_cg_id" class="btn btn-default dropdown-toggle" onChange="explain(this)" required>
<option value="">เลือกหมวดหมู่</option>
<option value="01">01 - เครื่องมือไฟฟ้า</option>
<option value="02">02 - เครื่องมือวัด</option>
<option value="03">03 - เครื่องมือสื่อสาร</option>
<option value="04">04 - เครื่องมือทั่วไป</option>
<option value="05">05 - เครื่องมือลม</option>
<option value="06">06 - เครื่องมืออื่นๆ</option>
</select></td>
</tr>
<tr>
<td style="padding:10px"><font color="#2A5FAA">รหัสครุภัณฑ์</font><font color="#FF0000"><strong>*</strong></font></td>
<td style="padding:10px">
<div class="row"><div class="col-xs-3">
<input type="text" size="5" class="form-control" id="drb_pd_codeSE" name="drb_pd_codeSE" style="font-size:14px"
placeholder="เช่น GL-ES-00" value="" readonly required>
</div>
<input type="hidden" id="drb_cg" value=""> <!--ใช้เก็บค่ารหัสหมวดหมู่เพื่อนำไปเช็คค่าซ้ำ-->
<div class="col-xs-3">
<input type="text" id="drb_pd_codeChk" name="drb_pd_codeChk" minlength="3" maxlength=3 placeholder="เช่น 001" value=""
onKeyUp="if(isNaN(this.value)){ alert('กรุณากรอกตัวเลข'); this.value='';}" class="form-control" style="font-size:14px"
OnChange="JavaScript:doCallAjax();" required><span id="mySpan"></span>
</div>
<font size="2"><strong>**ระบุตัวเลข 3 หลัก**</strong></font>
</div></td></tr>
<tr>
<td></td>
<td style="padding:20px">
<input type="submit" name="add_drb" id="add_drb" class="btn btn-success" value="บันทึก" onClick="return check();">
<input type="hidden" name="hdnLine" value="<?php echo $i;?>"><!---- แถวรหัสเฉพาะหลายแถว ---->
<input type="button" name="can_drb" id="can_drb" class="btn btn-danger" onClick="window.location.href='drb_list.php'" value="ยกเลิก">
</td>
</tr></table></form>
โค้ดที่ใช้บันทึกข้อมูล A(ตัวแปล $_POST["drb_pd_codeSE"] และ $_POST["drb_pd_codeChk"] ,ตาราง drb_product)
และ B(ตัวแปล $_POST["drb_pd_codeT$i"] ,ตาราง drb_product_up)
Code (PHP)
<!--------------------- การ ADD ลงฐานข้อมูล ---------------------->
<?php
$drb_pd_img = $_POST['drb_pd_img'];
// เช็ครหัสครุภัณฑ์ ไม่ให้ซ้ำกับที่มีในฐานข้อมูล หากซ้ำจะไม่สามารถบันทึกข้อมูลได้ //
$strSQL1 = " SELECT * FROM drb_product WHERE drb_pd_code = 'GL-ES-".$_POST["drb_pd_codeSE"]."' ";
$objQuery1 = mysql_query($strSQL1) or die ("Error Query [".$strSQL1."]");
$objResult1 = mysql_fetch_array($objQuery1);
$strSQL2 = " SELECT * FROM drb_product_up WHERE drb_pd_codeT = '".$_POST["drb_pd_codeT"]."' ";
$objQuery2 = mysql_query($strSQL2) or die ("Error Query [".$strSQL2."]");
$objResult2 = mysql_fetch_array($objQuery2);
//-----------------------------------------------------------------------------------------------//
if(isset($_POST['add_drb']))
{
if(!$objResult1 || !$objResult2)
{
// การเพิ่มข้อมูล ตางราง drb_product //
$in = " INSERT INTO drb_product(drb_cg_id,drb_pd_code,drb_pd_name,drb_pd_amount,drb_pd_amt,drb_pd_type,drb_pd_state,drb_pd_img)
VALUES('".$_POST["drb_cg_id"]."','".$_POST["drb_pd_codeSE"]."".$_POST["drb_pd_codeChk"]."','".$_POST["drb_pd_name"]."',
'".$_POST["drb_pd_amount"]."','".$_POST["drb_pd_amount"]."','".$_POST["drb_pd_type"]."','".$_POST["drb_pd_state"]."','$drb_pd_img') ";
$q = mysql_query($in,$durable_connect);
for($i=1;$i<=$_POST["hdnLine"];$i++)
{
if($_POST["drb_pd_codeT$i"] != "")
{
$sqlPD = "INSERT INTO drb_product_up ";
$sqlPD .="(drb_pd_code,drb_pd_codeT,drb_pd_price,drb_pd_shop,drb_pd_date,drb_pdup_amt,drb_st_after) ";
$sqlPD .="VALUES ";
$sqlPD .="( '".$_POST["drb_pd_codeSE"]."".$_POST["drb_pd_codeChk"]."','".$_POST["drb_pd_codeT$i"]."', ";
$sqlPD .=" '".$_POST["drb_pd_price"]."','".$_POST["drb_pd_shop"]."','".$_POST["drb_pd_date"]."','1','1' ) ";
$qryPD = mysql_query($sqlPD,$durable_connect);
}
}
}
if($q && $qryPD)
{ echo "<script>alert('ทำรายการสำเร็จ!')</script>"; }
else if($q)
{ echo "<script>alert('บันทึกตัวหลัก')</script>"; }
else if($qryPD)
{ echo "<script>alert('บันทึกรับเข้า')</script>"; }
else
{ echo "<script>alert('ทำรายการไม่สำเร็จ! โปรดตรวจสอบให้แน่ใจก่อนการบันทึก ว่าระบุข้อมูลถูกต้องครบถ้วนแล้วหรือไหม?')</script>"; }
}mysql_close($durable_connect); ?>
Tag : PHP, MySQL
ประวัติการแก้ไข 2016-04-16 14:29:37
Date :
2016-04-16 14:26:59
By :
hiyingzha
View :
836
Reply :
1
มีใครพอมีแนวทางหรือวิธีแนะนำการเขียนบ้างไหมค่ะ T/\T
Date :
2016-04-19 18:01:22
By :
hiyingzha
Load balance : Server 01