PHP - как вставить данные формы в первый раз и во второй раз обновить те же данные

0

У меня есть форма с именем поля ввода (id, settings, value) с кнопкой отправки. Теперь, я вставляю данные формы в базу данных, теперь я хочу, чтобы, когда из вставки данных в первый раз, то как обновлять данные той же формы второй раз Wthout вставлять данные.

    <?php 
    if(isset($_POST['save']))
    {
    include "connection.php" ;

    $id = $_POST['id'] ;
    $name = $_POST['name'] ;
    $value   = $_POST['value'] ;

$query="create table if not exists settings(id int(10),name varchar(50),value varchar(100))";
$results=mysql_query($query) or die("QUERY FAILED 1:".mysql_error());   

$query="INSERT INTO settings VALUES('$id','$name','$value')"; 
$results=mysql_query($query) or die("QUERY FAILED 2:".mysql_error());


 $query="update settings set value='$value' where id='$id'";
 $results=mysql_query($query) or die("QUERY FAILED 3:".mysql_error());



     echo $settings ;

    }
  • 0
    Когда вы вставляете данные, получите последний идентификатор вставки этих данных и обновите его, используя этот идентификатор
  • 0
    Я предлагаю вам избегать вставки id с помощью запроса INSERT , сделать id качестве primary key в БД и позволить ему увеличиваться автоматически. После вставки вы получите последний вставленный идентификатор записи как $last_inserted_id = $mysql->insert_id; , сделайте обновление, используя этот идентификатор, как вы хотите. Я не уверен, почему вы обновляете ту же запись в БД с тем же $value
Показать ещё 1 комментарий
Теги:

1 ответ

1
Лучший ответ

Вам нужно запросить таблицу, чтобы проверить, существует ли значение или нет. Если запись не существует, тогда вставьте ее, а затем обновите ее.

<?php
    if(isset($_POST['save']))
    {
    include "connection.php" ;
    $id = $_POST['id'] ;
    $name = $_POST['name'] ;
    $value   = $_POST['value'] ;

    $query="create table if not exists settings(id int(10),name varchar(50),value varchar(100))";
    $results=mysql_query($query) or die("QUERY FAILED 1:".mysql_error());


    // pass the name and check whether the value is exists or not,
    $result = mysql_query("SELECT * FROM settings WHERE name = '".$name."'");
    $number_of_rows = mysql_num_rows($result);

    // if number of rows is 0, then insert it. else update it
    if($number_of_rows == 0){
        $query="INSERT INTO settings VALUES('$id','$name','$value')";
    } else{
        // get the row id
        $data_row = mysql_fetch_row($result);
        $record_id = $data_row[0];
        $query="UPDATE settings SET value='".$value."' WHERE id = '".$record_id."'";
    }

    $results=mysql_query($query) or die("QUERY FAILED 2:".mysql_error());

     echo "Record inserted/updated";
    }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню