Как перенести данные в таблицу mysql? - PullRequest
0 голосов
/ 13 февраля 2019

Как перенести данные из таблицы Mysql или из DataTables в другую таблицу Mysql в Laravel?

Эта вторая часть кода показывает, что данные удаляются из первой таблицы после завершения передачи.Первая часть - мой вопрос, он должен быть в той же функции и событии.

Просмотр

$(document).on('click', '#Confirm', function(){
    var table = $('#panier_table').DataTable();
    var i = 2;    
    var colId = table.column( 0 ).index();

    var id = [];
    if(confirm("Êtes-vous sûr de vouloir confirmer cette commande?"))
    {
        for (var i = 0; i < table.data().count(); i++)
        {
            var rowId = table.row( i ).index();
            console.log( table.cells({ row: rowId, column: colId }).data()[0] );
            id.push(table.cells({ row: rowId, column: colId }).data()[0]);
        }                            
        if(id.length > 0)
        {
            $.ajax({
                url:"{{ route('ajaxdata.commande')}}",
                method:"get",
                data:{id:id},
                success:function(data)
                {
                    alert(data);
                    $('#panier_table').DataTable().ajax.reload();
                }
            });
        }
    }
});

Контроллер:

function Commande(Request $request)
{
    $pn = $request->input('id');
    $pdr = Panier::whereIn('id', $pn);
    if($pdr->delete())
    {
        echo 'Commande Confirmée';
    }
}

Вот результат:

enter image description here

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Это работает, но я должен вставить то же количество атрибутов, что и в первой таблице, или я получаю эту ошибку:

"SQLSTATE[21S01]: Insert value list does not match column list: 1136 Column count doesn't match value count at row 1 (SQL: INSERT into Commandes (ID_User, ID_Pi ▶"

Мне просто нужно 3 атрибута (ID_User, ID_Piece, QTE):

function Commande(Request $request)
{
    $pn = $request->input('id');
    $pdr = Panier::whereIn('id', $pn);

    $bindings = $pdr->getBindings();
    $insertQuery = 'INSERT into Commandes (id, ID_Ligne, ID_Piece, ID_User, Piece, QTE, created_at, updated_at) '
    . $pdr->toSql();

    \DB::insert($insertQuery, $bindings);

       if($pdr->delete())
       {
          echo 'Commande Confirmée';
       }            

}
0 голосов
/ 14 февраля 2019

Итак, теперь у вас есть это,

function Commande(Request $request)
{
    $pn = $request->input('id');
    $pdr = Panier::whereIn('id', $pn);
    if($pdr->delete())
    {
       echo 'Commande Confirmée';
    }
}

Поскольку у вас есть данные в $ pdr в этой строке

 $pdr = Panier::whereIn('id', $pn);

С этими данными вы можете сохранить их в другой таблице,скажем, я хочу перенести его в таблицу пользователей, я мог бы попробовать следующее

 User::create([
    'name' => $pdr->name,
    'email' => $pdr->email,
 ])

Назначить, какие данные вы хотите подключить к каждому столбцу

Таким образом, ваша конечная функция будет выглядеть примерно так

function Commande(Request $request)
{
    $pn = $request->input('id');
    $pdr = Panier::whereIn('id', $pn);

    $user = User::create([
       'name' => $pdr->name,
       'email' => $pdr->email,
    ])
    if($user){
       if($pdr->delete())
       {
          echo 'Commande Confirmée';
       }        
    }

}

Изменить пользователя на модель по своему вкусу

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...