Foros del Web » Programando para Internet » PHP »

Eliminar registro tabla

Estas en el tema de Eliminar registro tabla en el foro de PHP en Foros del Web. Buenas!! vereis haver si me podeis hechar un cable, yo tengo un formulario en una pagina llamada formulario.php en el cual le doi a enviar ...
  #1 (permalink)  
Antiguo 30/01/2015, 07:28
 
Fecha de Ingreso: enero-2015
Mensajes: 9
Antigüedad: 9 años, 1 mes
Puntos: 0
Eliminar registro tabla

Buenas!! vereis haver si me podeis hechar un cable, yo tengo un formulario en una pagina llamada formulario.php en el cual le doi a enviar y se imprimen los datos en una tabla en otra pagina y bien hasta aqui todo correcto pero me han pedido la opción al lado de cada linea de la tabla el "eliminar" y no se bien bien como recojer ese "nif" y que borre todo el registro de la base de datos, recoje el "nif" pero no borra ,aqui os dejo el codigo haber , he visto varios ejemplos por hay pero la gran mayoria lo hacian con funciones y en otra pag de borrar.php ami me interesaria hacerlo en esta misma haber que veis gracias!!!

<?php

//para hacer la conexion con mysql
$host="localhost";
$user="root";
$pass="";
$bd="miempresa";

//cojemos los datos de un formulario

$nombre = isset($_POST['nombre']) ? $_POST['nombre'] : null ;
$apellidos = isset($_POST['apellidos']) ? $_POST['apellidos'] : null ;
$fecha = isset($_POST['fecha']) ? $_POST['fecha'] : null ;
$nif = isset($_POST['nif']) ? $_POST['nif'] : null ;
$provincia = isset($_POST['provincia']) ? $_POST['provincia'] : null ;

//aqui la conexion con la BD e inserta datos del formulario
$conex = mysqli_connect($host,$user,$pass,$bd);
if(!$conex){
echo "ERROR".mysqli_connect_error();

}
$sql = "INSERT INTO usuaris (nif, nom, cognoms, data_naix, provincia) VALUES ('$nif', '$nombre','$apellidos','$fecha','$provincia')";
if(!$sql){
echo "ERROR en la ejecucion de la sentencia".mysqli_connect_error();
}
mysqli_query($conex,$sql);

$cadena="Select nif,nom,cognoms,data_naix,provincia from usuaris";
$result=mysqli_query($conex,$cadena);
$cadena2= "DELETE FROM usuaris WHERE nif='$cnif'";

echo "<table id='miTabla' border=1 style='text-align: left; margin: auto;'>";
echo"<th><i>Nif</i></th><th><i>Nom</i></th><th><i>Cognoms</i></th><th><i>Data</i></th><th><i>Provincia</i></th>";
while($row=mysqli_fetch_row($result)) {
echo "<tr>";
echo "<td >$row[0]</td>
<td>$row[1]</td>
<td>$row[2]</td>
<td>$row[3]</td>
<td>$row[4]</td>
<td><a href='editar.php'>Editar</a></td>

<td><a href='mostrardatos.php?$cnif=$row[0];'>Eliminar</a></td>";
echo"</tr>";
}
echo "</table>";
mysqli_close($conex);

?>
  #2 (permalink)  
Antiguo 30/01/2015, 08:31
 
Fecha de Ingreso: mayo-2013
Mensajes: 171
Antigüedad: 10 años, 10 meses
Puntos: 4
Respuesta: Eliminar registro tabla

A simple vista, igual que has hecho con la variable $cadena, en $cadena2 te faltaria:

Código PHP:
$result=mysqli_query($conex,$cadena2); 
Dices que lo quieres todo en una pagina, pero yo te recomiendo que al pulsar eliminar, pase por otra pagina de control para asegurar que quieres eliminar el registro y prevenir que elimines algo erroneamente.
Y una vez que lo borres, que esa pagina te redirija de nuevo a la pagina de mostrardatos.php
  #3 (permalink)  
Antiguo 30/01/2015, 13:47
 
Fecha de Ingreso: enero-2015
Mensajes: 9
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Eliminar registro tabla

No funciona si se lo coloco no me hace ni la select para mostrar la tabla
  #4 (permalink)  
Antiguo 30/01/2015, 14:12
 
Fecha de Ingreso: mayo-2013
Mensajes: 171
Antigüedad: 10 años, 10 meses
Puntos: 4
Respuesta: Eliminar registro tabla

Vale.
Primero, yo puse $result, deberia haberlo llamado $result2 para asegurar.

Despues, la variable $cnif no está definida, al menos yo no lo veo.
Si intenta borrar una fila cuando llegue a WHERE... no lo va a encontrar si no defines primero $cnif = ....

Y por ultimo, donde pone Eliminar, el enlace, mostrardatos.php, esa pagina es la que deberia tener el codigo para eliminar la fila (DELETE FROM...)

Es decir, un ejemplo breve:

Consulta.php
Código PHP:
//Seleccionamos los datos
$sql="SELECT dato1, dato2, nif FROM tabla";
$result=mysqli_query($sql$conectar);

//Hacemo echo de la tabla
echo("
<table>
<tr>
...
"
);

//Hacemos el while
while($row=mysql_fetch_array($result)){

//Hacemos echo de las celdas
echo("
<tr>
<td>"
.$row['dato1']."</td>
<td>"
.$row['dato2']."</td>
<td>"
.$row['nif']."</td>
...
</tr>

//Ahora, enlace para eliminar:
<a href='eliminar-registro.php?nif="
.$row['nif']."'>Eliminar</a>

"
);
}

//Cerramos tabla
... 
Y ahora para eliminar:

eliminar-registro.php
Código PHP:
//Conexiones, variables y demas
$nif $_GET['nif'];

//Buscamos si existe
//Si no existe, error
//etc

//Si existe
$eliminar="DELETE FROM tabla WHERE nif = '$nif'";
$result mysqli_query($eliminar$conectar)

//Si es correcto, redirigimos a Consulta.php

//Si falla la operacion, mostramos error. 
Mas o menos algo asi.
No se si es exactamente lo que buscabas, pero asi funciona seguro y creo que es mas simple.
  #5 (permalink)  
Antiguo 30/01/2015, 14:18
Avatar de Djoaq  
Fecha de Ingreso: septiembre-2012
Ubicación: Barcelona
Mensajes: 271
Antigüedad: 11 años, 6 meses
Puntos: 38
Respuesta: Eliminar registro tabla

A ver , sin ánimo de ofender...no se sí me duelen más las faltas de ortografía o el código que has puesto y la forma en como quieres hacerlo...
Espero que el proyecto no sea para subirlo a producción!
1 pretendes borrar solo pasando un parametro por get?
Si haces consultas entiendo que no se piense en la seguridad (error)pero..
Imaginate lo fácil que sería borrar datos para un usuario avanzado ajeno a la empresa!
2 Además si mezclas toda la lógica de negocio en 1 solo archivo , te vas a equivocar no va a ser fácil mantenerlo y lo que es peor si lo coge otra persona se va a mosquear un poco..
3 Filtra todos los datos que te envíen los usuarios.

Dicho esto , yo no voy a a ayudarte a hacerlo como quieres , te ayudaremos a hacerlo bien pero no como tu quieres.

Suerte!
  #6 (permalink)  
Antiguo 30/01/2015, 14:29
 
Fecha de Ingreso: enero-2015
Mensajes: 9
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Eliminar registro tabla

Cita:
Iniciado por Djoaq Ver Mensaje
A ver , sin ánimo de ofender...no se sí me duelen más las faltas de ortografía o el código que has puesto y la forma en como quieres hacerlo...
Espero que el proyecto no sea para subirlo a producción!
1 pretendes borrar solo pasando un parametro por get?
Si haces consultas entiendo que no se piense en la seguridad (error)pero..
Imaginate lo fácil que sería borrar datos para un usuario avanzado ajeno a la empresa!
2 Además si mezclas toda la lógica de negocio en 1 solo archivo , te vas a equivocar no va a ser fácil mantenerlo y lo que es peor si lo coge otra persona se va a mosquear un poco..
3 Filtra todos los datos que te envíen los usuarios.

Dicho esto , yo no voy a a ayudarte a hacerlo como quieres , te ayudaremos a hacerlo bien pero no como tu quieres.



Suerte!
Siempre tiene que estar el tipico que se queje de faltas, quejate del codigo si quieres porque estoy aprendiendo pero de las faltas yo creo que se entiende perfectamente, dicho esto te vuelvo a mencionar que estoy aprendiendo y en el colegio me estan enseñando con msqli y el mismo professor a hecho el eliminar en la misma pagina aqui no se quiere ni seguridad ni nada simplemente aprender como funciona asique tenemos que zeñirnos a lo que el porfe a echo si tu no quieres colaborar no lo hagas, yo se que de la otra manera es kizá mas facil y segura y de ser asi no hubiera abierto un post preguntando como podria hacerlo en esa misma pagina.

pd: gracias miguel
  #7 (permalink)  
Antiguo 30/01/2015, 14:33
 
Fecha de Ingreso: mayo-2013
Mensajes: 171
Antigüedad: 10 años, 10 meses
Puntos: 4
Respuesta: Eliminar registro tabla

De nada!
Pero si son deberes son trampas!!

Jajajajaja

Cuenta si funciona!
  #8 (permalink)  
Antiguo 30/01/2015, 14:57
Avatar de Djoaq  
Fecha de Ingreso: septiembre-2012
Ubicación: Barcelona
Mensajes: 271
Antigüedad: 11 años, 6 meses
Puntos: 38
Respuesta: Eliminar registro tabla

Sí,soy el típico que se queja de las faltas, repito sin ánimo de ofender,es por tu bien pero eso ya es decisión tuya y de nadie más.(Yo también hago faltas pero me precupo en no hacerlas) pero Ok yo lo respeto.

No ne ha parecido leer nada de que es para un trabajo y si estas aprendiendo eres bienvenido ( y sino también ).


Si deben estar en el mismo fichero , debes colocar un swicht o un if else o elsif al principio de tu script para comprobar si el get que llega es borrar, usa isset con la clave get borrar, si existe y esta definida efecutas el delete,sino vuelves a comprobar con isset si existe la clave insertar y lo mismo... insertas y sino muestras la tabla.

Suerte!
  #9 (permalink)  
Antiguo 31/01/2015, 06:10
 
Fecha de Ingreso: enero-2015
Mensajes: 9
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Eliminar registro tabla

Gracias djoaq por la aportación, al final me he decicido por hacerla en diferentes, como dijo miguel y bien una vez lo tengo todo montado cuando doi a eliminar me da el siguiente error de variable nif indefinida pero para mi parecer si esta definida con el get o eso no la define? gracias! el codigo del borrar es este que tampoco se si esta bien del todo ya que no hago el control de errores no domino aún:

El error:

Notice: Undefined index: nif in en la linea 9 que es la del get nif

Codigo:
Código PHP:
Ver original
  1. <?php
  2.  
  3. $host="localhost";
  4. $user="root";
  5. $pass="";
  6. $bd="miempresa";
  7.  
  8.  $conex = mysqli_connect($host,$user,$pass,$bd);
  9. $nif = $_GET['nif'];
  10. if(isset($nif)) {
  11.     $eliminar="DELETE FROM usuaris WHERE nif = '$nif'";
  12.     $result = mysqli_query($eliminar, $conex);
  13.     header ('Location: mostrardatos.php');
  14.  
  15.     }else {
  16.         echo"Error: " . mysqli_connect_error();
  17.         }
  18. ?>

Última edición por Drekazo; 31/01/2015 a las 06:52
  #10 (permalink)  
Antiguo 31/01/2015, 10:06
 
Fecha de Ingreso: mayo-2013
Mensajes: 171
Antigüedad: 10 años, 10 meses
Puntos: 4
Respuesta: Eliminar registro tabla

La variable nif debe estar definida en la pagina de mostrardatos.php
Pon el codigo de esa pagina aqui
  #11 (permalink)  
Antiguo 31/01/2015, 14:08
 
Fecha de Ingreso: enero-2015
Mensajes: 9
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Eliminar registro tabla

Código PHP:
Ver original
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  5.  
  6. <link rel="stylesheet" type="text/css" href="css.css">
  7. <title></title>
  8. </head>
  9. <body>
  10. <div id="mediodatos">
  11. <?php
  12.  
  13. //para hacer la conexion con mysql
  14. $host="localhost";
  15. $user="root";
  16. $pass="";
  17. $bd="miempresa";
  18.  
  19. include("borra.php");
  20. $nombre = isset($_POST['nombre']) ? $_POST['nombre'] : null ;
  21.  $apellidos =  isset($_POST['apellidos']) ? $_POST['apellidos'] : null ;
  22.  $fecha = isset($_POST['fecha']) ? $_POST['fecha'] : null ;
  23.  $nif = isset($_POST['nif']) ? $_POST['nif'] : null ;
  24.  $provincia = isset($_POST['provincia']) ? $_POST['provincia'] : null ;
  25.  
  26. //aqui la conexion con la BD e inserta datos del formulario
  27. $conex = mysqli_connect($host,$user,$pass,$bd);
  28.     if(!$conex){
  29.             echo "ERROR".mysqli_connect_error();
  30.            
  31.             }
  32. $sql = "INSERT INTO usuaris (nif, nom, cognoms, data_naix, provincia) VALUES ('$nif', '$nombre','$apellidos','$fecha','$provincia')";
  33.     if(!$sql){
  34.             echo "ERROR en la ejecucion de la sentencia".mysqli_connect_error();
  35.     }
  36. mysqli_query($conex,$sql);
  37.  
  38. $cadena="Select nif,nom,cognoms,data_naix,provincia from usuaris";
  39. $result=mysqli_query($conex,$cadena);
  40.         echo "<table id='miTabla' border=1  style='text-align: left; margin: auto;'>";
  41.         echo"<th><i>Nif</i></th><th><i>Nom</i></th><th><i>Cognoms</i></th><th><i>Data</i></th><th><i>Provincia</i></th>";
  42.         while($row=mysqli_fetch_array($result)) {
  43.                 echo( "<tr>
  44.                     <td>".$row['nif']."</td>
  45.                     <td>".$row['nom']."</td>
  46.                     <td>".$row['cognoms']."</td>
  47.                     <td>".$row['data_naix']."</td>
  48.                     <td>".$row['provincia']."</td>
  49.                     <td><a href='editar.php'>Editar</a></td>
  50.                    
  51.                     <td><a href='borra.php?$nif=".$row['nif']."'>Eliminar</a></td>;
  52.                 </tr>");   
  53.              }
  54.            
  55.          echo "</table>";  
  56. mysqli_close($conex);
  57.  
  58. ?><br>
  59.  
  60. <input type="button2" value="Volver" onClick="location.href='formulmysql.php'"class="boton2" />
  61. </div>
  62. </body>
  63. </html>
  #12 (permalink)  
Antiguo 31/01/2015, 22:05
 
Fecha de Ingreso: mayo-2013
Mensajes: 171
Antigüedad: 10 años, 10 meses
Puntos: 4
Respuesta: Eliminar registro tabla

Cambia esto:
<a href='borra.php?$nif=".$row['nif']."'>

Por esto:
<a href='borra.php?nif=".$row['nif']."'>

Estabas llamando a la variable nif, $nif
Y en la otra pagina intentabas recuperar $_GET['nif'], variable que no estabas enviando.
  #13 (permalink)  
Antiguo 01/02/2015, 13:26
 
Fecha de Ingreso: enero-2015
Mensajes: 9
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Eliminar registro tabla

Hola miguel sige dando el mismo error en el borra.php nif undefined la cuestión es que se lo pasa pero no lo hace
  #14 (permalink)  
Antiguo 01/02/2015, 17:12
 
Fecha de Ingreso: mayo-2013
Mensajes: 171
Antigüedad: 10 años, 10 meses
Puntos: 4
Respuesta: Eliminar registro tabla

Copia los codigos de las dos paginas tal y como los tienes ahora mismo.
  #15 (permalink)  
Antiguo 01/02/2015, 17:51
 
Fecha de Ingreso: enero-2015
Mensajes: 9
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Eliminar registro tabla

mostrardatos.php:


Código PHP:
Ver original
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  5.  
  6. <link rel="stylesheet" type="text/css" href="css.css">
  7. <title></title>
  8. </head>
  9. <body>
  10. <div id="mediodatos">
  11. <?php
  12.  
  13. //para hacer la conexion con mysql
  14. $host="localhost";
  15. $user="root";
  16. $pass="";
  17. $bd="miempresa";
  18.  
  19. require("borra.php");
  20.  
  21. $nombre = isset($_POST['nombre']) ? $_POST['nombre'] : null ;
  22.  $apellidos =  isset($_POST['apellidos']) ? $_POST['apellidos'] : null ;
  23.  $fecha = isset($_POST['fecha']) ? $_POST['fecha'] : null ;
  24.  $nif = isset($_POST['nif']) ? $_POST['nif'] : null ;
  25.  $provincia = isset($_POST['provincia']) ? $_POST['provincia'] : null ;
  26.  
  27. //aqui la conexion con la BD e inserta datos del formulario
  28. $conex = mysqli_connect($host,$user,$pass,$bd);
  29.     if(!$conex){
  30.             echo "ERROR".mysqli_connect_error();
  31.            
  32.             }
  33. $sql = "INSERT INTO usuaris (nif, nom, cognoms, data_naix, provincia) VALUES ('$nif', '$nombre','$apellidos','$fecha','$provincia')";
  34.     if(!$sql){
  35.             echo "ERROR en la ejecucion de la sentencia".mysqli_connect_error();
  36.     }
  37. mysqli_query($conex,$sql);
  38.  
  39. $cadena="Select nif,nom,cognoms,data_naix,provincia from usuaris";
  40. $result=mysqli_query($conex,$cadena);
  41.         echo "<table id='miTabla' border=1  style='text-align: left; margin: auto;'>";
  42.         echo"<th><i>Nif</i></th><th><i>Nom</i></th><th><i>Cognoms</i></th><th><i>Data</i></th><th><i>Provincia</i></th>";
  43.         while($row=mysqli_fetch_array($result)) {
  44.                 echo( "<tr>
  45.                     <td>".$row['nif']."</td>
  46.                     <td>".$row['nom']."</td>
  47.                     <td>".$row['cognoms']."</td>
  48.                     <td>".$row['data_naix']."</td>
  49.                     <td>".$row['provincia']."</td>
  50.                     <td>Editar</td>
  51.                    
  52.                     <td><a href='borra.php?nif=".$row['nif']."'>Eliminar</a></td>;
  53.                 </tr>");   
  54.              }
  55.            
  56.          echo "</table>";  
  57. mysqli_close($conex);
  58.  
  59. ?><br>
  60.  
  61. <input type="button2" value="Volver" onClick="location.href='formulmysql.php'"class="boton2" />
  62. </div>
  63. </body>
  64. </html>

borrar.php:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $host="localhost";
  4. $user="root";
  5. $pass="";
  6. $bd="miempresa";
  7.  
  8.  $conex = mysqli_connect($host,$user,$pass,$bd);
  9. $nif = $_GET['nif'];
  10. if(isset($nif)) {
  11.     $eliminar="DELETE FROM usuaris WHERE nif = '$nif'";
  12.     $result = mysqli_query($eliminar, $conex);
  13.     header ('Location: mostrardatos.php');
  14.  
  15.     }else {
  16.         echo"Error: " . mysqli_connect_error();
  17.         }
  18. ?>
creo que podria venir el problema a raiz del if
  #16 (permalink)  
Antiguo 01/02/2015, 18:14
 
Fecha de Ingreso: mayo-2013
Mensajes: 171
Antigüedad: 10 años, 10 meses
Puntos: 4
Respuesta: Eliminar registro tabla

Dos cosas.

La primera, en el codigo de mostrardatos.php veo que el link es borra.php
Es correcto, no?

La segunda.

Haz esto en borra.php

Código PHP:
    <?php
     
    $host
="localhost";
    
$user="root";
    
$pass="";
    
$bd="miempresa";
     
     
$conex mysqli_connect($host,$user,$pass,$bd);
    
$nif $_GET['nif'];
    
echo 
$nif
    ?>
A ver si imprime el valor de nif, para asegurarnos de que recoge bien la variable.
Y si no, pues vemos donde puede estar el error.
  #17 (permalink)  
Antiguo 02/02/2015, 05:04
 
Fecha de Ingreso: enero-2015
Mensajes: 9
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Eliminar registro tabla

si, si que imprime el nif pero en el mostrardatos da el undefined index nif en la de borra.
  #18 (permalink)  
Antiguo 02/02/2015, 08:22
 
Fecha de Ingreso: mayo-2013
Mensajes: 171
Antigüedad: 10 años, 10 meses
Puntos: 4
Respuesta: Eliminar registro tabla

Pero has probado a hacer el echo en borra.php??
Tal y como te lo habia puesto.

Si tambien imprime la variable en borra.php, quita el if(isset()) y el else y prueba a ver si ejecuta.
  #19 (permalink)  
Antiguo 02/02/2015, 15:59
 
Fecha de Ingreso: enero-2015
Mensajes: 9
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Eliminar registro tabla

si si la imprimia ya esta arreglado el problema al final a resultado de ser que:

$result = mysqli_query($eliminar, $conex);

tenia que invertir el orden de las variables y ya esta. jajaj si tio

Etiquetas: fecha, formulario, mysql, registro, select, 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 05:38.