dtvgo28624 2013-04-29 06:15
浏览 58
已采纳

将复选框值插入mysql时出现问题

Update: This is the result I get after query execution:

NewiTem9,desc,video9.swf,9,0,0,1,0,550,500,item9.jpg,0,swf,prev,0,00,0,2013-04-29 03:23:43,1,0,0,0,newitem9,0

For the HTML I have the following checkbox:

<input type="checkbox" name="starter" value="1" id="starter0">

When inserting this into mysql with other elements (with other elements i don't have any problem, they are inserted without a problem and then displaying properly)

mysql_query("
    INSERT INTO datatab (
        name, description, url, category_id, category_parent, width, height,
        image, activado, filetype, instructions, date_added, show_ads, rmode,
        power_id, starter, seo_url, submitter
    )
    VALUES (
        '".escape($_POST['name'])."', '".escape($_POST['description'])."',
        '$url', $_POST[category], $category[parent_id], '$_POST[width]',
        '$_POST[height]', '$img', $_POST[activado], '$ext',
        '".escape($_POST['instructions'])."', '$date', $_POST[show_ads],
        $_POST[rmode], '$_POST[power_id]', '$_POST[starter]', '$seo_url',
        '$_POST[submitter]')
    ") or die ('There was a MySql error when adding the game: '.mysql_error());

Then the data is added but without the mentioned checkbox value.

Database table settings:

Name: starter
Type: TinyINT
Lenght/Values: 1
default: As defined : 0

I don't know why the data of the checkbox is not inserted when all other data are inserted and working?

Could someone help me with this?

Thanks

  • 写回答

4条回答 默认 最新

  • dqpkea9486 2013-04-29 06:26
    关注

    Checkboxes are somewhat special. They only get posted IF they are checked.

    If you have foollowing HTML:

    <input type="checkbox" name="starter" value="1" id="starter0">
    

    and a user only check the checkbox, then result of post would be like

    $_POST['starter'] = 1
    

    You have to check whether or not a checkbox is sent and after that do the correct insert.

    If you have it checked and it still does not work, it is an issue with actual query even if you don't get an explicit error. MySQL is somewhat forgiving when inserting things with "wrong" datatype.

    UPDATE: You can try this:

    if (isset($_POST['starter']) && $_POST['starter'] == 1) {
        $starter = 1;
    }
    else {
        $starter = 0;
    }
    
    mysql_query("
        INSERT INTO datatab (
            name, description, url, category_id, category_parent, width, height,
            image, activado, filetype, instructions, date_added, show_ads, rmode,
            power_id, starter, seo_url, submitter
        )
        VALUES (
            '".escape($_POST['name'])."', '".escape($_POST['description'])."',
            '$url', $_POST[category], $category[parent_id], '$_POST[width]',
            '$_POST[height]', '$img', $_POST[activado], '$ext',
            '".escape($_POST['instructions'])."', '$date', $_POST[show_ads],
            $_POST[rmode], '$_POST[power_id]', $starter, '$seo_url',
            '$_POST[submitter]')
        ") or die ('There was a MySql error when adding the game: '.mysql_error());
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 Macbookpro 连接热点正常上网,连接不了Wi-Fi。
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义