|
|
|
ช่วยแก้โค๊ดผมหน่อยครับ insert ตารางรายละเอียด เข้าแค่บันทัดเดียวทั้งๆที่ข้อมูลมีหลายบันทัด |
|
|
|
|
|
|
|
คือหน้าฟอร์มของผมมัน insert 2 ตารางครับ ตารางหลักได้แล้ว แต่ตารางรายละเอียดมันเข้าแค่บันทัดเดียวทั้งที่ข้อมูลมีหลายบันทัดครับ
ผมลองหลายๆวิธีไม่ได้สักทีครับ รบก่วนพี่ๆหน่อยน่ะครับ
ลักษณะหน้าฟอร์มครับ
แล้วก็โค๊ดหน้าฟอร์มหลักครับ
Code (PHP)
<?
session_start();
mysql_connect('localhost','root','12345');
mysql_select_db('medical_db');
$strSQL = "SELECT * FROM person p
WHERE per_id = '".$_SESSION['per_id']."' ";
$objQuery = mysql_query($strSQL);
$objResult = mysql_fetch_array($objQuery);
?>
<h1 class="h1">บันทึกรายการที่เบิก</h1>
<form method="post" action="ActionController.php?action=checkorder/InsertReceive">
<!-- อ่านที่มาของการเบิก -->
<table width="300px">
<tr>
<? $name = $order["per_name"];?>
<? $lastname = $order["last_name"];?>
<td><center>เลขที่ใบเบิก</center></td>
<td><center>วันที่เบิก</center></td>
</tr>
<tr>
<td><center><?php echo $order["pay_id"]; ?></center></td>
<td><center><?php echo $order["pay_date"]; ?></center></td>
</tr>
</br><br/>
</table>
<!-- บันทึกลงตารางรายละเอียดใบเบิก -->
<?
include_once("function/OrderDataAccess.php");
$orders = readAllOrderDetail();
?>
<table>
<tr>
<th scope="col">ลำดับ</th>
<th scope="col">ชื่อเวชภัณฑ์</th>
<th scope="col">จำนวน</th>
<th scope="co1">สถานะ</th>
</tr>
<?php
foreach($orders as $order)
{
?>
<tr>
<input type="hidden" name="me_id" id="me_id" class="" value="<?= $order["me_id"]; ?>"/>
<td><center>
<?php echo $order["p_id"]; ?>
</center></td>
<td>
<input type="text" name="me_name" id="me_name" class="" value="<?= $order["me_name"]; ?>"/>
</td>
<td>
<input size="2" type="text" name="amount" id="amount" class="" value="<?= $order["amount"]; ?>"/>
</td>
<td>
<select name="status" id="status">
<option value="1"> ยังไม่อนุมัติ </option>
<option value="2"> จ่ายแล้ว </option>
<option value="3"> จ่ายบางส่วน </option>
<option value="3"> ค้างจ่าย </option>
</select>
</td>
</tr>
</br></br>
<?php
}
?>
</table>
<!-- บันทึกลงตารางหลัก -->
<table>
<tr>
<input type="hidden" name="per_id" id="per_id" value="<?=$objResult['per_id']?>" />
<td scope="col">ผู้เบิก : </td>
<td scope="col">ผู้อนุมัติ : </td>
<td scope="col">วันที่อนุมัติ : </td>
</tr>
<tr>
<td>
<input type="text" name="per_id2" id="per_id2" class="" value="<?= $name ?> <?= $lastname ?>"/>
</td>
<td>
<input type="text" name="per_name" id="per_name" class="" value="<?=$objResult["per_name"];?> <?=$objResult["last_name"];?>"/>
</td>
<td>
<input type="text" name="pad_date" id="pad_date" class="" value="<?=date('m-d-Y')?>"/>
</td>
</tr>
</br><br/>
</table>
<br/><br/><br/><br/><br/><br/>
<input type="hidden" name="hdnMaxLine" value="0">
<center><input type="submit" name="btnSubmit" value="ตกลง"></center>
</form>
หน้าบันทึกลงฐานครับ InsertReceive.php
Code (PHP)
<?
session_start();
?>
<?php
$con = mysql_pconnect('localhost','root','12345');
if (!$con)
{
echo "Can't connect to database";
}
mysql_select_db('medical_db', $con);
$sql="INSERT INTO paid (per_id, per_id2, pad_date) VALUES('$_POST[per_id]','$_POST[per_id2]','$_POST[pad_date]')";
mysql_query($sql,$con) or die(mysql_error()."<br />".$sql);
$last_id = mysql_insert_id();
$sql1="INSERT INTO paid_detail (pad_id, me_id, amount, status) VALUES( '$last_id' ,'{$_POST["me_id"]}' , '{$_POST["amount"]}' , '{$_POST["status"]}' )";
mysql_query($sql1,$con) or die(mysql_error()."<br />".$sql1);
echo "<h4> Save 2 Successful.</h4>";
mysql_close($con)
?>
ประมาณนี้ครับไม่ทราบว่าต้องแก้ตรงไหนครับ
ผมทำหลายรอบยังไม่ได้สักทีครับ
ขอบคุณครับ
Tag : PHP, MySQL
|
|
|
|
|
|
Date :
2012-02-23 14:49:31 |
By :
Mr.mee |
View :
1264 |
Reply :
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ชื่อ input ต้องเป็น array ครับ
เช่น
Code (PHP)
1<input type="text" name="name[]" value="">
2<input type="text" name="name[]" value="">
3<input type="text" name="name[]" value="">
4<input type="text" name="name[]" value="">
for($i=0;$i<count($_POST['name']);$i++)
{
echo "<br>".$_POST['name'][$i];
}
|
ประวัติการแก้ไข 2012-02-23 14:58:02
|
|
|
|
Date :
2012-02-23 14:57:27 |
By :
mangkunzo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<?php
foreach($orders as $order)
{
?>
<tr>
<input type="hidden" name="me_id" id="me_id" class="" value="<?= $order["me_id"]; ?>"/>
<td><center>
<?php echo $order["p_id"]; ?>
</center></td>
<td>
<input type="text" name="me_name" id="me_name" class="" value="<?= $order["me_name"]; ?>"/>
</td>
<td>
<input size="2" type="text" name="amount" id="amount" class="" value="<?= $order["amount"]; ?>"/>
</td>
<td>
<select name="status" id="status">
<option value="1"> ยังไม่อนุมัติ </option>
<option value="2"> จ่ายแล้ว </option>
<option value="3"> จ่ายบางส่วน </option>
<option value="3"> ค้างจ่าย </option>
</select>
</td>
</tr>
</br></br>
<?php
}
?>
ใช้ foreach ลูปแสดงข้อมูล แต่ใช้ name="me_id" id="me_id" name="me_name" id="me_name" name="amount" id="amount" เหมือนกันหมด มันเลยได้แต่ข้อมูลอันแรก
ควรใช้เป็นอาร์เรย์ name="me_name[]" ไม่ต้องมี id="me_name" ก็ได้ ใส่ [] หลัง id name amount
ในหน้า insert เช็คค่า
Code (PHP)
$x = count($_POST['me_id'])-1;
for($i=0;$i<=$x;$i++) // วนเช็คว่ามีกี่ตัว
{
$id = $_POST['me_id'][$i];
$name = $_POST['me_name'][$i]; // รับค่าที่ละตัว
$amount = $_POST['amount'][$i];
$sql = mysql_query("insert...................."); // ลง DB;
}
|
|
|
|
|
Date :
2012-02-23 15:08:30 |
By :
randOmizE |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณทุกคำแนะนำครับ
ผมลองทำใหม่แล้วตามที่พี่แนะยังไม่ได้ครับ
Code ครับ
Code (PHP)
<?php
foreach($orders as $order)
{
?>
<tr>
<input type="hidden" name="me_id[]" class="" value="<?= $order["me_id"]; ?>"/>
<td><center>
<?php echo $order["p_id"]; ?>
</center></td>
<td>
<input type="text" name="me_name[]" class="" value="<?= $order["me_name"]; ?>"/>
</td>
<td>
<input size="2" type="text" name="amount[]" class="" value="<?= $order["amount"]; ?>"/>
</td>
<td>
<select name="status[]" >
<option value="1"> ยังไม่อนุมัติ </option>
<option value="2"> จ่ายแล้ว </option>
<option value="3"> จ่ายบางส่วน </option>
<option value="3"> ค้างจ่าย </option>
</select>
</td>
</tr>
</br></br>
<?php
}
?>
หน้า insert ครับ
Code (PHP)
$last_id = mysql_insert_id();
$x = count($_POST['me_id'])-1;
for($i=0;$i<=$x;$i++) // วนเช็คว่ามีกี่ตัว
{
$id = $_POST['me_id'][$i];
$name = $_POST['me_name'][$i]; // รับค่าที่ละตัว
$amount = $_POST['amount'][$i];
$status = $_POST['status'][$i];
$sql2 = "INSERT INTO paid_detail (pad_id, me_id, amount, status) VALUES ('$last_id', $id, $name, $amount, $status)"; // ลง DB;
mysql_query($sql2,$con) or die(mysql_error()."<br />".$sql2);
}
echo "<h4> Save 2 Successful.</h4>";
mysql_close($con)
แก้แบบนี้ไหมครับ
|
|
|
|
|
Date :
2012-02-23 20:10:22 |
By :
Mr.mee |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Date :
2012-02-24 00:18:22 |
By :
Mr.mee |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เงียบ....
|
|
|
|
|
Date :
2012-02-24 13:11:45 |
By :
Mr.mee |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่มีใครช่วยผมเลยหรอ
|
|
|
|
|
Date :
2012-02-24 16:08:58 |
By :
Mr.mee |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|