Foros del Web » Programando para Internet » PHP »

agregar un DELETE despues de If else...

Estas en el tema de agregar un DELETE despues de If else... en el foro de PHP en Foros del Web. hola amigos. como puedo agregar una acción mas, en un solo archivo, es decir por medio de IF ELSE algo así como indica el código ...
  #1 (permalink)  
Antiguo 12/04/2021, 20:11
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 637
Antigüedad: 16 años, 8 meses
Puntos: 6
agregar un DELETE despues de If else...

hola amigos.

como puedo agregar una acción mas, en un solo archivo, es decir por medio de IF ELSE algo así como indica el código siguiente

en este archivo hay un UPDATE y INSERT, y necesito que se agregue un DELETE



Código PHP:
Ver original
  1. <?php  
  2.  $connect = mysqli_connect("localhost", "root", "", "myDB");  
  3.  if(!empty($_POST))  
  4.  {  
  5.       $output = '';  
  6.       $message = '';  
  7.       $name = mysqli_real_escape_string($connect, $_POST["name"]);
  8.       if($_POST["students_id"] != '')  
  9.       {  
  10.            $query = "UPDATE students SET name='$name' WHERE id='".$_POST["students_id"]."'";  
  11.            $message = 'Data Updated';  
  12.       }  
  13.       else  
  14.       {  
  15.            $query = "INSERT INTO students(name) VALUES('$name')";  
  16.            $message = 'Data Inserted';  
  17.       }
  18.  
  19.       // AGREGAR AQUI UN DELETE
  20.  
  21.       if(mysqli_query($connect, $query))  
  22.       {  
  23.            $output .= '<label class="text-success">' . $message . '</label>';  
  24.            $select_query = "SELECT * FROM students ORDER BY id DESC";  
  25.            $result = mysqli_query($connect, $select_query);  
  26.            $output .= '  
  27.                <table class="table">  
  28.                     <tr>  
  29.                          <th width="70%">Name</th>
  30.                     </tr>  
  31.           ';  
  32.            while($row = mysqli_fetch_array($result))  
  33.            {  
  34.                 $output .= '  
  35.                     <tr>  
  36.                          <td>' . $row["name"] . '</td>
  37.                     </tr>  
  38.                ';  
  39.            }  
  40.            $output .= '</table>';  
  41.       }  
  42.       echo $output;  
  43.  }  
  44.  ?>
  #2 (permalink)  
Antiguo 13/04/2021, 00:22
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.519
Antigüedad: 9 años, 8 meses
Puntos: 962
Respuesta: agregar un DELETE despues de If else...

Solo coloca otra condición, o bien emplea una sentencia switch.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 13/04/2021, 00:33
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 637
Antigüedad: 16 años, 8 meses
Puntos: 6
Respuesta: agregar un DELETE despues de If else...

Cita:
Iniciado por Alexis88 Ver Mensaje
Solo coloca otra condición, o bien emplea una sentencia switch.

si lei algo como esto también pero no lo entendí

fuente Aqui

Código PHP:
Ver original
  1. if (condition1){    
  2. //code to be executed if condition1 is true    
  3. } elseif (condition2){      
  4. //code to be executed if condition2 is true    
  5. } elseif (condition3){      
  6. //code to be executed if condition3 is true    
  7. ....  
  8. }  else{    
  9. //code to be executed if all given conditions are false    
  10. }
  #4 (permalink)  
Antiguo 14/04/2021, 13:35
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.519
Antigüedad: 9 años, 8 meses
Puntos: 962
Respuesta: agregar un DELETE despues de If else...

Si te fijas en tu código, empleas una condición para ejecutar ya sea una actualización (UPDATE) o una inserción (INSERT) de datos. Si se cumple la condición dada, se ejecuta la actualización; caso contrario, la inserción. Bueno, lo único que te queda es introducir otra condición la cual determinará si se ejecuta la inserción o la eliminación que deseas hacer.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 14/04/2021, 20:25
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 637
Antigüedad: 16 años, 8 meses
Puntos: 6
Respuesta: agregar un DELETE despues de If else...

Cita:
Iniciado por Alexis88 Ver Mensaje
Si te fijas en tu código, empleas una condición para ejecutar ya sea una actualización (UPDATE) o una inserción (INSERT) de datos. Si se cumple la condición dada, se ejecuta la actualización; caso contrario, la inserción. Bueno, lo único que te queda es introducir otra condición la cual determinará si se ejecuta la inserción o la eliminación que deseas hacer.

probé pero no funciona


Código PHP:
Ver original
  1. <?php  
  2.  $connect = mysqli_connect("localhost", "root", "", "myDB");  
  3.  if(!empty($_POST))  
  4.  {  
  5.       $output = '';  
  6.       $message = '';  
  7.       $name = mysqli_real_escape_string($connect, $_POST["name"]);
  8.       if($_POST["students_id"] != '')  
  9.       {  
  10.            $query = "UPDATE students SET name='$name' WHERE id='".$_POST["students_id"]."'";  
  11.            $message = 'Data Updated';  
  12.       }  
  13.       else  
  14.       {  
  15.            $query = "INSERT INTO students(name) VALUES('$name')";  
  16.            $message = 'Data Inserted';  
  17.       }
  18.  
  19.       // AGREGAR AQUI UN DELETE
  20.  
  21.         $query = "DELETE FROM students WHERE id='".$_POST["students_id"]."'";  
  22.         $message = 'Data Delete';  
  23.  
  24.  
  25.       if(mysqli_query($connect, $query))  
  26.       {  
  27.            $output .= '<label class="text-success">' . $message . '</label>';  
  28.            $select_query = "SELECT * FROM students ORDER BY id DESC";  
  29.            $result = mysqli_query($connect, $select_query);  
  30.            $output .= '  
  31.                <table class="table">  
  32.                     <tr>  
  33.                          <th width="70%">Name</th>
  34.                     </tr>  
  35.           ';  
  36.            while($row = mysqli_fetch_array($result))  
  37.            {  
  38.                 $output .= '  
  39.                     <tr>  
  40.                          <td>' . $row["name"] . '</td>
  41.                     </tr>  
  42.                ';  
  43.            }  
  44.            $output .= '</table>';  
  45.       }  
  46.       echo $output;  
  47.  }  
  48.  ?>
  #6 (permalink)  
Antiguo 14/04/2021, 21:49
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.519
Antigüedad: 9 años, 8 meses
Puntos: 962
Respuesta: agregar un DELETE despues de If else...

A ver. Primero tienes que plantearte una pregunta: ¿En qué caso tiene que realizarse una eliminación de datos? De lo que veo en tu código, cuando la variable $_POST["students_id"] no está vacía se realiza una actualización, caso contrario, es decir, si dicha variable está vacía, se realiza una inserción. Entonces, cabría preguntarse, ¿qué condición tiene que cumplirse para que se realice una eliminación? Una vez que resuelvas esa pregunta, tienes que introducirla como condición. Por ejemplo:

Código PHP:
Ver original
  1. if ($_POST["students_id"] != ''){
  2.     //UPDATE
  3. }
  4. else{
  5.     //INSERT
  6. }
  7.  
  8. if (/* NUEVA CONDICIÓN */){
  9.     //DELETE
  10. }

La idea es que condiciones la ejecución de la eliminación.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #7 (permalink)  
Antiguo 14/04/2021, 22:04
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 637
Antigüedad: 16 años, 8 meses
Puntos: 6
Respuesta: agregar un DELETE despues de If else...

Cita:
Iniciado por Alexis88 Ver Mensaje
A ver. Primero tienes que plantearte una pregunta: ¿En qué caso tiene que realizarse una eliminación de datos? De lo que veo en tu código, cuando la variable $_POST["students_id"] no está vacía se realiza una actualización, caso contrario, es decir, si dicha variable está vacía, se realiza una inserción. Entonces, cabría preguntarse, ¿qué condición tiene que cumplirse para que se realice una eliminación? Una vez que resuelvas esa pregunta, tienes que introducirla como condición. Por ejemplo:

Código PHP:
Ver original
  1. if ($_POST["students_id"] != ''){
  2.     //UPDATE
  3. }
  4. else{
  5.     //INSERT
  6. }
  7.  
  8. if (/* NUEVA CONDICIÓN */){
  9.     //DELETE
  10. }

La idea es que condiciones la ejecución de la eliminación.




Hola Alexis88
este es el video del código en producción
la idea es que en este código agregarle un delete revisando el código se podrá ver lo que necesito agregar
y tener un poco mas clara mi duda si es posible agregarle un delete, el resto casi lo tengo resuelto.
  #8 (permalink)  
Antiguo 15/04/2021, 00:45
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.519
Antigüedad: 9 años, 8 meses
Puntos: 962
Respuesta: agregar un DELETE despues de If else...

En el vídeo no se realiza ninguna eliminación de datos, por lo que si tú deseas hacer una, tendrás que introducir una condición que establezca si se va a eliminar o no un registro de la base de datos.

Basándome en el ejemplo que sigues, asumo que tienes un botón en cada fila el cual, al ser pulsado, elimina los datos de la fila en cuestión. Si es así, podrías apoyarte con un botón que tenga como dato adjunto el id del registro de la fila (cada botón o enlace en cada fila) en un atributo personalizado mediante el cual asociarás al pulsado del botón (evento click) un conjunto de instrucciones con las que realizarás el envío de la información por medio de AJAX (en este ejemplo me apoyo de jQuery), pudiendo establecer una variable cuyo nombre pueda distinguirse (en el archivo PHP de destino) de las que empleas para realizar las actualizaciones e inserciones; y, finalmente, tendrás que introducir una condición en la cual, si se comprueba que existe una variable con el nombre que designes, se llevará a cabo la eliminación.

Por ejemplo:

Código HTML:
Ver original
  1. <!-- Este botón tiene que ir en cada fila. Puedes darle estilos para que tenga la apariencia de un botón -->
  2.  
  3. <span data-delete="<?=$row['id']?>">Eliminar</span>

Código Javascript:
Ver original
  1. //Este código registra el evento click a cada botón y envía el dato contenido al archivo PHP
  2.  
  3. $("[data-delete]").on("click", function(){
  4.     $.ajax({
  5.         url: "ejemplo.php",
  6.         type: "post",
  7.         data: {
  8.             eliminar: $(this).data("delete")
  9.         },
  10.         dataType: "html"
  11.     }).done(function(response){
  12.         //Aquí puedes mostrar la respuesta del archivo PHP
  13.     });
  14. });

Código PHP:
Ver original
  1. //Si existe el índice "eliminar" en el array asociativo $_POST, se ejecutará la eliminación
  2.  
  3. if (isset($_POST['eliminar'])){
  4.     $query = "DELETE FROM students WHERE id='" . $_POST["eliminar"] . "'";
  5. }

Adapta el ejemplo a lo que tienes. Si no funciona, muestra qué mensajes de error aparecen. No se te podrá seguir ayudando si no lo haces así.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #9 (permalink)  
Antiguo 15/04/2021, 08:46
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 637
Antigüedad: 16 años, 8 meses
Puntos: 6
Respuesta: agregar un DELETE despues de If else...

Tome el código de VER (detalles) y lo agregue como delete pero solo puedo ver el nombre mas el botón sin ninguna acción
por mas que le de clic para que proceda no hay resultado

Por otro lado este es el código de "insert.php" que esta en el video y código fuente.
le agregue la acción eliminar y ahora Ya no Actualiza solo me permite VER AGREGAR pero NO EDITAR Ni BORRAR

Código PHP:
Ver original
  1. <?php  
  2.  $connect = mysqli_connect("localhost", "root", "", "myDB");  
  3.  if(!empty($_POST))  
  4.  {  
  5.       $output = '';  
  6.       $message = '';  
  7.       $name = mysqli_real_escape_string($connect, $_POST["name"]);
  8.       if($_POST["students_id"] != '')  
  9.       {  
  10.            $query = "UPDATE students SET name='$name' WHERE id='".$_POST["students_id"]."'";  
  11.            $message = 'Data Updated';  
  12.       }  
  13.       else  
  14.       {  
  15.            $query = "INSERT INTO students(name) VALUES('$name')";  
  16.            $message = 'Data Inserted';  
  17.       }
  18.  
  19.       // DELETE
  20.       if($_POST["students_id"] != '')  
  21.       {  
  22.            $query = "DELETE FROM students WHERE id='".$_POST["students_id"]."'";
  23.            $message = 'Data Updated';  
  24.       }  
  25.  
  26.       if(mysqli_query($connect, $query))  
  27.       {  
  28.            $output .= '<label class="text-success">' . $message . '</label>';  
  29.            $select_query = "SELECT * FROM students ORDER BY id DESC";  
  30.            $result = mysqli_query($connect, $select_query);  
  31.            $output .= '  
  32.                <table class="table">  
  33.                     <tr>  
  34.                          <th width="70%">Name</th>
  35.                     </tr>  
  36.           ';  
  37.            while($row = mysqli_fetch_array($result))  
  38.            {  
  39.                 $output .= '  
  40.                     <tr>  
  41.                          <td>' . $row["name"] . '</td>
  42.                     </tr>  
  43.                ';  
  44.            }  
  45.            $output .= '</table>';  
  46.       }  
  47.       echo $output;  
  48.  }  
  49.  ?>

Código HTML:
Ver original
  1. <!-- botón del index  -->
  2. <td><input type="button" name="del" value="del" id="<?php echo $row["id"]; ?>" class="btn btn-danger btn-xs delete_data" /></td>

Código Javascript:
Ver original
  1. <!-- Añadi el Javascript del view_data renombrando a uno nuevo -->
  2.  <script>
  3.  $(document).on('click', '.delete_data', function(){  //  .view_data
  4.            var students_id = $(this).attr("id");  
  5.            if(students_id != '')  
  6.            {  
  7.                 $.ajax({  
  8.                      url:"delete.php",  // select.php
  9.                      method:"POST",  
  10.                      data:{students_id:students_id},  
  11.                      success:function(data){  
  12.                           $('#students_detail').html(data);
  13.                           $('#insert').val("Eliminar");  
  14.                           $('#dataModal').modal('show');  
  15.                      }  
  16.                 });  
  17.            }            
  18.      });  
  19.  </script>

Código PHP:
Ver original
  1. <?php
  2. // Ahora es un nuevo "delete.php"
  3. // Era "select.php"
  4.  if(isset($_POST["students_id"]))  
  5.  {  
  6.       $output = '';  
  7.       $connect = mysqli_connect("localhost", "root", "", "myDB");  
  8.       $query = "SELECT * FROM students WHERE id = '".$_POST["students_id"]."'";  
  9.       $result = mysqli_query($connect, $query);  
  10.       $output .= '  
  11.      <div class="table-responsive">  
  12.           <table class="table table-bordered">';  
  13.       while($row = mysqli_fetch_array($result))  
  14.       {  
  15.            $output .= '  
  16.                <tr>  
  17.                     <td width="30%"><label>Name</label></td>  
  18.                     <td width="70%">'.$row["name"].'</td>
  19.                     <!-- botón para eliminar  -->
  20.                     <input type="submit" name="insert" id="insert" value="Eliminar" class="btn btn-danger btn-xs delete_data" />
  21.                </tr>  
  22.           ';  
  23.       }  
  24.       $output .= '  
  25.           </table>  
  26.      </div>  
  27.      ';  
  28.       echo $output;  
  29.  }  
  30.  ?>
  #10 (permalink)  
Antiguo 15/04/2021, 09:03
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 637
Antigüedad: 16 años, 8 meses
Puntos: 6
Respuesta: agregar un DELETE despues de If else...

OK hice la prueba de la siguiente manera a ver si podría solucionar
y solo Actualiza y Visualiza pero NO AGREGA

y sigue sin ninguna acción el borrar. algo debe faltar en el javascript para que el botón funcione


Código PHP:
Ver original
  1. <?php
  2.  if($_POST["sf_id"] != '')  
  3.   {
  4.      $query = "UPDATE students SET name='$name' WHERE id='".$_POST["students_id"]."'";  
  5.      $message = 'Data Updated';    
  6.   }
  7.   else if($_POST["sf_id"] != '')
  8.   {  
  9.      $query = "INSERT INTO students(name) VALUES('$name')";  
  10.            $message = 'Data Inserted';
  11.   }
  12.   else if($_POST["sf_id"] != '')
  13.   {  
  14.      $query = "DELETE FROM students WHERE id='".$_POST["students_id"]."'";
  15.            $message = 'Data Delete';  
  16.   }
  17.  ?>
  #11 (permalink)  
Antiguo 16/04/2021, 08:29
 
Fecha de Ingreso: abril-2006
Mensajes: 583
Antigüedad: 15 años, 3 meses
Puntos: 120
Información Respuesta: agregar un DELETE despues de If else...

Cita:
Iniciado por pilucho Ver Mensaje
OK hice la prueba de la siguiente manera a ver si podría solucionar
y solo Actualiza y Visualiza pero NO AGREGA

y sigue sin ninguna acción el borrar. algo debe faltar en el javascript para que el botón funcione

[/HIGHLIGHT]
es natural, que ocurra ello en tus IFELSE tienes 3 condiciones que se cumplen al mismo tiempo y como PHP es lineal toma solamente el Primero que sea verdadero

lo que deberías hacer, es uso de una variable dentro de un BUTTON que este en el formulario


Código HTML:
Ver original
  1. <button name="accion" value="borrar" type="submit">Borrar</button>
  2. <button name="accion" value="update" type="submit">actualizar</button>


y en tu php evaluar ello

Código PHP:
Ver original
  1. <?php
  2.  if($_POST["sf_id"] != ''){
  3.   switch($_POST["accion"]){
  4.      case 'borrar':
  5.        $query = "DELETE FROM students WHERE id='".$_POST["students_id"]."'";
  6.            $message = 'Data Delete';  
  7.      break;
  8.      case 'update':
  9.       $query = "UPDATE students SET name='$name' WHERE id='".$_POST["students_id"]."'";  
  10.      $message = 'Data Updated';
  11.     break;    
  12.   }
  13.  }

pero aun asi, deberias de leerte el manual de PHP y ver mas ejemplos, tantod e funciones y demas, como por ejemplo es un fallo de seguridad el que tienes en tu $query, ya que se podria inyectar codigo malicioso y demas, pero bueno eso ya es tema mas avanzado
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.com/pools/c/8lmNLmWnG9



La zona horaria es GMT -6. Ahora son las 03:54.