【问题标题】:Update sql record by checkbox in php通过php中的复选框更新sql记录
【发布时间】:2020-01-30 17:14:50
【问题描述】:

我在php中通过复选框更新sql记录时遇到问题。我的问题是当我按下update按钮时,都可以显示更新以前的信息记录,但只有在复选框中无法显示以前的记录。以下是我的编码:

复选框编码:

<div class="form-group col-lg-6">
    <label class="control-label col-lg-4">Pricing<span style="color:red;">&nbsp;</span></label>
    <div class="col-lg-8">
        <input type="checkbox" name="rm_option" id="rm_option" value="1"><strong> RM </strong></input>&nbsp;&nbsp;&nbsp;
        <input type="checkbox" name="point_option" id="point_option" value="1"><strong> Full Point </strong></input>&nbsp;&nbsp;&nbsp;
        <input type="checkbox" name="partial_option" id="partial_option" value="1"><strong> Partial Point + RM </strong></input>
    </div>
</div>

更新函数编码:

if ($action == 'save') {
    //echo "test";
    $id_merchant_list=get_tbl_val('merchant_list','id','id_user',$user_id);

    $column_key_insert[] = 'active';
   $column_val_insert[] = convert_db_value(1);
    $key_relationship_1[] = 'created';
    $val_relationship_1[] = convert_db_value($cur_dt);
    $key_relationship_1[] = 'createdby';
    $val_relationship_1[] = convert_db_value($user_name);
    $key_relationship_1[] = 'modified';
    $val_relationship_1[] = convert_db_value($cur_dt);
    $key_relationship_1[] = 'modifiedby';
    $val_relationship_1[] = convert_db_value($user_name);
    $key_relationship_1[] = 'p_or_ld';
    $val_relationship_1[] = convert_db_value('1');
    $key_relationship_1[] = 'id_merchant_list';
    $val_relationship_1[] = convert_db_value($id_merchant_list);
    $key_relationship_1[] = 'id_promotion_categories';
    $val_relationship_1[] = convert_db_value($_POST['id_promotion_categories']);
    $key_relationship_1[] = 'promotion_title';
    $val_relationship_1[] = convert_db_value($_POST['promotion_title']);
    $key_relationship_1[] = 'rm_option';
    $val_relationship_1[] = convert_db_value($_POST['rm_option']);
    $key_relationship_1[] = 'point_option';
    $val_relationship_1[] = convert_db_value($_POST['point_option']);
    $key_relationship_1[] = 'partial_option';
    $val_relationship_1[] = convert_db_value($_POST['partial_option']);
    $key_relationship_1[] = 'point_rm_rm';
    $val_relationship_1[] = convert_db_value($_POST['point_rm_rm']);
    $key_relationship_1[] = 'rm';
    $val_relationship_1[] = convert_db_value($_POST['rm']);
    $key_relationship_1[] = 'point';
    $val_relationship_1[] = convert_db_value($_POST['point']);
    $key_relationship_1[] = 'point_rm_point';
    $val_relationship_1[] = convert_db_value($_POST['point_rm_point']);
    $key_relationship_1[] = 'quantity_limit_option';
    $val_relationship_1[] = convert_db_value($_POST['quantity_limit_option']);
    $key_relationship_1[] = 'quantity_limit';
    $val_relationship_1[] = convert_db_value($_POST['quantity_limit']);
    $key_relationship_1[] = 'promotion_price_before';
    $val_relationship_1[] = convert_db_value($_POST['promotion_price_before']);
    $key_relationship_1[] = 'promotion_price_after';
    $val_relationship_1[] = convert_db_value($_POST['promotion_price_after']);
    $key_relationship_1[] = 'promotion_description';
    $val_relationship_1[] = convert_db_value($_POST['promotion_description']);
    $key_relationship_1[] = 'reservation';
    $val_relationship_1[] = convert_db_value($_POST['reservation']);
    $key_relationship_1[] = 'feature';
    $val_relationship_1[] = convert_db_value($_POST['feature']);
    $key_relationship_1[] = 'redemption_from_date';
    $val_relationship_1[] = convert_db_value($_POST['redemption_from_date']);
    $key_relationship_1[] = 'redemption_to_date';
    $val_relationship_1[] = convert_db_value($_POST['redemption_to_date']);
    $key_relationship_1[] = 'promotion_content';
    $val_relationship_1[] = convert_db_value($_POST['promotion_content']);
    $key_relationship_1[] = 'promotion_terms';
    $val_relationship_1[] = convert_db_value($_POST['promotion_terms']);
    $key_relationship_1[] = 'promotion_instruction';
    $val_relationship_1[] = convert_db_value($_POST['promotion_instruction']);
    $key_relationship_1[] = 'promotion_policy';
    $val_relationship_1[] = convert_db_value($_POST['promotion_policy']);
    $key_relationship_1[] = 'discount_percentage';
    $val_relationship_1[] = convert_db_value($_POST['discount_percentage']);
    $key_relationship_1[] = 'merchant_option';
    $val_relationship_1[] = convert_db_value($_POST['merchant_option']);
    $key_relationship_1[] = 'merchant_price';
    $val_relationship_1[] = convert_db_value($_POST['merchant_price']);
    $row_insert = db_conn_insert('promotion_list', $key_relationship_1, $val_relationship_1);
    $sql_insert = $row_insert['sql'];
    $error_insert = $row_insert['error'];
    $record_id = $row_insert['record_id'];

    unset($key_relationship_1);
    unset($val_relationship_1);
    if ($row_insert) {
        echo 'Saved successfully';
        // echo $sql_insert; 
    }
} 
else if ($action == 'update') {
    $id = isset($_POST['filter_id']) ? $_POST['filter_id'] : "";
    $id_promotion_categories = isset($_POST['id_promotion_categories']) ? $_POST['id_promotion_categories'] : "";
    $promotion_title = isset($_POST['promotion_title']) ? $_POST['promotion_title'] : "";
    $promotion_description = isset($_POST['promotion_description']) ? $_POST['promotion_description'] : "";
    $reservation = isset($_POST['reservation']) ? $_POST['reservation'] : "";
    $feature = isset($_POST['feature']) ? $_POST['feature'] : "";
    $discount_percentage = isset($_POST['discount_percentage']) ? $_POST['discount_percentage'] : "";
    $promotion_price_before = isset($_POST['promotion_price_before']) ? $_POST['promotion_price_before'] : "";
    $promotion_price_before = isset($_POST['promotion_price_before']) ? $_POST['promotion_price_before'] : "";

    $rm = isset($_POST['rm']) ? $_POST['rm'] : "";
    $point = isset($_POST['point']) ? $_POST['point'] : "";
    $partial_point = isset($_POST['point_rm_point']) ? $_POST['point_rm_point'] : "";
    $partial_rm = isset($_POST['point_rm_rm']) ? $_POST['point_rm_rm'] : "";

    $rm_option = isset($_POST['rm_option ']) ? $_POST['rm_option '] : "";
    $point_option = isset($_POST['point_option ']) ? $_POST['point_option '] : "";
    $partial_option = isset($_POST['partial_option ']) ? $_POST['partial_option '] : "";

    $query = "UPDATE ".$table.
    " SET id_promotion_categories = '".$id_promotion_categories.
    "', promotion_title = '".$promotion_title.
    "', promotion_description = '".$promotion_description.
    "', reservation = '".$reservation.
    "',rm = '".$rm.
    "',point = '".$point.
    "',point_rm_point = '".$partial_point.
    "',point_rm_rm = '".$partial_rm.
    "',rm_option = '".$rm_option.
    "',point_option = '".$point_option.
    "',partial_option = '".$partial_option.
    "', feature = '".$feature.
    "' where id='".$id.
    "'";

    $arr_treatment = db_conn_update($query);

    if ($arr_treatment) {

        $result_arr['msg'] = 'Update Successful';
    } else {
        $result_arr['msg'] = 'Error in processing data. Please try again later.';
    }
    $result_arr = special_char_display_arr($result_arr);
    $json = json_encode($result_arr);
    print($json);

} else if ($action == 'edit') {
    $id = isset($_POST['id']) ? $_POST['id'] : "";
    $sql = 'SELECT *  FROM promotion_list WHERE id = '.$id;
    $result_arr['sql'] = $sql;
    $result_arr = get_tbl_row($sql);
    //$result_arr['treatment_category_name'] = get_tbl_val('treatment_category_list', 'id', 'name', $result_arr['category']);
    $result_arr = special_char_display_arr($result_arr);
    $json = json_encode($result_arr);
    print($json);

以下是我的输出,红色框和箭头表示当我按下update 按钮时,它无法显示要更新的上一条记录:

希望有人能指导我如何解决它。谢谢。

【问题讨论】:

  • 您能否在提交表单时使用var_dump($_POST) 使用post 输出更新您的问题。
  • @SergheiLeonenco 已更新

标签: php sql checkbox


【解决方案1】:

复选框的工作方式与文本字段不同。如果你想显示一个复选框已经被选中,那么你需要在标签中设置一个属性“checked”。 例如。 您的输入复选框将类似于

<input type="checkbox" name="rm_option" id="rm_option" value="1" <?= $_POST['rm_option'] == 1:'checked':''?>><strong> RM </strong></input>&nbsp;&nbsp;&nbsp;

附注:

  1. 由于您没有提到如何显示其他数据,所以我假设您通过 $_POST 字段显示它,但如果您使用其他变量,则可以使用该变量而不是 $_POST
  2. 我假设服务器上也启用了短标签,如果没有,您可以替换为 .您可以在https://www.php.net/manual/en/language.basic-syntax.phpmode.php 中阅读有关短标签的更多信息
  3. 请阅读术语“Sql 注入”。您的代码在很多地方都容易受到 SQL 注入的影响。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多