รบกวนหน่อยครับพอดีผมลองทำตามของ thaicreate ครับ ทำระบบเพิ่มข้อมูลลงในฐานข้อมูลแต่ข้อมูลไม่ลงให้ครับ
รบกวนหน่อยครับพอดีผมลองทำตามของ thaicreate ครับ ทำระบบเพิ่มข้อมูลลงในฐานข้อมูลแต่ข้อมูลไม่ลงให้ครับ
จากหน้าแรกที่ผมทำ
จาก code หน้าที่ผมทำ
Code (PHP)
<td>
<form action="addsave.php" name="frmAdd" method="post">
Select Line :
<select name="menu1" onChange="MM_jumpMenu('parent',this,0)">
<?
for($i=1;$i<=50;$i++)
{
if($_GET["Line"] == $i)
{
$sel = "selected";
}
else
{
$sel = "";
}
?>
<option value="<?=$_SERVER["PHP_SELF"];?>?Line=<?=$i;?>" <?=$sel;?>><?=$i;?></option>
<?
}
?>
</select>
<table width="600" border="1">
<tr>
<th width="91"> <div align="center">CustomerID </div></th>
<th width="160"> <div align="center">Name </div></th>
<th width="198"> <div align="center">Email </div></th>
<th width="97"> <div align="center">CountryCode </div></th>
<th width="70"> <div align="center">Budget </div></th>
<th width="70"> <div align="center">Used </div></th>
</tr>
<?
$line = $_GET["Line"];
if($line == 0){$line=1;}
for($i=1;$i<=$line;$i++)
{
?>
<tr>
<td><div align="center"><input type="text" name="txtCustomerID<?=$i;?>" size="5"></div></td>
<td><input type="text" name="txtName<?=$i;?>" size="20"></td>
<td><input type="text" name="txtEmail<?=$i;?>" size="20"></td>
<td><div align="center"><input type="text" name="txtCountryCode<?=$i;?>" size="2"></div></td>
<td align="right"><input type="text" name="txtBudget<?=$i;?>" size="5"></td>
<td align="right"><input type="text" name="txtUsed<?=$i;?>" size="5"></td>
</tr>
<?
}
?>
</table>
<input type="submit" name="submit" value="submit">
<input type="hidden" name="hdnLine" value="<?=$i;?>">
</form>
</td>
จากนั้นไปหน้า aadsave.php
Code (PHP)
<?
$objConnect = mysql_connect("localhost","root","9899") or die("Error Connect to Database");
$objDB = mysql_select_db("varatchanu_pra");
for($i=1;$i<=$_POST["hdnLine"];$i++)
{
if($_POST["txtCustomerID$i"] != "")
{
$strSQL = "INSERT INTO customer ";
$strSQL .="(CustomerID,Name,Email,CountryCode,Budget,Used) ";
$strSQL .="VALUES ";
$strSQL .="('".$_POST["txtCustomerID$i"]."','".$_POST["txtName$i"]."', ";
$strSQL .="'".$_POST["txtEmail$i"]."' ";
$strSQL .=",'".$_POST["txtCountryCode$i"]."','".$_POST["txtBudget$i"]."', ";
$strSQL .="'".$_POST["txtUsed$i"]."') ";
$objQuery = mysql_query($strSQL);
}
}
echo "Save Done. Click <a href='listrecord.php'>here</a> to view.";
mysql_close($objConnect);
?>
แล้วดูลผลัพธ์ ไม่ขึ้นตรงนี้ครับ
จาก code
Code (PHP)
<table width="600" border="1">
<tr>
<th width="91"> <div align="center">CustomerID </div></th>
<th width="98"> <div align="center">Name </div></th>
<th width="198"> <div align="center">Email </div></th>
<th width="97"> <div align="center">CountryCode </div></th>
<th width="59"> <div align="center">Budget </div></th>
<th width="71"> <div align="center">Used </div></th>
</tr>
<?
while($objResult = mysql_fetch_array($objQuery))
{
?>
<tr>
<td><div align="center"><?=$objResult["CustomerID"];?></div></td>
<td><?=$objResult["Name"];?></td>
<td><?=$objResult["Email"];?></td>
<td><div align="center"><?=$objResult["CountryCode"];?></div></td>
<td align="right"><?=$objResult["Budget"];?></td>
<td align="right"><?=$objResult["Used"];?></td>
</tr>
<?
}
?>
</table>
เกิดจากอะไรเหรอครับTag : PHP, MySQL, CakePHP
Date :
2013-12-16 21:20:48
By :
jumloon2005
View :
755
Reply :
25
Error ?
Date :
2013-12-16 21:40:58
By :
arm8957
คือระบบไม่ได้ฟ้อง error อะไรเลยครับ อันนี้ทำในเครืองตัวเองน่ะครับ
listrecord.php
ไม่แสดงค่าข้อมูลผมไปดูที่ฐานข้อมูล add ข้อมูลไม่เข้าน่ะครับ
แต่ผมสงสัยนิดน่ะครับว่า ผมไม่ได้ใช้ การ connect ตาม thaicreate
ผมใช้แบบนี้จะเกียวกันไหมครับ
Code (PHP)
<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_con_ecomm = "localhost";
$database_con_ecomm = "xxxxxx";
$username_con_ecomm = "xxxx";
$password_con_ecomm = "xxxxx";
$con_ecomm = mysql_pconnect($hostname_con_ecomm, $username_con_ecomm, $password_con_ecomm) or trigger_error(mysql_error(),E_USER_ERROR);
mysql_query("SET NAMES 'utf 8'");
mysql_query("SET character_set_results = utf8");
mysql_query("SET character_set_client = utf8");
mysql_query("SET character_set_connection = utf8");
?>
Date :
2013-12-17 08:22:11
By :
jumloon2005
แล้วเช็คใน phpmyadmin หรือยังครับ ว่าข้อมูลเข้าจริงไหม...
ถ้าเข้าไม่จริงก็คงมี Error บางอย่าง แต่ถ้าเข้าไป phpmyadmin แล้ว อาจจะผิดพลาดตอนเรียกแสดงผลก็ได้นะ
Date :
2013-12-17 08:44:31
By :
apisitp
เช็คแล้วครับ ข้อมูลไม่เข้าครับ
ปัญหาคือไม่ฟ้อง error อ่ะครับ จะทำไหงดีไปต่อไม่ถูกเลยครับ
Date :
2013-12-17 08:51:03
By :
jumloon2005
echo $strSQL; แล้วเอาคำสั่งที่ได้ไปรันใน phpMyAdmin ดูครับว่าได้หรือไม่?
Date :
2013-12-17 08:52:06
By :
arm8957
echo $strSQL;
ใส่ในหน้าของ aadsave.php ใช่ไหมครับ
Date :
2013-12-17 08:57:41
By :
jumloon2005
ใช่ครับ
Code (PHP)
aadsave.php
<?
$objConnect = mysql_connect("localhost","root","9899") or die("Error Connect to Database");
$objDB = mysql_select_db("varatchanu_pra");
for($i=1;$i<=$_POST["hdnLine"];$i++)
{
if($_POST["txtCustomerID$i"] != "")
{
$strSQL = "INSERT INTO customer ";
$strSQL .="(CustomerID,Name,Email,CountryCode,Budget,Used) ";
$strSQL .="VALUES ";
$strSQL .="('".$_POST["txtCustomerID$i"]."','".$_POST["txtName$i"]."', ";
$strSQL .="'".$_POST["txtEmail$i"]."' ";
$strSQL .=",'".$_POST["txtCountryCode$i"]."','".$_POST["txtBudget$i"]."', ";
$strSQL .="'".$_POST["txtUsed$i"]."') ";
$objQuery = mysql_query($strSQL);
echo $strSQL."<br />";
}
}
echo "Save Done. Click <a href='listrecord.php'>here</a> to view.";
mysql_close($objConnect);
?>
Date :
2013-12-17 08:59:05
By :
arm8957
Date :
2013-12-17 09:04:39
By :
apisitp
ผลจากการใส่ code ลงไปน่ะครับ
INSERT INTO customer (CustomerID,Name,Email,CountryCode,Budget,Used) VALUES ('12345','testdata', '[email protected] ' ,'1','1', '1')
Save Done. Click here to view.
แต่ว่าไปเช็คใน phpMyAdmin ค่าไม่ได้ถูกส่งมาครับ
Date :
2013-12-17 09:13:27
By :
jumloon2005
12345 มาจากไหนครับ
CustomerID ตั้งเป็น Auto_increment หรือเปล่า
มันสัมพันธ์กันอย่างไร
เอ๊ะ !! ติ๊ก ต๊อก ๆ
ประวัติการแก้ไข 2013-12-17 09:16:25
Date :
2013-12-17 09:15:33
By :
apisitp
ส่งสัยผมเข้าใจผิดแน่เลยครับ
CustomerID ตั้งเป็น Auto_increment ครับ
ฉนั้น ตรงจุดนี้ผมไม่กรอกครับ ขามไป ฟิวส์ถัดไปเลยก็ยังไม่ได้น่ะครับ
ถ้าตามที่ผมเข้าใจอยู่ตอนนี้คือ เมือเป็น Auto_increment เราไม่ต้องกรอก
ผมเข้าใจถูกหรือเปล่าไม่รู้ครับ
Date :
2013-12-17 09:20:23
By :
jumloon2005
ไม่ต้องกรอกครับ แต่ถ้าต้องการจะเก็บ 12345 ต้องสร้างเพิ่มมาอีก 1 ฟิลด์ ค่อย ๆ ไล่ Code ดีดีครับ ^^
Date :
2013-12-17 09:35:10
By :
apisitp
ครับ ผมลองแล้วครับ ตรงในส่วนของ CustomerID ผมข้ามไปครับ แต่ข้อมูลยังไม่ลงครับ
ผมผมกดปุ่ม add
จะได้คำว่า
Save Done. Click here to view.
พอผมคลิก click ข้อมูลก็ไม่เข้าครับ
Date :
2013-12-17 09:44:39
By :
jumloon2005
ข้ามไป มันก็คือค่า 0 นะ....ตรงคิวรี่ insert ให้เอาตัวแปรออกปล่อยว่างครับ...
Date :
2013-12-17 09:58:14
By :
apisitp
เอาแบบผมดีไม๊ ผมว่ามันดูง่ายกว่าเยอะ
Code (PHP)
aadsave.php
<?
$objConnect = mysql_connect("localhost","root","9899") or die("Error Connect to Database");
$objDB = mysql_select_db("varatchanu_pra");
for($i=1;$i<=$_POST["hdnLine"];$i++)
{
if($_POST["txtCustomerID$i"] != "")
{
$txtName = $_POST["txtName$i"];
$txtEmail = $_POST["txtEmail$i"];
$txtCountryCode = $_POST["txtCountryCode$i"];
$txtBudget = $_POST["txtBudget$i"];
$txtUsed = $_POST["txtUsed$i"];
$strSQL = "INSERT INTO customer(
Name
, Email
, CountryCode
, Budget
, Used)
VALUES(
'$txtName'
, '$txtEmail'
, '$txtCountryCode'
, '$txtBudget'
, '$txtUsed') ";
$objQuery = mysql_query($strSQL) or die(mysql_error());
}
}
echo "Save Done. Click <a href='listrecord.php'>here</a> to view.";
mysql_close($objConnect);
?>
Date :
2013-12-17 10:07:28
By :
arm8957
ผมลองวิธีของคุณ คนธรรมดา ไม่พิเศษ
ไม่ขึ้นเมือกี้ผมลองใส่ข้อมูลลงไปตรงๆ ที่ฐานข้อมูล
มันก็ขึ้นตามปกติครับ
listrecord.php
งง จังครับแฮะๆๆ
Date :
2013-12-17 10:21:12
By :
jumloon2005
โค้ดปัจจุบันของคุณเป็นยังไงครับ?
Date :
2013-12-17 10:47:20
By :
arm8957
อันนี้หน้า addform.php ครับ
Code (PHP)
<form action="addsave.php" name="frmAdd" method="post">
Select Line :
<select name="menu1" onChange="MM_jumpMenu('parent',this,0)">
<?
for($i=1;$i<=50;$i++)
{
if($_GET["Line"] == $i)
{
$sel = "selected";
}
else
{
$sel = "";
}
?>
<option value="<?=$_SERVER["PHP_SELF"];?>?Line=<?=$i;?>" <?=$sel;?>><?=$i;?></option>
<?
}
?>
</select>
<table width="600" border="1">
<tr>
<th width="91"> <div align="center">CustomerID </div></th>
<th width="160"> <div align="center">Name </div></th>
<th width="198"> <div align="center">Email </div></th>
<th width="97"> <div align="center">CountryCode </div></th>
<th width="70"> <div align="center">Budget </div></th>
<th width="70"> <div align="center">Used </div></th>
</tr>
<?
$line = $_GET["Line"];
if($line == 0){$line=1;}
for($i=1;$i<=$line;$i++)
{
?>
<tr>
<td><div align="center"><input type="text" name="txtCustomerID<?=$i;?>" size="5"></div></td>
<td><input type="text" name="txtName<?=$i;?>" size="20"></td>
<td><input type="text" name="txtEmail<?=$i;?>" size="20"></td>
<td><div align="center"><input type="text" name="txtCountryCode<?=$i;?>" size="2"></div></td>
<td align="right"><input type="text" name="txtBudget<?=$i;?>" size="5"></td>
<td align="right"><input type="text" name="txtUsed<?=$i;?>" size="5"></td>
</tr>
<?
}
?>
</table>
<input type="submit" name="submit" value="submit">
<input type="hidden" name="hdnLine" value="<?=$i;?>">
</form>
อันนี้หน้า addsave.php
Code (PHP)
<?
$objConnect = mysql_connect("localhost","root","9899") or die("Error Connect to Database");
$objDB = mysql_select_db("varatchanu_pra");
for($i=1;$i<=$_POST["hdnLine"];$i++)
{
if($_POST["txtCustomerID$i"] != "")
{
$txtName = $_POST["txtName$i"];
$txtEmail = $_POST["txtEmail$i"];
$txtCountryCode = $_POST["txtCountryCode$i"];
$txtBudget = $_POST["txtBudget$i"];
$txtUsed = $_POST["txtUsed$i"];
$strSQL = "INSERT INTO customer(
Name
, Email
, CountryCode
, Budget
, Used)
VALUES(
'$txtName'
, '$txtEmail'
, '$txtCountryCode'
, '$txtBudget'
, '$txtUsed') ";
$objQuery = mysql_query($strSQL) or die(mysql_error());
}
}
echo "Save Done. Click <a href='listrecord.php'>here</a> to view.";
mysql_close($objConnect);
?>
ประมาณนี้ครับ
Date :
2013-12-17 10:56:17
By :
jumloon2005
พวกชื่อ database ตัวแปรทั้งหลาย ใน code คุณ กับ ในฐานข้อมูล phpmyadmin มันตรงกันจริงเปล่า
คุณลองเช็ค code Insert กับ code Select สิว่ามันตัวแปรเหมือนกันไหม
ผมก็เริ่ม งง ๆ กับ โค้ดคุณล่ะ
Date :
2013-12-17 11:25:06
By :
apisitp
หัดใส่แท็กด้วยสิ ใส่ไม่เป็นหรือไง โค้ดอ่านยากมาก
$strSQL = "INSERT INTO customer(
Name
, Email
, CountryCode
, Budget
, Used)
VALUES(
'$txtName'
, '$txtEmail'
, '$txtCountryCode'
, '$txtBudget'
, '$txtUsed') ";
จากของคุณ ฟิลด์ auto_increment หายไปไหน ต้องมีด้วย แบบนี้หรือเปล่า
$strSQL = "INSERT INTO customer(
customerID
,Name
, Email
, CountryCode
, Budget
, Used)
VALUES(
''
,'$txtName'
, '$txtEmail'
, '$txtCountryCode'
, '$txtBudget'
, '$txtUsed') ";
Capture รูปฐานข้อมูลมาดูหน่อยเหอะ เรื่องง่าย ๆ วกไปวนมา ไม่ต้องหวงหรอก เด๋วไม่จบไม่สิ้น
ประวัติการแก้ไข 2013-12-17 11:31:30
Date :
2013-12-17 11:27:57
By :
apisitp
addfrom.php
Code (PHP)
<form action="addsave.php" name="frmAdd" method="post">
Select Line :
<select name="menu1" onChange="MM_jumpMenu('parent',this,0)">
<?PHP
for($i=1;$i<=50;$i++)
{
?>
<option value="<?PHP echo $_SERVER["PHP_SELF"];?>?Line=<?PHP echo $i;?>" <?PHP if($_GET["Line"] == $i){ echo 'selected="selected"'; } ?>><?PHP echo $i;?></option>
<?PHP
}
?>
</select>
<table width="600" border="1">
<tr>
<th width="160"> <div align="center">Name </div></th>
<th width="198"> <div align="center">Email </div></th>
<th width="97"> <div align="center">CountryCode </div></th>
<th width="70"> <div align="center">Budget </div></th>
<th width="70"> <div align="center">Used </div></th>
</tr>
<?PHP
$line = $_GET["Line"];
if($line == 0){$line=1;}
for($i=1;$i<=$line;$i++)
{
?>
<tr>
<td><input type="text" name="txtName<?=$i;?>" size="20"></td>
<td><input type="text" name="txtEmail<?=$i;?>" size="20"></td>
<td><div align="center"><input type="text" name="txtCountryCode<?=$i;?>" size="2"></div></td>
<td align="right"><input type="text" name="txtBudget<?=$i;?>" size="5"></td>
<td align="right"><input type="text" name="txtUsed<?=$i;?>" size="5"></td>
</tr>
<?PHP
}
?>
</table>
<input type="submit" name="submit" value="submit">
<input type="hidden" name="hdnLine" value="<?=$line;?>">
</form>
หน้า save
Code (PHP)
<?PHP
$objConnect = mysql_connect("localhost","root","9899") or die("Error Connect to Database");
$objDB = mysql_select_db("varatchanu_pra");
for($i=1;$i<=$_POST["hdnLine"];$i++)
{
$txtName = $_POST["txtName$i"];
$txtEmail = $_POST["txtEmail$i"];
$txtCountryCode = $_POST["txtCountryCode$i"];
$txtBudget = $_POST["txtBudget$i"];
$txtUsed = $_POST["txtUsed$i"];
if(!empty($txtName))
{
$strSQL = "INSERT INTO customer(
Name
, Email
, CountryCode
, Budget
, Used)
VALUES(
'$txtName'
, '$txtEmail'
, '$txtCountryCode'
, '$txtBudget'
, '$txtUsed') ";
echo $strSQL.'<br />';
$objQuery = mysql_query($strSQL) or die(mysql_error());
}
}
echo "Save Done. Click <a href='listrecord.php'>here</a> to view.";
mysql_close($objConnect);
?>
ลองดูครับ ผมปรับโค้ดนิดหน่อย(ตามที่เครื่องผมเซ็ตไว้ บางคำสั่งผมต้องใส่ Tag เต็ม เพราะไม่งั้น error)
ในหน้า save ลองเอา echo $strSQL.'<br />'; ที่ได้ไปรันใน phpMyadmin ดู
แต่ผมคิดว่าถ้าค่าที่ส่งไป ตรงกับชนิดข้อมูลในฐานข้อมูลก็น่าจะบันทึกได้ละนะครับ
ปล. ในการส่งค่าจากฟอร์มแบบที่คุณใช้ ผมคิดว่ามันจัดการค่อนข้างยาก ลองปรับเป็นส่งแบบ Array ดูครับ จะจัดการข้อมูลได้ง่ายกว่าเยอะมาก แต่ก็แล้วแต่ถนัดครับ
Date :
2013-12-17 11:44:07
By :
arm8957
ครับผมขอบคุณทุกคำแนะนำครับผมจะนำไปพัฒนาต่อครับ
อันนี้ฐานข้อมูลครับ
Date :
2013-12-17 13:52:11
By :
jumloon2005
ชื่อฟิลด์ Used มันผิดปกตินะ ดูดีๆครับ มันมีอะไรเกินมา?
Date :
2013-12-17 13:55:08
By :
arm8957
แก้แล้วครับพออันนั้นรุปเก่าครับ
ตอนนี้ใช้ได้แล้วครับ ผมพอจะรุ้ข้อผิดพลาดของตัวเองจากการลองทำคร้ังนี้
ผมคงต้องละเอียดกว่านี้และศึกษาให้มากกว่านี้ขอบคุณทุกความคิดเห็นครับ
ผมไล่จาก code ตัวล่าสุดทีส่งมาผมพอเข้าใจแล้วครับ
Date :
2013-12-17 14:04:44
By :
jumloon2005
Date :
2013-12-18 09:28:29
By :
apisitp
Load balance : Server 02