使用Mysql结果来分配$_POST变量


Use Mysql results to assign $_POST variables

我有一个表在我的数据库,其中包含语言我的网站被翻译成..假设我有EN, AR和KU

格式如下:

<form id="addTags">
  <label>Friendly Name</label><br />
  <input type="text" name="FriendlyName" id="FriendlyName" /><br />
  <span style="font-size:9pt;color:#555;"><i>This is used to mark the Category</i></span><br />
  <label>URL ShortCode</label><br />
  <input type="text" name="ShortName" id="ShortName" /><br />
  <h3>
    Translate for multilingual use <span style="font-size:9pt;color:red;"><i>*Required</i></span>
  </h3><label>عربي</label><br />
  <input type="text" name="AR" id="AR" /><br />
  <label>English</label><br />
  <input type="text" name="EN" id="EN" /><br />
  <label>Kurdish</label><br />
  <input type="text" name="KU" id="KU" /><br />
  <input type="submit" value="Add Cat" class="button" align="center" />
</form>

最后三个文本输入根据我提到的表中的语言动态添加。我的问题是……如果我添加第四种语言,我怎么能捕获$_POST参数动态在我的php脚本?我想从同一个表中获得语言,并将它们分配为变量。但是有可能做到这样吗?

<?
while($lang =$result->fetch_array()){
 $langID=$lang['langid'];
 $input_$langID=$_POST['$langID'];
}
?>

QUICL编辑我也做过类似的事情…下面是快速结果

$get_lang_id = $link->query("SELECT * FROM `tjcgLangs`");
$where = "";
$FriendlyName=mysqli_real_escape_string($link,$_POST['FriendlyName']);
$ShortName=mysqli_real_escape_string($link,$_POST['ShortName']);
$art_lang=$link->query("INSERT INTO table1 (tagFriendlyName,tagShortName) VALUES ('$FriendlyName','$ShortName');");
$insert_id=$link->insert_id;
while($get_lang=$get_lang_id->fetch_array(MYSQLI_ASSOC)){
     $language = $get_lang['langISOCode'];
     $where .= "($insert_id,'".$_POST[$language]."',".$get_lang['langID']."),";
}
$where = rtrim($where, ",");
$art_lang_m=$link->query("INSERT INTO Table2 (tagMRootID,tagMDispName,tagMLang) values $where");
$get_lang_id->free();
$link->close();
echo "DONE";

将您存储的语言创建如下数组

$ARR_LANGUAGES = ("AR", "EN", "KU");

现在检查是否设置了语言

foreach($ARR_LANGUAGE as $language)
{
    if(isset($_POST[$language]))
    {
         echo $language." is Set through post !! <br/>"
    }
    else
    {
        echo $language." is Not Set !! <br/>"
    }
}

使用如下命名约定:

name="language[EN]"

然后,在PHP中,您可以遍历关联数组$_POST['language'](假设您将method="post"添加到表单中)。

foreach ($_POST['language'] as $lang => $user_input) {
    do_something_with($lang, $user_input);
}

或者您可以循环遍历所有表单数据,并排除不需要的字段(例如提交按钮),这样您就可以创建一个完全动态的查询。下面是一个简单的例子:

$exclude = array('submit');
foreach ($_POST as $key => $value) {
    if (!in_array($key, $exclude)) {
        $query .= $key . "=". $value;
    }
}