2015-06-09 5 views
0

У меня есть две таблицы Billing_month и регистрация в mysql. Я хочу вставить в Billing_month, и в то же время я хочу обновить строку (Задолженность) в регистрационной таблице. как я могу это сделать.Вставка и обновление одним щелчком мыши

PHP код является:

<?php 
    //create connection 
    include("database/db.php"); 

    // Check connection 
    if($link === false){ 
     die("ERROR: Could not connect. " . mysqli_connect_error()); 
    } 


    // Insert Data 

    @$month=$_POST['Bill_month']; 
    @$issuedate=$_POST['Bill_issue_date']; 
    @$duedate=$_POST['Bill_due_date']; 
    @$surcharge =$_POST['Surcharge']; 

    $sql = "INSERT INTO billing_month (Bill_month,Bill_issue_date,Bill_due_date,Surcharge) values('$month','$issuedate','$duedate','$surcharge')"; 

    if(mysqli_query($link, $sql)){ 
     echo "Records added successfully."; 
    } else{ 
     echo "ERROR: Could not able to execute $sql. " . mysqli_error($link); 
    } 

    // close connection 
    mysqli_close($link); 
?> 

Нужна ваша помощь?

+1

Google 'multi_query', иначе вы можете просто создать два отдельных запроса и выполнить их один за другим. – Epodax

+0

Уже сделано. но did'nt работает .. –

+0

многопользовательский запрос или два отдельных? – Epodax

ответ

2

Я бы только запустите обновление запроса, если вставка прошла успешно.

<?php 
//create connection 
include("database/db.php"); 

// Check connection 
if($link === false){ 
    die("ERROR: Could not connect. " . mysqli_connect_error()); 
} 

// Insert Data 
@$month=$_POST['Bill_month']; 
@$issuedate=$_POST['Bill_issue_date']; 
@$duedate=$_POST['Bill_due_date']; 
@$surcharge =$_POST['Surcharge']; 

$sql = "INSERT INTO billing_month (Bill_month,Bill_issue_date,Bill_due_date,Surcharge) 
values('$month','$issuedate','$duedate','$surcharge')"; 

if(mysqli_query($link, $sql)){ 
    $res = "Records added successfully."; 

    // Update Registration Arrears query 
    $sql_upadte = "Update registration ...." 
    if(mysqli_query($link, $sql_update)){ 
    $res .= "<br>Registration record updated successfully."; 
    }else{ 
    $res .= "<br>ERROR: Could not able to execute.<br>".$sql_update."<br>".mysqli_error($link); 
    } 

    echo($res); 

} else{ 
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link); 
} 

// close connection 
mysqli_close($link); 
?> 
+0

спасибо брату. готово! –

+0

Я рекомендую вам санировать и проверять данные $ _POST [] перед запуском вашего запроса на вставку. Кроме того, вы должны привязать свои параметры. – Brian

0

Это простой многопроцессорный запрос, вы можете посмотреть здесь php - multi_query.

<?php 

$query = "INSERT INTO billing (...) VALUES (....) ; "; 
$query .= "UPDATE billing SET .... ; "; 

if(!mysqli_multi_query($link,$query)){ 
    ... 
} 

В противном случае вы можете все еще просто сделать две отдельные запросы и выполнять их один за другим

+0

Добро пожаловать. – Epodax

0

использования двух запросов для вставки и обновления, а затем выполнить их

$sql = "INSERT INTO billing_month (Bill_month,Bill_issue_date,Bill_due_date,Surcharge) 
      values('$month','$issuedate','$duedate','$surcharge')"; 

$sqlUpdate = "Place your update query here"; 

$insert = mysqli_query($sql); 
$update = mysqli_query($sqlUpdate); 
+0

теперь ошибка: Предупреждение: mysqli_query() ожидает как минимум 2 параметра, 1 задано в D: \ wamp \ www \ login \ Billing_month_code.php в строке 23 –

0

После вставки в платежной таблицу получить последний добавленный идентификатор

$id = mysql_insert_id(); 

Затем обновите регистрационную таблицу.

$query = "UPDATE registration SET .... WHERE billing_id = $id; "; 
mysql_query($query); 
+0

спасибо, что вы .. –

Смежные вопросы