0

Here is my code. It is insert only last element value. I want to insert all value in one field with different id and all data insert in different different row.

    public function update($user_slider, $user_welcomebox, $user_servicebox, $user_postbox, $user_testimonials, $user_welcomemessage, $user_welcomededcription, $user_welcomelink, $user_welcomelinktitle, $user_servicetitle, $user_totalservicedisplay, $user_ourservice, $user_blogtitle, $user_totalblogdisplay,$user_ourblog, $user_newstitle, $user_totalnewsdisplay, $user_ournews, $user_totaltestimonialdisplay, $user_ourtestimonial) {
    $db = connectionstart();
     $currentdatetime = date("Y-m-d H:i:s", time());
        $currentgmtdatetime = gmdate("Y-m-d H:i:s", time() - (5 * 60 * 60));
    $sql = "select * from user_options ";
    $result = mysql_evaluate($db, $sql, 0);
    $columns = array(
        "name" => 'slider'
            , "value" => $user_slider
        ,"name" => 'welcomebox'
            , "value" => $user_welcomebox
        ,"name" => 'servicebox'
            , "value" => $user_servicebox
        ,"name" => 'postbox'
            , "value" => $user_postbox
        ,"name" => 'testimonials'
            , "value" => $user_testimonials
        ,"name" => 'welcomemessage'
            , "value" => $user_welcomemessage
        ,"name" => 'welcomededcription'
            , "value" => $user_welcomededcription
        ,"name" => 'welcomelink'
            , "value" => $user_welcomelink
        ,"name" => 'welcomelinktitle'
            , "value" => $user_welcomelinktitle
        ,"name" => 'servicetitle'
            , "value" => $user_servicetitle
        ,"name" => 'totalservicedisplay'
            , "value" => $user_totalservicedisplay
        ,"name" => 'ourservice'
            , "value" => $user_ourservice
        ,"name" => 'blogtitle'
            , "value" => $user_blogtitle
        ,"name" => 'totalblogdisplay'
            , "value" => $user_totalblogdisplay
        ,"name" => 'ourblog'
            , "value" => $user_ourblog
        ,"name" => 'newstitle'
            , "value" => $user_newstitle
        ,"name" => 'totalnewsdisplay'
            , "value" => $user_totalnewsdisplay
        ,"name" => 'ournews'
            , "value" => $user_ournews
        ,"name" => 'totaltestimonialdisplay'
            , "value" => $user_totaltestimonialdisplay
        ,"name" => 'ourtestimonial'
            , "value" => $user_ourtestimonial
        , "entrydate" => $currentdatetime

        );
    if ($result != 0) {
        $result = mysql_update($db, "user_options", $columns, "");
        if ($result == true) {
            $result = 'SUCCESS';
        }
    } else {
        $result = mysql_insert($db, "user_options", $columns, "");
        if ($result == true) {
            $result = 'SUCCESS';
        }
    }
    connectionclose($db);
    return $result;
}

this code insert only last value like this

id          name             value
 1          testimonials      5

i want to insert data like this

id      name               value
 1      slider               0
 2      welcome box          1
 3      welcome message      hi

Function for update

     if (!function_exists('mysql_update')) {

function mysql_update($db, $table, $columns, $where = "") {
    $sql = "UPDATE `" . $table . "` SET";
    $arry = array();
    foreach ($columns as $field => $value) {
        array_push($arry, " `" . $field . "`='" . $value . "' ");
    }
    // implode keys of $array...
    $sql .= implode(",", $arry);
    if (isset($where) && $where != "") {
        $sql .= " " . $where;
    }
    $result = mysql_query($sql, $db) or die(mysql_error());
    return $result;
}

}

function for insert

     function mysql_insert($db, $table, $columns) {
    $sql = "INSERT INTO `" . $table . "` ";
    // implode keys of $array...
    $sql .= " (`" . implode("`, `", array_keys($columns)) . "`)";
    // implode values of $array...
    $sql .= " VALUES ('" . implode("', '", $columns) . "') ";

    $result = mysql_query($sql, $db) or die(mysql_error());
    return $result;
}
Brothers
  • 99
  • 1
  • 8
  • `mysql_*` functions are deprecated, use `mysqli_` or PDO. Also, your code is highly insecure, please look at http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php . – ksimka Jan 29 '16 at 07:48
  • 1
    The simple question is — your `$columns` array actually contains only one 'name' and only one 'value'. PHP arrays can't contain more than one unique key, otherwise what you get on `$columns['name']`? You must restructure your data, like `$columns = array(array('name' => '...', 'value' => '...'), array('name' => '...', 'value' => '...'), ...);` or so. – ksimka Jan 29 '16 at 07:51
  • write in my code please @ksimka – Brothers Jan 29 '16 at 08:28
  • Where you set `$columns`, but you should seriously rewrite your code. No one will do it for you. – ksimka Jan 29 '16 at 08:33
  • please help me i m student and i m in exam please help me @ksimka – Brothers Jan 29 '16 at 08:35

3 Answers3

0

Change your $columns such that it becomes

$columns = array(
            "slider" => $user_slider,
            "welcomebox" => $user_welcomebox,
            ...
            "ourtestimonial" => $user_testimonial);

function mysql_insert($db, $table, $columns) {
    $sql = "INSERT INTO `" . $table . "` ";
    $sql .= " (`" . implode("`, `", array_keys($columns)) . "`)";
    $sql .= " VALUES ('" . implode("', '", array_values($columns)) . "') ";

    $result = mysql_query($sql, $db) or die(mysql_error());
    return $result;
}
Zamrony P. Juhara
  • 5,222
  • 2
  • 24
  • 40
0

Oh sorry, i missed you table schema.

$columns = array( 
             array( "name" => "slider", "value"=>$user_slider),
             array( "name" => "welcomebox", "value"=>$user_welcomebox),
             ...
             ); 

and then you need to

function map($item) {
    return "(".$item['name'] . "," . $item['value']. ")";
}

function mysql_insert($db, $table, $columns) {
    $sql = "INSERT INTO `" . $table . "` ";
    $sql .= " (`name`, `value`) ";
    $sql .= " VALUES ('" . implode("', '", array_map("map", $columns)) . "') ";

    $result = mysql_query($sql, $db) or die(mysql_error());
return $result;

}

Zamrony P. Juhara
  • 5,222
  • 2
  • 24
  • 40
0

if i use this function then what kind of change in this function

 function mysql_insert_multiple($db, $table, $columns) {
    $sql = "INSERT INTO `" . $table . "` ";
    // implode keys of $array...
    $sql .= " (`" . implode("`, `", array_keys($columns[0])) . "`)";
    // implode values of $array...
    $sql .= " VALUES ";
    $tempstr = array();
    foreach ($columns as $row) {
        $tempstr[] = " ('" . implode("', '", $row) . "') ";
    }
    $sql.=implode(',', $tempstr);
    $sql.=";";
    $result = mysql_query($sql, $db) or die(mysql_error());
    return $result;
Brothers
  • 99
  • 1
  • 8