ช่วยดู code การ insert ข้อมูลลง database ผ่าน form php หน่อยค่ะ ทำไม่ได้สักที
code เชื่อม database
Code (PHP)
$hostname="localhost";
$username="root";
$password="1234";
$dbname="jobstatus";
$connect=mysql_connect($hostname,$username,$password);
if(!$connect)
die("cannot connect");
mysql_select_db($dbname,$connect)
or die("cannot access database");
echo"welcome to mysql";
mysql_query("set name 'tis620'");
code insert data ( mysql_insertjob_db.php)
Code (PHP)
if(isset($_POST["submit"]))
{
include("mysql_connect.php");
$jobcode=$_POST[jobcode];
$jobname=$_POST[jobname];
$location=$_POST[location];
$budget=$_POST[budget];
$year_type=$_POST[year_type];
$query="INSERT INTO job(jobId,jobcode,jobname,location,budget,year_type)VALUES(null,'$jobcode','$jobname','$location','$budget','$year_type')";
$result=mysql_query($query);
if($result)
{
echo"record";
}else{
echo"cannot record";
}
job form
<html>
<body>
<form name="jobform" id="jobform" action="mysql_insertjob_db.php" method="post">
<table width="35%" border="0" align="center" bgcolor="#66CCFF">
<tr>
<th scope="col" colspan="2" align="left" height="43" >บันทึกงาน</th>
</tr>
</table>
<table width="35%" border="0" align="center" bgcolor="#99FFFF" >
<tr>
<td height="43" align="right">Job No. :</td>
<td width="51%"><input name="jobcode" type="varchar" size="25" /> </td>
</tr>
<tr>
<td align="right" height="43"> ชื่องาน : </td>
<td width="51%"><p>
<input name="jobname" type="varchar" size="50"/>
</p> </td>
</tr>
<tr>
<td align="right" height="43">สถานที่ :</td>
<td><input name="location" type="varchar" size="25" /> </td>
</tr>
<tr>
<td align="right" height="43">งบประมาณ :</td>
<td><input name="budget" type="int" size="25" /> (บาท)</td>
</tr>
<tr>
<td align="right" height="43">ปี/ประเภท :</td>
<td><input name="year_type" type="varchar" size="25" /> </td>
</tr>
<tr >
<td height="57" colspan="2" ><div align="center">
<input name="submit" value="submit" type="submit">
<input name="reset" value="cancel" onclick="" type="reset">
</div>
</td>
</tr>
</table>
</form>
</body>
</html>
ช่วยดูหน่อยนะค่ะ หนูลองแก้หลายครั้งแล้ว ไม่รู้ผิดตรงไหนTag : PHP, MySQL
Date :
2012-11-27 10:43:33
By :
shushu
View :
1394
Reply :
10
1. แก้ jobId ตรง phpMyadmin ให้เป็น auto_increment
2. ใส่โค๊ด Insert ใหม่
Code (PHP)
$query="INSERT INTO job(jobcode,jobname,location,budget,year_type)VALUES('$jobcode','$jobname','$location','$budget','$year_type')";
Date :
2012-11-27 10:56:53
By :
ro0t
$query="INSERT INTO job(jobId,jobcode,jobname,location,budget,year_type)VALUES(null,'$jobcode','$jobname','$location','$budget','$year_type')";
jobId เธอใส่ค่า null เข้าไป
jobId มันเป็น Primary Key หรือเปล่าครับ ถ้าใช่ มันไม่สามารถใส่ค่า null หรือ ช่องว่างได้ครับ
กรณีที่ jobId มันเป็น Primary Key และไม่ได้ set ให้เป็น autonumber ให้ใช้แบบนี้ครับ
$query="INSERT INTO job(jobId,jobcode,jobname,location,budget,year_type) select (IFNULL((select max(jobId)+1 from job),1)),'$jobcode','$jobname','$location','$budget','$year_type'";
ลองดูครับ
Date :
2012-11-27 11:02:33
By :
thep
jobId เป็น primary key ค่ะ และ auto increment
ลองเปลี่ยนตาม คุณ ro0t แต่ก็ยังไม่ได้ค่ะ
รบกวนช่วยดูให้อีกทีนะค่ะ
Date :
2012-11-27 11:13:05
By :
shushu
ถ้า jobId เป็น auto_increment ล่ะก็ ตอนบันทึกไม่ต้องนำมาใส่ใน field list หรอกครับ
if(isset($_POST["submit"]))
{
include("mysql_connect.php");
$jobcode=$_POST[jobcode];
$jobname=$_POST[jobname];
$location=$_POST[location];
$budget=$_POST[budget];
$year_type=$_POST[year_type];
$query="INSERT INTO job(jobcode,jobname,location,budget,year_type) VALUES('$jobcode','$jobname','$location','$budget','$year_type')";
$result=mysql_query($query) or die(mysql_error()."<br />$query");
if($result)
{
echo"record";
}else{
echo"cannot record";
}
Date :
2012-11-27 11:36:28
By :
sakuraei
แก้ตามที่คุณๆ บอกแล้วค่ะ แต่ยังไม่ได้เลย
ที่ form มีผิดตรงจุดไหนไหมค่ะ
Date :
2012-11-27 11:52:49
By :
shushu
ไม่มี error อะไรเลยหรอครับ
Date :
2012-11-27 11:56:16
By :
sakuraei
<tr>
<td height="43" align="right">Job No. :</td>
<td width="51%"><input name="jobcode" type="text" size="25" /> </td>
</tr>
<tr>
<td align="right" height="43"> ชื่องาน : </td>
<td width="51%"><p>
<input name="jobname" type="text" size="50"/>
</p> </td>
</tr>
<tr>
<td align="right" height="43">สถานที่ :</td>
<td><input name="location" type="text" size="25" /> </td>
</tr>
<tr>
<td align="right" height="43">งบประมาณ :</td>
<td><input name="budget" type="text" size="25" /> (บาท)</td>
</tr>
<tr>
<td align="right" height="43">ปี/ประเภท :</td>
<td><input name="year_type" type="text" size="25" /> </td>
</tr>
ต้องเอาโครงสร้างตารางที่ใช้เก็บข้อมูลมาดูด้วย
Date :
2012-11-27 11:58:58
By :
sakuraei
1. แก้โค๊ดตามนี้
Code (PHP)
if($_POST)
{
include("mysql_connect.php");
$jobcode=$_POST[jobcode];
$jobname=$_POST[jobname];
$location=$_POST[location];
$budget=$_POST[budget];
$year_type=$_POST[year_type];
$query="INSERT INTO job (jobcode,jobname,location,budget,year_type) VALUES ('$jobcode','$jobname','$location','$budget','$year_type')";
$result=mysql_query($query);
if($result)
{
echo"record";
}else{
echo"cannot record";
}
2. เช็คฟอร์มหน้าเว็บ
Code (PHP)
<form action="mysql_insertjob_db.php" method="post" name="insert">
.....
</form>
Date :
2012-11-27 13:21:58
By :
ro0t
ขอบคุณทุกคำแนะนำนะค่ะ เดี๋ยวจะลองแก้ตามดู
Date :
2012-11-27 13:44:44
By :
shushu
มันเกี่ยวกับ engine=InnoDB ไหมค่ะ
Date :
2012-11-27 14:02:06
By :
shushu
Load balance : Server 05