Ver Mensaje Individual
  #9 (permalink)  
Antiguo 07/04/2009, 10:51
Avatar de rogertm
rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Respuesta: Borrar registro base de datos

Cita:
Iniciado por thi Ver Mensaje
Gracias a todos por las respuestas,

creo que me he explicado mal. El codigo para borrar registros me lo conozco perfectamente, el problema es otro, es que no se como componer una instrucción Delete en el que no se que condición poner en el Where.

Imaginaros que estoy obteniendo una tabla de resultados de una busqueda en la base de datos, que no siempre tiene que tener los mismos resultados, y que ademas permita borrar registros sin ningun criterio sino que se eliminaran los que se quieran pinchando en el boton eliminar de cada fila. Como sabe el programa que se quiere eliminar esa fila al hacer click en el boton eliminar si el contenido de esa fila no tiene porque ser siempre el mismo.

Un saludo.
Deberas siempre tener un campo unico que muestres en cada consulta, para eso es el ID por ejemplo, si miras el link que te pase anteriormente y te lees la explicacion veras la respuesta a tu duda:
Código php:
Ver original
  1. <?php
  2. /** conexion ***************************/
  3. // conectamos a la base de datos
  4. $link = mysql_connect('localhost', 'root', '');
  5. if(!$link) {
  6.     die("Error al intentar conectar: ".mysql_error());
  7. }
  8. // seleccionamos la base de datos
  9. $db_link = mysql_select_db('dase-de-datos', $link);
  10. if(!$db_link) {
  11.     die("Error al intentar seleccionar la base de datos". mysql_error());
  12. }
  13. /** fin conexion ************************/
  14. // hacemos una consulta
  15. // para mostrar los registros
  16. $sql = mysql_query("SELECT * FROM usuarios", $link) or die(mysql_error());
  17. // mostramos los registros
  18. while($row = mysql_fetch_array($sql)){
  19.     echo $row['usuarioNombre']." - ".$row['usuarioEmail'].
  20.     // mostramos un vinculo Eliminar
  21.     // que envia via $_GET
  22.     // el ID del registro a eliminar
  23.     " - <a href='eliminar.php?id=$row[usuario_ID]'>Eliminar</a>"."\n";
  24. }
  25. ?>
El bucle while te mostrara una lista de todos tus registros, junto con un link que dice Eliminar, OK? con este link pasamos a la pagina eliminar.php el parametro que usaremos para identificar que registro vamos a borrar, el ID:
Código php:
Ver original
  1. <?php
  2. /** conexion ***************************/
  3. // conectamos a la base de datos
  4. $link = mysql_connect('localhost', 'root', '');
  5. if(!$link) {
  6.     die("Error al intentar conectar: ".mysql_error());
  7. }
  8. // seleccionamos la base de datos
  9. $db_link = mysql_select_db('dase-de-datos', $link);
  10. if(!$db_link) {
  11.     die("Error al intentar seleccionar la base de datos". mysql_error());
  12. }
  13. /** fin conexion ************************/
  14. // comprovamos si
  15. // ha sido enviado el formulario
  16. if(isset($_POST['eliminar']) && $_POST['eliminar'] == 'Eliminar'){
  17.     // creamos la consulta
  18.     // que eliminara el registro
  19.     // que viene via $_POST
  20.     $id_eliminar = $_POST['id'];
  21.     $sqlEliminar = mysql_query("DELETE FROM usuarios
  22.                                WHERE usuario_ID = $id_eliminar", $link)
  23.                                 or die(mysql_error());
  24.     // enviamos un mensage de exito
  25.     $mensaje =  "El registro a sido eliminado";
  26. }
  27. // si no ha sido enviado el formulario aun
  28. // recogemos el ID
  29. // del registro a eliminar
  30. // via $_GET
  31. elseif(isset($_GET['id'])){
  32.     $id = $_GET['id'];
  33.     // hacemos una consulta
  34.     // para mostrar el registro
  35.     // que vamos a eliminar
  36.     $sql = mysql_query("SELECT * FROM usuarios
  37.                        WHERE usuario_ID = $id", $link)
  38.                         or die(mysql_error());
  39.     $row = mysql_fetch_array($sql);
  40.     // advertimos
  41.     $mensaje =  "¿Está seguro que quiere eliminar el usuario <b>$row[usuarioNombre]</b>?";
  42. }
  43. // mostramos el mensage
  44. echo $mensaje;
  45. ?>
  46. <!-- creamos el formulario HTML
  47. que enviara el ID
  48. del registro a eliminar  -->
  49. <form name="eliminar-registro" method="post" action="<?php $_SERVER['PHP_SELF']; ?>" >
  50. <input name="id" type="hidden" value="<?php echo $row['usuario_ID']; ?>" />
  51. <input name="eliminar" type="submit" value="Eliminar" />
  52. </form>
si no quieres usar $_POST[] le pones $_GET[] e incluso lo puedes hacer todo en la misma pagina, pero ya eso lo haces tu, asi es como mejor aprendes, y si tienes alguna duda o te da algun error, sique que lo solucionamos
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose