在使用PHP发布到SQL数据库之前,是否有方法复制数据?
如果单击复选框,是否有方法将数据推送到表中的两个字段 所以在英语中,作为一个纯粹的假设,我有六个字段,两行有一个复选框。第一行,字段一是姓名,第二是地址,第三是电子邮件 我想做的是,如果信息在发布时从左到右传递,则需要一个人选中一个框 该表将有六个字段在使用PHP发布到SQL数据库之前,是否有方法复制数据?,php,mysql,duplicates,Php,Mysql,Duplicates,如果单击复选框,是否有方法将数据推送到表中的两个字段 所以在英语中,作为一个纯粹的假设,我有六个字段,两行有一个复选框。第一行,字段一是姓名,第二是地址,第三是电子邮件 我想做的是,如果信息在发布时从左到右传递,则需要一个人选中一个框 该表将有六个字段 name, address, email, name2, address2, email2. 因此,只要选中该复选框,将在name中发布的数据也将在name2中发布 这在PHP中可能吗 好吧,既然人们想看一个脚本作为例子,这里。。。我认为编写一
name, address, email, name2, address2, email2.
因此,只要选中该复选框,将在name中发布的数据也将在name2中发布
这在PHP中可能吗
好吧,既然人们想看一个脚本作为例子,这里。。。我认为编写一个通用脚本比发布我正在做的工作要容易得多。对不起,我想我会让这里的人更容易些
<?php
require_once('connectvars.php');
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME)
or die('Error connecting to MySQL server.');
$output_form = 'yes';
echo '<div id="postwrap">'
?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Document Test</title>
<link rel="stylesheet" type="text/css" href="CSS/postie.css" />
</head>
<body>
<div id="title">
<h3 id="NCMR2">Document Test</h3>
</div>
<?php
//Post Data
if (isset($_POST['submit'])) {
$ab = mysqli_real_escape_string($dbc, trim($_POST['ab']));
$date = mysqli_real_escape_string($dbc, trim(date('Y-m-d',strtotime ($_POST['date']))));
$part = mysqli_real_escape_string($dbc, trim($_POST['part']));
$rev = mysqli_real_escape_string($dbc, trim($_POST['rev']));
$partdesc = mysqli_real_escape_string($dbc, trim($_POST['partdesc']));
$ncmrqty = mysqli_real_escape_string($dbc, trim($_POST['ncmrqty']));
$ab2 = mysqli_real_escape_string($dbc, trim($_POST['ab']));
$date2 = mysqli_real_escape_string($dbc, trim(date('Y-m-d',strtotime ($_POST['date']))));
$part2 = mysqli_real_escape_string($dbc, trim($_POST['part']));
$rev2 = mysqli_real_escape_string($dbc, trim($_POST['rev']));
$partdesc2 = mysqli_real_escape_string($dbc, trim($_POST['partdesc']));
$ncmrqty2 = mysqli_real_escape_string($dbc, trim($_POST['ncmrqty']));
$output_form = 'no';
if (empty($ab) || empty($date) || empty($part) || empty($partdesc)){
// We know at least one of the input fields is blank
echo '<div id="alert">';
echo 'Please fill out all of the required NCMR information.<br />';
echo '</div>';
}
$output_form = 'yes';
}
//Access the Database
if (!empty($ab) && !empty($date) && !empty($pod)) {
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME)
or die('Error connecting to MySQL server.');
$query = "INSERT INTO ncmr (ab, date, part, rev, partdesc, ncmrqty, ab2, date2, part2, rev2, partdesc2, ncmrqty2)
VALUES ('$ab', '$date', '$part', '$rev', '$partdesc', '$ncmrqty', '$ab2', '$date2', '$part2', '$rev2', '$partdesc2', '$ncmrqty2')";
mysqli_query($dbc,$query)
or die ('Data not inserted.');
// Clear the form data
$ab = "";
$date = "";
$part = "";
$rev = "";
$partdesc = "";
$ncmrqty = "";
$ab2 = "";
$date2 = "";
$part2 = "";
$rev2 = "";
$partdesc2 = "";
$ncmrqty2 = "";
// Confirm success with the user
echo '<tr><td class="thank">';
echo '<p>Thank you for adding the NCRM, the correct person will be informed.</p>';
echo '<p><a href="post.php"><< Back to the form</a></p>';
$output_form = 'no';
echo '</td></tr>';
mysqli_close($dbc);
}
if ($output_form == 'yes') {
echo "<form action='".$_SERVER['PHP_SELF']."' method='post'>";
echo '<fieldset>';
//Part, Rev, Part Description, NCMR Qty
echo '<div id="box1">';
echo '<div id="ab"><span class="b">Added By: </span><input type="text" name="ab" value="" /></div>';
echo '<div id="date"><span class="b">Date Filed: </span><input type="text" name="date" value="" /></div>';
echo '<div id="part"><span class="b">Part Number: </span><input type="text" name="part" value="" /></div>';
echo '<div id="rev"><span class="b">Part Revision: </span><input type="text" name="rev" value="" /></div>';
echo '<div id="partdesc"><span class="b">Part Description: </span><textarea name="partdesc" rows="4" cols="22" ></textarea></div>';
echo '<div id="ncmrqty"><span class="b">NCMR Qty: </span><input type="text" name="ncmrqty" value="" /></div>';
echo '</div>';
echo '<div id="box2">';
echo '<div id="ab2"><span class="b">Added By: </span><input type="text" name="ab2" value="" /></div>';
echo '<div id="date2"><span class="b">Date Filed: </span><input type="text" name="date2" value="" /></div>';
echo '<div id="part2"><span class="b">Part Number: </span><input type="text" name="part2" value="" /></div>';
echo '<div id="rev2"><span class="b">Part Revision: </span><input type="text" name="rev2" value="" /></div>';
echo '<div id="partdesc2"><span class="b">Part Description: </span><textarea name="partdesc2" rows="4" cols="22" ></textarea></div>';
echo '<div id="ncmrqty2"><span class="b">NCMR Qty: </span><input type="text" name="ncmrqty2" value="" /></div>';
echo '</div>';
echo '<div id="button3"><input type="submit" value="Submit NCMR" name="submit" /></div>';
echo '</div>';
echo '</fieldset>';
echo '</form>';
}
echo '</div>';
?>
</body>
</html>
文件测试
文件测试
是的,可以(某种程度上)使用条件语句来实现。
不是发布重复数据,而是复制已经发布到PHP脚本中的数据。
非常简单的例子:
$fieldsToDuplicate = array('name', 'address', 'email');
if (isset($_POST['checkbox'] && 1 == $_POST['checkbox']) {
foreach ($fieldsToDuplicate as $value)
{
$_POST[$value.'2'] = $_POST[$value];
}
}
但请记住,在实际操作/插入数据库之前,您应该验证并过滤从用户处获得的输入:)
也可以用HTML复制字段,用Javascript复制数据,然后不带任何条件地用PHP处理。设置复选框的名称,说“duplicateBox”,并在选中时将其值设置为1
<?php
$name = $_POST['name'];
$address = $_POST['address'];
$email = $_POST['email'];
$name2 = $_POST['name2'];
$address2 = $_POST['address2'];
$email2 = $_POST['email2'];
$duplicate = $_POST['duplicateBox'];
if($duplicate == 1)
{
$name2 = $name;
$address2 = $address;
$email2 = $email;
}
$insert = "INSERT INTO `table` (name,address,email,name2,address2,email2) VALUES ('$name','$address','$email','$name2','$address2','$email2')";
mysql_query($insert)or die(mysql_error());
?>
是的,这在PHP中是可能的。更详细的答案需要示例代码。如何使用复选框?我问这个问题的唯一原因是,它看起来好像考虑了一个重复项,但它没有显示重复复选框是如何工作的。@enm,谢谢,非常感谢。最后一个问题。如果这是在一个更大的表格中,是否最好将整个内容放在括号中,或者在括号后加上一个else,这样如果没有选中复选框,它将发布副本或恢复正常?亲爱的马特,所有功劳都归埃米尔·拉森所有。关于你的问题:我认为Emil最好回答并相应修改代码(如果需要).@MattRidge,说这个复选框是你的形式:$duplicate将取这个复选框的值,如果是1(选中),则取名称中的值,地址和电子邮件将被复制,如果不是,它将跳过这一点点代码。我在顶部为name2等添加了额外的变量。@EmilLarsson,将$insert行放在括号中,然后放一个else{},这样如果duplicate==1,就这样做,否则就照常进行,还是我过于简化了?