Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] al intentar eliminar un registro de una tabla me elimina siempre el último

Estas en el tema de al intentar eliminar un registro de una tabla me elimina siempre el último en el foro de PHP en Foros del Web. Hola: Estoy intentando borrar un registro de una tabla mediante un botón. El caso es que, pulse el botón que pulse, siempre me elimina el ...
  #1 (permalink)  
Antiguo 02/06/2015, 08:52
 
Fecha de Ingreso: junio-2015
Mensajes: 3
Antigüedad: 8 años, 10 meses
Puntos: 0
Pregunta al intentar eliminar un registro de una tabla me elimina siempre el último

Hola:

Estoy intentando borrar un registro de una tabla mediante un botón. El caso es que, pulse el botón que pulse, siempre me elimina el último registro, he probado un montón de cosas y no doy con la correcta. ¿Podéis ayudarme? Gracias

El código que tengo es el siguiente:

baja_maquinaria_nuevo.php

<div id="mainContent">
<h3><div align="center">Baja de maquinaria</div></h3>


<form id="form_borra_maquinaria" action="borra_maquinaria_nuevo.php" method="post">

<?php

$mostrar = "SELECT * FROM maquinaria";
mysql_query("SET NAMES 'utf8'");
$resul = mysql_query($mostrar, $conn);

?>

<div style="text-align:center;">
<table class="tabla_normal" align="center">
<tr style="background-color:#b08863; color:#FFF;">
<th>Borrar</th>
<th>Nombre máquina</th>
<th>Nº Serie</th>
<th>Fabricante</th>
</tr>

<?php
//Mostramos los registros
while ($row = mysql_fetch_array($resul))
{

echo "
<tr><td><input type='hidden' name='id' value=".$row['numero_maquina']." />
<input class='buttonForm' id='submit' type='submit' name='enviar' value='Borrar' title='Borrar'>
</button></td>
<td align='center'>".$row['nombre_maquina']."</td>
<td align='center'>".$row['num_serie']."</td>
<td align='center'>".$row['fabricante']."</td>
</tr>";

}

?>
</table>
</div>

</form>
</div>

</div>



Y recojo los datos en : borra_maquinaria_nuevo


<?php
header("Content-Type: text/html;charset=utf-8");
// Recibimos por POST los datos procedentes del formulario

mysql_select_db($database_conn, $conn);


$id= $_POST["id"];

$sql = "DELETE FROM maquinaria WHERE numero_maquina = '$id'";
mysql_query("SET NAMES 'utf8'");

$result = mysql_query($sql) or die (mysql_error());

?>
  #2 (permalink)  
Antiguo 02/06/2015, 09:20
 
Fecha de Ingreso: abril-2015
Ubicación: Castelldefels
Mensajes: 76
Antigüedad: 9 años
Puntos: 3
Respuesta: al intentar eliminar un registro de una tabla me elimina siempre el último

Hola xbquelle.

El problema que tienes es que estás poniendo la etiqueta </form> en un lugar erróneo.

Haz una prueba. Pon la etiqueta </form> antes del final del último </tr> dentro del wihle
De ese modo te cogerá todas las id de todas las filas.

Otra forma de hacerlo sería sin boton, con un link que ponga borrar, <a href=... >, recoger las variables en el link y pasarlas por get.

Saludos!
  #3 (permalink)  
Antiguo 02/06/2015, 09:48
 
Fecha de Ingreso: junio-2015
Mensajes: 3
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: al intentar eliminar un registro de una tabla me elimina siempre el último

Gracias me has dado una pista y me ha servido de ayuda, al final lo he puesto así:

<div style="text-align:center;">
<table class="tabla_normal" align="center">
<tr style="background-color:#b08863; color:#FFF;">
<th>Borrar</th>
<th>Nombre máquina</th>
<th>Nº Serie</th>
<th>Fabricante</th>
</tr>

<?php
//Mostramos los registros
while ($row = mysql_fetch_array($resul))
{
?>
<form id="form_borra_maquinaria" action="borra_maquinaria_nuevo.php" method="post">
<tr><td><input type='hidden' name='id' value='<?php echo $row['numero_maquina']?>' />
<input class='buttonFormSmall' id='submit' type='submit' name='enviar' value='Borrar' title='Borrar'>
</td></form>

<?php
echo" <td align='center'>".$row['nombre_maquina']."</td>
<td align='center'>".$row['num_serie']."</td>
<td align='center'>".$row['fabricante']."</td>
</tr>";

}
mysql_free_result($resul);
?>
</table>

He puesto el <form> justo antes del botón de borrar el dato y el </form> justo después del botón. Y funciona perfecto. Muchas gracias
  #4 (permalink)  
Antiguo 02/06/2015, 16:25
 
Fecha de Ingreso: abril-2015
Ubicación: Castelldefels
Mensajes: 76
Antigüedad: 9 años
Puntos: 3
Respuesta: al intentar eliminar un registro de una tabla me elimina siempre el último

Genial, me alegro.
Ten en cuenta que el boton debe estar dentro de un form, si cada fila debe ser borrada, cada fila debe tener un form. es pura lógica.

Saludos

Etiquetas: formulario, html, mysql, registro, select, siempre, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:47.