【发布时间】:2020-05-25 07:54:24
【问题描述】:
我有一个批量添加域的表单,这些域可以有一个或多个国家和一个语言属性。
我的表单(简化为代码):
添加域:
<textarea name="bulk" rows="10" class="form-control no-resize"><?php echo $_POST['bulk']; ?></textarea>
选择一个或多个国家/地区:
<div class="checkbox">
<?php
if ($queries->query("SELECT * FROM countrycodes ORDER BY code ASC")) {
if ($queries->count() > 0) {
$contents = $queries->fetchAll();
foreach ($contents as $content) {
?>
<input type="checkbox" id="country_<?php echo $content->code; ?>" name="country[]" value="<?php echo $content->code; ?>" <?php if (in_array($content->code, $_POST['country'])) echo "checked = 'checked'"; ?> />
<label for="country_<?php echo $content->code; ?>"><?php echo $content->country; ?></label><br />
<?php }}} ?>
</div>
选择语言:
<div class="radio">
<?php
if ($queries->query("SELECT * FROM langcodes ORDER BY code ASC")) {
if ($queries->count() > 0) {
$contents = $queries->fetchAll();
foreach ($contents as $content) {
?>
<input type="radio" name="lang" id="lang_<?php echo $content->code; ?>" value="<?php echo $content->code; ?>" <?php if ($content->code == $_POST['lang']) { ?>checked="" <?php } ?> />
<label for="lang_<?php echo $content->code; ?>"><?php echo $content->language; ?></label><br />
<?php }}} ?>
</div>
从提交中获取数据:
if (isset($_POST['addData'])) {
$doms = explode("\n", str_replace("\r", "", $_POST['bulk']));
$coun = implode(", ", $_POST['country']);
$lang = $_POST['lang'];
}
我发现这个用于批量插入:
$d = ['Osian', 'Williams', 1];
$data = array_fill(0, 1000, $d);
$db = new PDO('mysql:host=localhost;dbname=MYDB','MYUSER','MYPASS');
$db->beginTransaction();
$stmt = $db->prepare('INSERT INTO members (firstname, surname, title) VALUES (?,?,?)');
for($i=0;$i<count($data);$i++) {
$stmt->execute($data[$i]);
}
$db->commit();
我不知道如何让我的数据(域、国家、语言)适用于此代码。
而且,我需要检查一个域是否已经在数据库中,但前提是该域具有相同的语言。
所以,很高兴得到一些帮助。
【问题讨论】:
-
阅读w3schools.com/php/php_forms.asp,提交表单后,操作页面将获取
$_POST或$_GET数组中输入的值。在操作页面中编写您的业务逻辑。
标签: php html mysql bulkinsert