Cómo eliminar una fila específica en una tabla de base de datos

26 sept 2017, 14:37:16
Vistas: 15.1K
Votos: 0

Aquí creé una página de perfil personalizada basada en el usuario conectado para ver solo sus propios datos insertados en una base de datos personalizada.

Puedes ver que en cada fila, agregué un botón "Eliminar" pero falta el código adecuado.

Todo funciona bien excepto esa parte donde quiero agregar una función para Eliminar el registro. Quizás $wpdb->delete() resuelva mi problema.

Este es mi código:

if ( is_user_logged_in() ) {
global $wpdb;
$current_user = wp_get_current_user();
$username = $current_user->user_login;
$reservations = $wpdb->get_results($wpdb->prepare("SELECT * FROM 
SaveContactForm7_1 WHERE user = %s", $username));


echo "<div align='center'>";
echo "<table class='responsive-table'>";
echo "<caption>Lista de reservaciones</caption>";
echo "<thead>";
echo "<tr>";
echo "<th scope='col'>Nombre</th>";
echo "<th scope='col'>ID</th>";
echo "<th scope='col'>Calidad</th>";
echo "<th scope='col'>Llegada</th>";
echo "<th scope='col'>Núm Vuelo</th>";
echo "<th scope='col'>H. Aterrizaje</th>";
echo "<th scope='col'>Procedencia</th>";
echo "<th scope='col'>Salida</th>";
echo "<th scope='col'>Núm Vuelo</th>";
echo "<th scope='col'>H. Despegue</th>";
echo "<th scope='col'>Destino</th>";
echo "<th scope='col'>Hotel</th>";
echo "<th scope='col'>Habitación</th>";
echo "<th scope='col'>Total</th>";
echo "<th scope='col'>Modificar</th>";
echo "<th scope='col'>Eliminar</th>";
echo "</tr>";
echo "</thead>";
foreach($reservations as $reservation){
echo "<tbody>";
echo "<tr>";
echo "<th  scope='row'>".$reservation->nom."</th>";
echo "<td data-title='ID'>".$reservation->user."</td>";
echo "<td data-title='Calidad'>".$reservation->qualite."</td>";
echo "<td data-title='Llegada'>".$reservation->datearrivee."</td>";
echo "<td data-title='N° Vuelo'>".$reservation->num_vol_arrivee."</td>";
echo "<td data-title='Aterrizaje'>".$reservation->heure_atterrissage."
</td>";
echo "<td data-title='Procedencia'>".$reservation->provenance."</td>";
echo "<td data-title='Salida'>".$reservation->datedepart."</td>";
echo "<td data-title='N° VUELO'>".$reservation->num_vol_depart."</td>";
echo "<td data-title='Despegue'>".$reservation->heure_decollage."
</td>";
echo "<td data-title='Destino'>".$reservation->destination."
</td>";
echo "<td data-title='Elección'>".$reservation->choix."</td>";
echo "<td data-title='Habitación'>".$reservation->typech."</td>";
echo "<td data-title='Precio Total' data-type='currency'>".$reservation-
>calculated_choix."</td>";

Y aquí la parte de "Eliminar":

echo "<td align='center'>

<***Necesito el código aquí "input" o "a href" ***><img class='icon' width='16' height='16'
src='../remove-icon.png' alt='Eliminar' title='Eliminar'></a>
</td>";
echo "</tr>";
echo "</tbody>";
}
echo "</table>";
echo "</div>";
}
2
Comentarios

¿Estás preguntando cómo eliminar una fila usando MySQL?

kero kero
26 sept 2017 15:13:33

La parte de eliminación no es el final del trabajo necesitas hacerlo funcionar. Puedes elegir hacer esto como una solicitud Ajax para notificar al servidor de una acción y realizar cualquier acción que desees hacer. Otro enfoque sería enviar una solicitud de envío para realizar la eliminación y recargar el formulario. Ambos métodos tienen pros y contras.

Drupalizeme Drupalizeme
26 sept 2017 15:43:47
Todas las respuestas a la pregunta 2
1

Sí, puedes utilizar wpdb para eliminar el registro en la tabla personalizada. Algo como esto en la función de WordPress.

require_once ('../../../../wp-load.php');

if (!empty($_POST['id'])) {

  global $wpdb;

  $table='table_name';
  $id = $_POST['id'];
  $wpdb->delete( $table, array( 'id' => $id ) );

}
26 sept 2017 19:42:45
Comentarios

Eso funciona con algunas modificaciones

Ramy Mâaouia Ramy Mâaouia
3 oct 2017 23:03:21
0
  • lado del cliente -> el usuario hace clic en el botón/enlace de eliminar

  • AJAX -> envía esta acción desde el lado del cliente al lado del servidor para ejecutar la función php que elimina la fila correspondiente de la base de datos.

  • lado del servidor -> función para eliminar fila de la base de datos $wpdb->delete()

  • éxito de AJAX -> oculta esta fila de la página del cliente y actualiza solo esta parte de la página

revisa este enlace

26 sept 2017 19:07:56