elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Quitar elementos mysql
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Quitar elementos mysql  (Leído 2,520 veces)
jalbtercero

Desconectado Desconectado

Mensajes: 80


Ver Perfil
Quitar elementos mysql
« en: 4 Marzo 2016, 20:00 pm »

Haber para que quede claro lo que quier lograr: tengo una tabla via php-mysql que muestra tres campos: nombre,descripcion,archivo en este ultmo hay un link subido por un usuario. Me gustaria hacer que el usuario que haya subido dicho archivo le aparezca al lado un boton para poder eliminar este contenido, el nombre,descripcion y llink de archivo, vamos toda la fila: mi codigo de la tabla:

Código
  1. <?php
  2. ?>
  3. <?php
  4. if (isset($_SESSION["usuario"])) {
  5.  
  6. } else {
  7. echo '<script language="javascript">location.href="log.html"</script>';
  8. }
  9. ?>
  10. <html>
  11. <head>
  12. <meta charset="utf-8">
  13. <style>
  14. table {
  15. width: 100%;
  16. border-collapse: collapse;
  17. }
  18.  
  19. table, td, th {
  20. border: 1px solid black;
  21. padding: 5px;
  22.  
  23. }
  24.  
  25. th {
  26.        background-color: #4CAF50;
  27.        color: white;
  28. text-align: left;
  29. }
  30. </style>
  31. </head>
  32. <body>
  33. <?php
  34. require("connect_db2.php");
  35. function mostrarDatos($resultados) {
  36. if($resultados !=NULL){
  37. echo '
  38. <tr>
  39. <td>'.$resultados['nombre'].'</td>
  40. <td>'.$resultados['descripcion'].'</td>
  41. <td><a href="'.$resultados['archivo'].'"><img src="icono2.png"></a></td>
  42. </tr>
  43. ';
  44. } else {
  45.  
  46. echo "<br/>No hay mas datos<br/>";
  47. }
  48. }
  49.  
  50.  
  51. $result = mysqli_query($link,"SELECT * FROM archivos");
  52. echo "<table>
  53. <tr>
  54. <th>Nombre</th>
  55. <th>Descripcion</th>
  56. <th>Archivo</th>
  57. </tr>";
  58. while($fila = mysqli_fetch_array($result)) {
  59. mostrarDatos($fila);
  60. }
  61. mysqli_close($link);
  62. ?>
  63. </body>
  64. </html>
  65.  


En línea

basickdagger


Desconectado Desconectado

Mensajes: 650


System.out.println("this is weird as fuck");


Ver Perfil
Re: Quitar elementos mysql
« Respuesta #1 en: 4 Marzo 2016, 21:00 pm »

usa un delete...

por ejemplo

Código
  1. <td>'.$resultados['nombre'].'</td>
  2. <td>'.$resultados['descripcion'].'</td>
  3. <td><a href="eliminar.php?id='.$resultados['id'].'"><img src="icono2.png"></a></td>
  4.  
  5. y en eliminar.php
  6. con get
  7.  
  8. DELETE FROM mi tabla
  9. WHERE id = $_GET['id']
  10.  
  11.  




En línea

jalbtercero

Desconectado Desconectado

Mensajes: 80


Ver Perfil
Re: Quitar elementos mysql
« Respuesta #2 en: 5 Marzo 2016, 01:11 am »

usa un delete...

por ejemplo

Código
  1. <td>'.$resultados['nombre'].'</td>
  2. <td>'.$resultados['descripcion'].'</td>
  3. <td><a href="eliminar.php?id='.$resultados['id'].'"><img src="icono2.png"></a></td>
  4.  
  5. y en eliminar.php
  6. con get
  7.  
  8. DELETE FROM mi tabla
  9. WHERE id = $_GET['id']
  10.  
  11.  




Ya pero lo que yo quiero hacer es que ese elemento solo se pueda borra si el el campo de nombre el el mismo que el usuario que lo ha subido
En línea

xiruko


Desconectado Desconectado

Mensajes: 438


Ver Perfil
Re: Quitar elementos mysql
« Respuesta #3 en: 5 Marzo 2016, 06:23 am »

Hola,

Es díficil ayudarte sin conocer más detalles sobre cómo lo tienes implementado.

Tienes algo que te indique qué usuario ha subido el archivo?
Qué guardas en $_SESSION?

Una manera bastante lógica sería que tuvieras tu tabla de usuarios con una columna llamada por ejemplo "id", que fuera la llave primaria y única de la tabla.

Luego en la tabla de archivos, una columna llamada por ejemplo "usuario_id", que tuviera el identificador único del usuario que subió el archivo. Además, cada archivo debería tener también un identificador único, llamado por ejemplo "id".

Finalmente, en $_SESSION estaría bien que guardaras, entre varias cosas, el identificador único del usuario.

Con todo esto, simplemente pintas el botón si el ID del usuario es el mismo que subió el archivo, y sino no lo pintas. Por ejemplo:

Código
  1. function mostrarDatos($resultados) {
  2.    if($resultados != NULL){
  3.        $borrar_html = "";
  4.        if ($_SESSION['usuario_id'] == $resultados['usuario_id']) {
  5.            $borrar_html =
  6.                "<form action='' method='post'>
  7.                    <input type='hidden' name='archivo_id' value='{$resultados['id']}'>
  8.                    <button type='submit' name='borrar_archivo' value='1'>
  9.                 </form>";
  10.        }
  11.        echo
  12.            "<tr>
  13.        <td>{$resultados['nombre']}</td>
  14.        <td>{$resultados['descripcion']}</td>
  15.        <td>
  16.                    <a href='{$resultados['archivo']}'><img src='icono2.png'></a>
  17.                    $borrar_html
  18.                </td>
  19.    </tr>";
  20.    } else {
  21.        echo "<br/>No hay mas datos<br/>";
  22. }

Y ya solo quedaría el código para borrar el archivo. Tendrías que ponerlo al principio de la página y sería algo como esto:

Código
  1. if (isset($_POST['borrar_archivo'])) {
  2.    $query = "DELETE FROM archivos WHERE `id` = '{$_POST['archivo_id']}'";
  3.    if (mysqli_query($link, $query)) {
  4.        echo "<p>Archivo borrado correctamente!</p>";
  5.    }
  6. }

Saludos!
En línea

jalbtercero

Desconectado Desconectado

Mensajes: 80


Ver Perfil
Re: Quitar elementos mysql
« Respuesta #4 en: 5 Marzo 2016, 21:07 pm »

ahora me da este error a que es debido?  mysqli_query() expects parameter 1 to be mysqli, null given
« Última modificación: 5 Marzo 2016, 21:50 pm por jalbtercero » En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: Quitar elementos mysql
« Respuesta #5 en: 6 Marzo 2016, 17:53 pm »

Te da ese error porque no le pasas ningún objeto de MySQLI.. asegurate de abrir la conexión con la misma variable en la misma pagina (o en su defecto en una pagina a la que hagas include).

Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines