简体   繁体   中英

Update multiple rows also single row using textarea with mysql and php

I want to update three textarea values to the database with a single submit button. But It is not working for me. When I try to update a single textarea then the value is updated to the database correctly, But when I add other two textareas, again it is not working. Other two textareas getting blank values.I know it is a basic question. But this drives me insane. Would anybody please help me to achieve this?

Here is my database table which name is optional and it has some default values:

http://i.stack.imgur.com/afhXJ.png

Here is my three text areas which read the options table default values. When enter a new text it will then insert into the options table according to the option name.

http://i.stack.imgur.com/XUFrW.png

Here is my HTML code:

 <form name="settings" role="form" method="post" action="bangla_insert_submit.php"> <h5>Insert Bangla Head Here:</h5> <textarea name="bangla_head" style="width: 100%"></textarea> <h5>Insert Chamber Head Here:</h5> <textarea name="chamber_head" style="width: 100%"></textarea> <h5>Insert English Head Here:</h5> <textarea name="english_head" style="width: 100%"></textarea> <input name="submit" type="submit" class="btn btn-default" value="Submit" /> </form>

Here is my submited file code.

if (isset($_POST['submit'])) {

    $bangla_head  = $_POST['bangla_head'];
    $chamber_head = $_POST['chamber_head'];
    $english_head = $_POST['english_head'];

    $result = mysql_query( "SELECT option_id, option_name, option_value FROM options" );

    while( $row = mysql_fetch_assoc($result)){

        if (isset($_POST['bangla_head']) && $row['option_name'] == 'bangla_head'){

            //If the option is now yes (isset checks returns true if the box is selected) and the option in the db is N then update.
            mysql_query( "UPDATE options SET option_value = '$bangla_head' WHERE  option_id ='20' ");
        }
        if (isset($_POST['chamber_head']) && $row['option_name'] == 'chamber_head'){

            //If the option is now yes (isset checks returns true if the box is selected) and the option in the db is N then update.
            mysql_query( "UPDATE options SET option_value = '$chamber_head' WHERE  option_id ='21' ");
        }
        if (isset($_POST['english_head']) && $row['option_name'] == 'english_head'){

            //If the option is now yes (isset checks returns true if the box is selected) and the option in the db is N then update.
            mysql_query( "UPDATE options SET option_value = '$english_head' WHERE  option_id ='22' ");
        }

    }
}

Try this

 if (isset($_POST['bangla_head']) && ($_POST['bangla_head']!='') ) 

isset() checks if a variable has a value including ( False, 0, or empty string), but not NULL. Returns TRUE if variable exists otherwise returns FALSE.

You must put validation for blank fields.

Write your code by this way:-

$bangla_head  = $_POST['bangla_head'];
$chamber_head = $_POST['chamber_head'];
$english_head = $_POST['english_head'];    


 $arr = [
    '20'=>$bangla_head,
    '21'=>$chamber_head,
    '22'=>$english_head
 ];

 foeach($arr as $key => $value){
     mysql_query( "UPDATE options SET option_value = '$value' WHERE  option_id =$key ");
 }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM