 |
INSERT ลงฐานข้อมูลไม่สำเร็จ และขึ่นข้อความ Notice: Undefined index |
|
 |
|
|
 |
 |
|
INSERT ลงฐานข้อมูลไม่สำเร็จ และขึ่นข้อความ Notice: Undefined index: date_tracking2 in phpMySQLAddSave.php on line 79
Save Done. Click here to view.
อยากทราบว่าทำเพราะเหตุใดมันถึงไม่บันทึกลงฐานข้อมูลครับ น่าจะมี code ผิดพลาด ผมนั่งงมมา 3-4 วันแล้วครับ ยังแก้ไม่ได้ซักที รบกวนพี่ๆ ด้วยตรวจสอบด้วยครับ ขอบคุณมากครับ
จาก Code นี้ครับ
Code (PHP)
<html>
<head>
<title>ThaiCreate.Com PHP & MySQL Tutorial</title>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
//-->
</script>
</head>
<body>
<form action="phpMySQLAddSave.php" name="frmAdd" method="post">
Select Line :
<select name="menu1" onChange="MM_jumpMenu('parent',this,0)">
<?php
for($i=1;$i<=50;$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>
<table width="600" border="1">
<tr>
<th width="91"> <div align="center">Date Tracking NO. </div></th>
<th width="160"> <div align="center">Customer Name </div></th>
<th width="198"> <div align="center">Track Number</div></th>
<th width="97"> <div align="center">Post Code</div></th>
</tr>
<?php
$line = $_GET["Line"];
if($line == 0){$line=1;}
for($i=1;$i<=$line;$i++)
{
?>
<tr>
<td><div align="center"><input type="text" name="date_tracking<?php echo $i;?>" size="30"></div></td>
<td><input type="text" name="customer_name<?php echo $i;?>" size="30"></td>
<td><input type="text" name="track_number<?php echo $i;?>" size="30"></td>
<td><div align="center"><input type="text" name="post_code<?php echo $i;?>" size="30"></div></td>
</tr>
<?php
}
?>
</table>
<input type="submit" name="submit" value="submit">
<input type="hidden" name="hdnLine" value="<?php echo $i;?>">
</form>
</body>
</html>
และต่อด้วย
Code (PHP)
<?ob_start();?>
<?php
session_start();
if (!isset($_SESSION["manager"])) {
header("location: admin_login.php");
exit();
}
// Be sure to check that this manager SESSION value is in fact in the database
$managerID = preg_replace('#[^0-9]#i', '', $_SESSION["id"]); // filter everything but numbers and letters
$manager = preg_replace('#[^A-Za-z0-9]#i', '', $_SESSION["manager"]); // filter everything but numbers and letters
$password = preg_replace('#[^A-Za-z0-9]#i', '', $_SESSION["password"]); // filter everything but numbers and letters
// Run mySQL query to be sure that this person is an admin and that their password session var equals the database information
// Connect to the MySQL database
include "../storescripts/connect_to_mysql.php";
$conn = new mysqli($db_host,$db_username,$db_pass,$db_name);
mysqli_query($conn, "SET NAMES 'utf8'");
mysqli_query($conn, "SET CHARACTER SET 'utf8'");
$sql = "SELECT * FROM admin WHERE id='$managerID' AND username='$manager' AND password='$password' LIMIT 1"; // select table
$result = $conn->query($sql); // count the output amount query the person
// ------- MAKE SURE PERSON EXISTS IN DATABASE ---------
$existCount = mysqli_num_rows($result); // count the row nums
/*if ($existCount == 0) { // evaluate the count
echo "Your login session data is not on record in the database.";
exit();
}
*/
?>
<?php
// Script Error Reporting
error_reporting(E_ALL);
ini_set('display_errors', '1');
?>
<html>
<head>
<title>ThaiCreate.Com PHP & MySQL Tutorial</title>
</head>
<body>
<?php
$conn = new mysqli($db_host,$db_username,$db_pass,$db_name);
for($i=1;$i<=$_POST["hdnLine"];$i++)
{
if($_POST["date_tracking$i"] != "")
{
$strSQL = "INSERT INTO tracking ";
$strSQL .="(date_tracking,customer_name,track_number,post_code) ";
$strSQL .="VALUES ";
$strSQL .="('".$_POST["date_tracking$i"]."','".$_POST["customer_name$i"]."' ";
$strSQL .="'".$_POST["track_number$i"]."' ";
$strSQL .=",'".$_POST["post_code$i"]."') ";
$objQuery = $conn->query($strSQL);
}
}
echo "Save Done. Click <a href='phpMySQLListRecord.php'>here</a> to view.";
mysqli_close($conn);
?>
</body>
</html>
อ้างอิงมาจากที่นี้ครับ https://www.thaicreate.com/php/php-mysql-add-insert-multiple-record.html
Tag : PHP, MySQL, JavaScript
|
|
 |
 |
 |
 |
Date :
2016-03-18 13:28:19 |
By :
bill10 |
View :
1019 |
Reply :
10 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณมากครับ แต่ประเด็นมันคือ ถึงผมจะแก้ให้ไม่ขึ้นข้อความ Notice: Undefined index แล้ว มันก็ยังไม่ยอมเพิ่มข้อมูล ลงฐานข้อมูลครับ
|
 |
 |
 |
 |
Date :
2016-03-18 14:09:08 |
By :
bill10 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
พยายามอย่าใช้วิธีต่อสตริงถ้าไม่จำเปน ไม่งั้นจะงง
Code (PHP)
$strSQL = "INSERT INTO tracking(
date_tracking
, customer_name
, track_number
, post_code
)
VALUES(
'".$_POST["date_tracking$i"]."'
,'".$_POST["customer_name$i"]."'
, '".$_POST["track_number$i"]."'
, '".$_POST["post_code$i"]."'
)";
$objQuery = $conn->query($strSQL);
|
 |
 |
 |
 |
Date :
2016-03-18 15:11:35 |
By :
arm8957 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณครับ ผมเพิ่งมาเห็นครับ
พอดีมั่งนั่งมั่วเอง ได้แล้วครับ ตามนี้ครับ แต่ติดตรงวันที่ครับ .$_POST["now()$i"]."') ไม่รู้จะต้องใส่ยังไงให้มันอัพเดทวันได้ครับ ตอนนี้มันเป็น 0000-00-00 00:00:00 ครับ
Code (PHP)
<?ob_start();?>
<?php
session_start();
if (!isset($_SESSION["manager"])) {
header("location: admin_login.php");
exit();
}
// Be sure to check that this manager SESSION value is in fact in the database
$managerID = preg_replace('#[^0-9]#i', '', $_SESSION["id"]); // filter everything but numbers and letters
$manager = preg_replace('#[^A-Za-z0-9]#i', '', $_SESSION["manager"]); // filter everything but numbers and letters
$password = preg_replace('#[^A-Za-z0-9]#i', '', $_SESSION["password"]); // filter everything but numbers and letters
// Run mySQL query to be sure that this person is an admin and that their password session var equals the database information
// Connect to the MySQL database
include "../storescripts/connect_to_mysql.php";
$conn = new mysqli($db_host,$db_username,$db_pass,$db_name);
mysqli_query($conn, "SET NAMES 'utf8'");
mysqli_query($conn, "SET CHARACTER SET 'utf8'");
$sql = "SELECT * FROM admin WHERE id='$managerID' AND username='$manager' AND password='$password' LIMIT 1"; // select table
$result = $conn->query($sql); // count the output amount query the person
// ------- MAKE SURE PERSON EXISTS IN DATABASE ---------
$existCount = mysqli_num_rows($result); // count the row nums
/*if ($existCount == 0) { // evaluate the count
echo "Your login session data is not on record in the database.";
exit();
}
*/
?>
<?php
// Script Error Reporting
error_reporting(E_ALL);
ini_set('display_errors', '1');
?>
<html>
<head>
<title>ThaiCreate.Com PHP & MySQL Tutorial</title>
</head>
<body>
<?php
$conn = new mysqli($db_host,$db_username,$db_pass,$db_name);
mysqli_query($conn, "SET NAMES 'utf8'");
mysqli_query($conn, "SET CHARACTER SET 'utf8'");
for($i=1;$i<=$_POST["hdnLine"];$i++)
{
$date_tracking = (isset($_GET['date_tracking'])) ? $_GET['date_tracking'] : '';
if($_POST["date_tracking$i"] != "")
{
$strSQL = "INSERT INTO tracking ";
$strSQL .="(date_tracking,customer_name,track_number,post_code,date_added) ";
$strSQL .="VALUES ";
$strSQL .="('".$_POST["date_tracking$i"]."','".$_POST["customer_name$i"]."', '" .$_POST["track_number$i"]."','".$_POST["post_code$i"]."','".$_POST["now()$i"]."') ";
$objQuery = $conn->query($strSQL);
}
}
echo "Save Done. Click <a href='phpMySQLListRecord.php'>here</a> to view.";
$conn->close();
?>
</body>
</html>
|
 |
 |
 |
 |
Date :
2016-03-18 15:52:38 |
By :
bill10 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ใช้ NOW() ได้เลยครับ ไม่ต้องใส่อะไรเพิ่ม $_POST[] เอาออก
เปลี่ยน '".$_POST["now()$i"]."' เป็น NOW()
|
 |
 |
 |
 |
Date :
2016-03-18 16:01:06 |
By :
arm8957 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบพระคุณมากครับ ได้แล้วครับ เย้ๆๆๆๆ    
|
 |
 |
 |
 |
Date :
2016-03-18 16:06:02 |
By :
bill10 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
รบกวนขอสอบถามเพิ่มเติมนะครับ ถ้าเราต้องการจะดึง (select )ข้อมูลออกมาแสดงเฉพาะวันที่ ต้องทำอย่างไรครับ
เช่น พอเรา insert ข้อมูลลงไปวันที่ 18/03/2559 จะดึงวันที่ 18/03/2559 เท่านั้นมาแสดง ( หน้าเว็บของวันที่ 18/03/2559 )
วันต่อมาเรา insert ข้อมูลลงไปใหม่ 19/03/2559 ก็ให้มันดึง 19/03/2559 เท่านั้นมาแสดง ( หน้าเว็บของวันที่ 19/03/2559 )
โดยที่เราเขียน code แค่ครั้งเดียวครับ
พิมพ์ไปก็งงตัวเองไป   
ขอบคุณครับ
|
 |
 |
 |
 |
Date :
2016-03-18 16:20:23 |
By :
bill10 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบพระคุณมากครับ ผมพอจะเข้าใจ where อยู่บ้าง ผมทำเป็นแต่พวก where id , where ที่ระบุค่าคงที่ไว้ เท่านั้น เช่น
"SELECT * FROM products WHERE subcategory ='Dress' ORDER BY id DESC ";
แต่ถ้าอยากให้มันเพิ่มเองผมเขียนไม่เป็นครับ
ผมคิดว่าอาจจะต้องใช้ for loop มาให้มันเพิ่มค่าอัตโนมัติ แต่ตอนนี้ผมคิดไม่ออกว่าจะต้องเขียนยังไง ส่วนใหญ่ต้องดู code ของท่านอื่นแล้ว
เอามาปรับแต่งอีกทีครับ ถ้าไม่มีแนวทาง โดยให้ผมเขียน code ขึ้นมาเอง นี้ไปไม่เป็นเลยครับ
สงสัยอาจจะต้องทำเป็น search แทน อาจจะง่ายกว่าหน่อยครับ   
|
 |
 |
 |
 |
Date :
2016-03-18 18:27:18 |
By :
bill10 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ไปอ่าน document เพิ่มครับ ตามคุณ arm8957 ว่าแหล่ะครับ
จะได้ประโยชน์มากมาย กว่ามานั่งถามครับ ถามตรงนี้อาจจะเร็ว กรณีเร่งด่วน
แต่ถ้าถามเยอะ มันจะช้ากว่าเอานะ สู่หาความรู้ใส่ตัว ทำความเข้าใจเองไม่ได้
|
 |
 |
 |
 |
Date :
2016-03-19 09:38:04 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|