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