#php #mysql #sql-delete
#php #mysql #sql-удалить
Вопрос:
Я использую для создания таблицы содержимое таблицы MySQL. Проблема в том, что я пытаюсь создать кнопку удаления (x) для каждой строки в таблице (удалить столбец).
<?php
$html = "<table>";
$html .= "<tr>";
$html .= "<th>id</th>";
$html .= "<th>Event type</th>";
$html .= "<th>Date</th>";
$html .= "<th>Price(€)</th>";
$html .= "<th>Description</th>";
$html .= "<th>Delete</th>";
$html .= "</tr>";
foreach($event as $e){
$html .= "<tr>";
$html .= "<td>$e->eventId</td>";
$html .= "<td>$e->eventType</td>";
$html .= "<td>$e->eventDate</td>";
$html .= "<td>$e->eventPrice</td>";
$html .= "<td>$e->eventDescr</td>";
$html .= "<td><--the delete button has to be here--></td>";
$html .= "</tr>";
}
$html .= "</table>";
echo $html;
Я пытался использовать кнопку onclick, но абсолютно безуспешно. Кто-нибудь может дать мне какие-нибудь советы?
Комментарии:
1. что вас подводит? Я также не вижу никакого кода базы данных.
2. В принципе, я хочу использовать УДАЛЕНИЕ ИЗ идентификатора имя_таблицы some_column = EventID
3. вам нужно использовать
DELETE FROM table WHERE col = ?
4. я не уверен, как вставить кнопку и какой должна быть функция
5. У вас две проблемы: 1, вы не прочитали код «как задать вопрос». В вашем вопросе должен быть указан минимальный код, необходимый для воспроизведения проблемы. И 2, вы не определили «проблему». Как говорится, «хорошо определенная проблема уже наполовину решена»
Ответ №1:
Мое решение — лишь одно из многих возможных
1) создайте js-функцию для удаления строки и вызовите ajax-запрос на удаление элемента из базы данных
function removeRow(item,eventId)
{
var row = $(item).parent().parent();
$.ajax(url: '(url_to)/remove.php?id=' eventId,
success: function(resp)
{
if(resp=='OK')
{
row.remove();
}
}
);
}
2) кнопка создать
$html .= '<td><a href="javascript:removeRow(this,'.$e->eventId.');return false;">Delete</a></td>';
3) создайте PHP-скрипт
<?php
//connection to DB
$dbhost = "localhost";
$dbname = "dbb";
$dbuser = " ";
$dbpswd = " ";
try
{
$db = new PDO("mysql:host=".$dbhost.";dbname=".$dbname,$dbuser,$dbpswd);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//removing event
$count = $db->exec("DELETE FROM `someTable` WHERE id = {intval($id)}");
//return OK if event was correctly deleted
if($count==1)
{
echo 'OK';
}
}
catch (PDOException $e)
{
//only for development version
echo $e->getMessage();
}
die();
Комментарии:
1. итак, что входит в php-скрипт? я полагаю, что-то вроде УДАЛЕНИЯ Из ТАБЛИЦЫ events_archive, ГДЕ id = EventID?
2. Я описал в своем предыдущем ответе
3. теперь моя ошибка исправлена
4.
Notice: Undefined variable: id in <url> on line 77 SQLSTATE[42000]: Syntax error or access violation: 1064
5. это
$count = $db->exec("DELETE FROM
строка someTable` WHERE id = {intval($id)}»);`