我有2个表,一个有数据,另一个在同一个数据库中是空白的。
a) - 表“cusrec”是主要的并且包含数据。
b) - 表“order”为空,我想在其中插入数据。
我试图从表“cusrec”中获取数据并将其插入“order”,当我回显时,它显示表“cusrec”的数据,但它没有插入表“order”。两个表都在同一个数据库中。
代码是:
<?php
mysql_connect("localhost","root","");
mysql_select_db('dobhighat');
if(isset($_GET['search'])){
$srch = $_GET['srch'];
$que=mysql_query("select * from cusrec where custid='$srch' OR mobile='$srch'");
$ftch=mysql_fetch_array($que);
$scustid=$ftch['custid'];
$sname=$ftch['name'];
$smobile=$ftch['mobile'];
$totcloth=$ftch['clothpackage'];
if(isset($_POST['confirm']))
{
$ordernum=$_REQUEST['ordernum'];
$orderdate=date('d/m/y');
$ordercloth=$_REQUEST['ordercloth'];
$clothrem=$totcloth-$ordercloth;
$abc=mysql_query("insert into order(custid,name,mobile,totcloth,orderno,orderdate,ordercloth,clothrem)values('$scustid','$sname','$smobile','$totcloth','$ordernum','$orderdate','$ordercloth','$clothrem')");
}
}
?>
<!DOCTYPE>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test</title>
</head>
<body>
<?php $orddate=date('d/m/y'); ?>
<form name="form 1" action="" method="get">
<div align="right"><input type="text" name="srch" placeholder="Search by Id or Mobile" size="25">
<input type="submit" name="search" value="Search"></div>
</form>
<form name="form2" action="" method="post">
<table>
<tr>
<td width="103">Order Date</td>
<td width="94">Customer Id</td>
<td width="53">Name</td>
<td width="71">Mobile</td>
<td width="144">Order No.</td>
<td width="144">No.of Clothes</td>
</tr>
<tr>
<td><?php echo $orddate; ?></td>
<td><?php echo @$ftch['custid']; ?></td>
<td><?php echo @$ftch['name']; ?></td>
<td><?php echo @$ftch['lname']; ?></td>
<td><?php echo @$ftch['mobile']; ?></td>
<td><input type="text" name="ordernum" required></td>
<td><input type="text" name="ordercloth" required></td>
</tr>
<tr><td colspan="8"><center><input type="submit" name="confirm" value="Confirm"></center></td></tr>
</table>
</form>
</body>
</html>
需要帮助
答案 0 :(得分:0)
您可以直接从SQL
INSERT INTO order
( custid,
name,
mobile,
totcloth,
orderno,
orderdate,
ordercloth,
clothrem)
SELECT
custid,
name,
mobile,
totcloth,
orderno,
orderdate,
ordercloth,
clothrem
FROM cusrec
WHERE custid='$srch' OR mobile='$srch'"
您只需将列与from table
匹配为to table
答案 1 :(得分:0)
您是否考虑过从select中插入?有点像...
INSERT INTO ORDER
( custid, name, mobile, otherFields, etc... )
SELECT same, ordered, fields, as, theInsert
from custrec where custid='$srch' OR mobile='$srch'
我在您的select where子句中看到的唯一问题是您可以通过OR mobile =&#39;%srch&#39;来获得多个客户。并导致重复订单。
答案 2 :(得分:0)
忘记我所说的关于文档的形式和结构的所有内容(尽管最终可能有用,因为我不知道GET
和POST
有多可靠。
我是一个渡渡鸟,只是意识到你的表名是order
。 ORDER是SQL中的保留关键字,这就是您的SQL语句不正确的原因!只需将名称放在`之间就可以了:
$abc=mysql_query("insert into `order`(custid,name,mobile,totcloth,orderno,orderdate,ordercloth,clothrem)values('$scustid','$sname','$smobile','$totcloth','$ordernum','$orderdate','$ordercloth','$clothrem')");
或者你可能希望(如果可能的话)重命名表格以避免混淆和未来的问题。
这并不意味着代码是完美的。您仍应查看其他用户和下面列表中的建议,并进行改进。特别是安全问题。
一旦你解决了这个问题,插入就会起作用;但是你还需要解决很多问题:
mysql
个功能并转到mysqli
或PDO
。<!doctype html>
而不是<!doctype>
。当我快速查看代码时,可能还有更多我没注意到的事情。
答案 3 :(得分:0)
我认为插入和获取相同的数据我们可以通过使用下面提到的 PHP MYSQLI 代码来完成。
$id=trim($_POST['id']);
$email=trim($_POST['email'];
$env_name=trim($_POST['env_name'];
$sql="INSERT INTO integration (id,email,env_name) VALUES ($id,$email'$envName')";
if(mysqli_query($conn,$sql)){
$selectSql="SELECT id,email,env_name from integration WHERE id=$id and email='$email'";
$result=mysqli_query($conn,$selectSql){
if($result){
$row=mysqli_fetch_array($result, MYSQLI_ASSOC);
return $row;
}
}
}