Как передать идентификатор для удаления данных в базе данных - PullRequest
0 голосов
/ 09 мая 2020

Я все еще пытаюсь научиться использовать сервер базы данных.

Я хотел бы попросить помощи о том, как передать значение идентификатора для удаления, добавления и редактирования столбцов в моей базе данных / таблице.

Вот мой код:

jQuery( document ).ready(function() {
var table = jQuery('#example').dataTable({

         "bProcessing": true,
         "sAjaxSource": "server/data2.php",
          "bPaginate":true,
          "sPaginationType":"full_numbers",
          "iDisplayLength": 15,

         "aoColumns": [
                { mData: 'INVOICE' },
                { mData: 'PRODUCT' },
                { mData: 'SIZE' },
                { mData: 'DATE' },
                { mData: 'DDATE' },
                { mData: 'SUPLIER' },
                { mData: 'COST' },
                { mData: 'STATUS' }
        ],
            "columnDefs": [ 
          {   
            "aTargets":[8],  // this your column of action
            "mData": null, 
            "mRender": function(data, type, full){
             return '<div id="container"><a class="btn btn-info btn-sm" href="javascript: void(0);" class="click_'+full[0]+'" title="Click to PRINT">PRINT</a></div>';   // replace this with button 
            }
          }
         ]
});   

вот моя таблица

<table id="example" class="table table-striped table-bordered table-hover" width="100%" cellspacing="0">
    <thead>
        <tr>

            <th>INVOICE</th>
            <th>Product Name</th>
            <th>SIZE</th>
            <th>DATE ORDER</th>
            <th>DATE DELIVER</th>
            <th>SUPPLIER</th>
            <th>COST</th>
            <th>STATUS</th>
            <th>FORM</th>

        </tr>
    </thead>

</table>

вот мой sql для вызова данных из базы данных

$sql = "Select s.invoice_number as INVOICE, s.date_order as DATE, s.suplier as SUPLIER, s.date_deliver as DDATE, CONCAT(d.product_name, d.color) as PRODUCT, s.qty as QTY, s.cost as COST, s.status as STATUS, d.size_id as SIZEFROM purchases sINNER JOIN products d on d.product_id=s.p_name WHERE STATUS = 'received'LIMIT 100000";

$resultset = mysqli_query($conn, $sql) or die("database error:". mysqli_error($conn));
$data = array();
while( $rows = mysqli_fetch_assoc($resultset) ) {
    $data[] = $rows;
}
$results = array(
    "sEcho" => 1,
    "iTotalRecords" => count($data),
    "iTotalDisplayRecords" => count($data),
    "aaData"=> $data
);
echo json_encode($results);
exit;

Я все еще учусь пользоваться базой данных.

Спасибо тем, кто может дать совет :)

1 Ответ

1 голос
/ 09 мая 2020

Как передать идентификатор для удаления данных в базе данных

Строка запроса SQL должна выглядеть у вас так PHP код:

$sql = 'DELETE FROM invoice WHERE id = <ID>';

На вопрос дан ответ, однако, как я вижу, у вас есть и другие проблемы.

Например, вам нужно где-то хранить эти идентификаторы, чтобы вы знали, что удалять. Поскольку у вас есть таблица, я предполагаю, что вы хотите заполнить ее данными из базы данных. Для этого строка запроса basi c SQL будет выглядеть так - если вы не используете какую-либо фильтрацию:

$sql = 'SELECT * FROM invoice';

Затем вы поместите результаты в свою таблицу примерно так:

<table id="example" class="table table-striped table-bordered table-hover" width="100%" cellspacing="0">
    <thead>
    <tr>
        <th>INVOICE</th>
        <th>Product Name</th>
        <th>SIZE</th>
        <th>DATE ORDER</th>
        <th>DATE DELIVER</th>
        <th>SUPPLIER</th>
        <th>COST</th>
        <th>STATUS</th>
        <th>FORM</th>
        <th></th>
    </tr>
    <?php
        foreach ($invoices as $invoice) {
            echo "<tr id='row-{$invoice['id']}'>
                    <td>{$invoice['invoice_number']}</td>
                    <td>{$invoice['product_name']}</td>
                    <td>{$invoice['some_field']}</td>
                    <td>{$invoice['some_other_field']}</td>
                    <td>{$invoice['ect']}</td>
                    // ...
                    <td><button class='delete-btn' id='{$invoice['id']}'>Delete</button></td>
                 </tr>";
        }
    ?>
    </thead>
</table>

Обратите внимание на дополнительный столбец. Здесь вы можете разместить кнопки, как я сделал это с кнопкой «Удалить». Также обратите внимание, что атрибут id кнопки - это идентификатор счета из базы данных. Для этого есть более лучшие решения, но для начала это будет хорошо, потому что это легко понять.

Причина, по которой я поместил этот идентификатор туда, потому что вот так, если вы хотите удалить строку в HTML table, вы можете получить ID кнопки с помощью javascript / jQuery.

Пример:

$(document).ready(function(){
    $('body').on('click', 'button.delete-btn', function(events){
        let id = $(this).attr('id');
        $.post("invoice.php", {
            id
        });

        $('#row-' + id).remove();
    });
});

Эта функция jQuery запускается при нажатии кнопки. Он получает атрибут id объекта, на который вы нажали (кнопку), а затем отправляет почтовый запрос на счет-фактуру. php с параметром id - это файл, в котором вы выполняете строку запроса DELETE и передаете этот идентификатор в условие WHERE, полученное вами из запроса. Наконец, функция jQuery удаляет строку из DOM.

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