php - eliminar fila en phpmyadmin

CorePress2024-01-24  9

Estoy intentando eliminar la primera fila en phpmyadmin pero tengo un problema. No recibo ningún error de SQL.

Códigos PHP

                           
if (isset($_POST['delete'])) {
    echo "deleted";
    $delete = $_POST['delete'];
    $SQL = $odb -> prepare("DELETE FROM `accounts_free`LIMIT 1");
    $SQL -> execute(array($delete));
    $notify = success('Account has been successfully deleted');
}


html

<form method="post">
<button name="delete" value="test" type="submit" class="btn btn-outline-danger"><i class="far fa-trash-alt"></i></button>
</form>

otro botón

<form method="post">
<button name="delete" class="btn btn-hero-success js-click-ripple-enabled" type="submit" data-toggle="click-ripple" style="margin-right:auto;margin-left:auto;overflow: hidden; position: relative; z-index: 1;">test</button>
</form>

No encontré ninguna solución. No estoy seguro de qué pasa. ¿puedes ayudarme?

en una página diferente estos códigos están funcionando php

if (isset($_POST['delete'])) {
    $delete = $_POST['delete'];
    $SQL = $odb -> prepare("DELETE FROM `accounts_free` WHERE `id` = ?");
    $SQL -> execute(array($delete));
    $notify = success('Account has been successfully deleted');
}

html

 <button name="delete" value="<?=$rAccount['id']?>" type="submit" class="btn btn-outline-danger"><i class="far fa-trash-alt"></i></button>

Olvidó la cláusula WHERE y el marcador de posición del parámetro en su consulta. Active el informe/registro de errores: probablemente tenga un error acerca del número de parámetros que no coinciden con el número de marcadores de posición

- ADyson

27/03/2021 a las 13:49

Estoy bastante seguro de que aparece un error en el archivo de registro de errores de su servidor http. Porque tu sintaxis de php no es válida. Ejemplo: debería ser $odb->prepare(..., no $odb -> prepare(... ... También necesita colocar un espacio en blanco dentro de ``accounts_freeLIMIT. Y ciertamente desea calificar qué fila quieres eliminar...

-arkascha

27/03/2021 a las 13:49

actualización permanente de la página ahora

- helen thomas

27/03/2021 a las 18:13

¿Quieres decir que se actualiza sin cesar? Probablemente se trate de un problema aparte causado por algún otro código que no has mostrado aquí.

- ADyson

27/03/2021 a las 19:25



------------------------------------

<?php
if (isset($_POST['delete'])) {
    $SQLSelect = $odb->query("DELETE FROM `accounts_free` ORDER BY `id` ASC LIMIT 1");
    
}

?>

Eso funcionó para mí.



------------------------------------

En primer lugar, me parece que esto no es PhpMyAdmin sino tu propio código PHP. En segundo lugar, como sugirieron @ADyson y @arkascha, querrás especificar qué fila eliminar posiblemente usando la clave principal de la fila. Por ejemplo, puedes agregar esto dentro de tu <formulario> etiquetas:

<input type="hidden" name="accounts_free_id" value="ACCOUT_FREE_ID_TO_DELETE">

Y dentro de tu if:

//space removed as @arkascha suggested
$SQL = $odb->prepare("DELETE FROM `accounts_free` WHERE `id`='.$_POST['accounts_free_id'].'");

En este ejemplo supongo que el identificador de la tabla account_free es id. Esto es sólo para que os hagáis una idea: recordad que cada entrada que llega del exterior hay que comprobarla para evitar SQ.L Inyección u otros tipos de intentos de ataque.

2

Gracias por tu sugerencia. pero en una página diferente estos códigos funcionan php ``` if (isset($_POST['delete'])) { $delete = $_POST['delete']; $SQL = $odb -> preparar("ELIMINAR DE cuentas_libres DONDE id =?"); $SQL -> ejecutar(matriz($eliminar)); $notificar = éxito('La cuenta se ha eliminado correctamente'); } ``` html ``` <nombre del botón="eliminar" valor="<?=$rCuenta['id']?>" tipo = "su"bmit" class="btn btn-outline-danger"><i class="far fa-trash-alt"></i></button> ```

- helen thomas

27/03/2021 a las 16:32

Tienes que eliminar los espacios antes y después de la flecha ->.

-Ad Fortia

27/03/2021 a las 16:41

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare