New question

Question:

Date: 09-05-2019 19:29:33 (In Spanish)

Funcion para el borrado de un archivo con dos parametros tabla y id[Unresolved]

hola amigos estoy tratando de realizar el borrado de registro de cualquier tabla, pero quiero evitar lo siguiente

deleteproducto.php
deleteusuario.php
deleteproveedor.php
etc.

osea crear un archivo para cada borrado de tabla eso no me agrada.

mas bien crear una funcion llamada deleterst(tabla, campo, id) y execute el borrado.
Tags: MySQL - PHP Votes: 0 - Answers: 5 - Views: 14 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  • Date: 12-05-2019 02:32:41 Vas a borrar toda la tabla o solo algunos registros?

    Un foreach() puede ser de ayuda en este caso, pero deberias ser un poco mas especifico para ayudarte. Ósea si pones algo de código de como piensas implementar el borrado.
      Votes: 0 - Link answer
     
  • Date: 12-05-2019 13:53:56 Ok.

    primero muestro la tabla proveedores con los registros y quiero editar o borrar algun registro
    asi como lo tengo me hace el borrado del registro correctamente, pero no quiero crear un archivo para cada borrado de alguna tabla, osea si estoy mostrando otra tabla digamos de productos quiero que mande a llamar al mismo archivo llamado deleterst.php o en este caso productoajax.php

    <div class="default col-md-9">
     <div class="panel panel-primary">
     	<div class="panel panel-heading"> <center> <b>Lista de Proveedores</b></center></div>
     	<div class="panel-body">
     		<table id="tblProveedores" class="table table-striped table-bordered table-sm">
     			<thead>
     				<th>ID</th>
     				<th>Compañia</th>
     				<th>Contacto</th>
     				<th>Direccion</th>
     				<th>Estado</th>
     				<th>Municipio</th>
     				<th>Telefono</th>
     				<th>Acciones</th>
     			</thead>
     			{foreach $Proveedores as $Proveedor}
     			<tr>
     				<td>{$Proveedor.IdProveedor}</td>
     				<td>{$Proveedor.PCompany}</td>
     				<td>{$Proveedor.PContacto}</td>
     				<td>{$Proveedor.PDireccion}</td>
     				<td>{$Proveedor.PEstado}</td>
     				<td>{$Proveedor.PMunicipio}</td>
     				<td>{$Proveedor.PTelefono}</td>
     				<td>
     					<a href="editar.php?id={$Proveedor.IdProveedor}" Class="btn btn-success"><i class="fas fa-pencil-alt"></i></a>
     					<a href="Ajax/productoAjax.php?id={$Proveedor.IdProveedor}" onclick=" return Confirmar('Desea eliminar Registro?');" Class="btn btn-danger"><i class="fas fa-trash-alt"></i></a>
     					
     				</td>
    
     			</tr>
     			{/foreach}
     		</table>
     	</div>
     </div>
    </div>
    <script>
     	function Confirmar(msg){
    		return(confirm(msg))?true:false;
    	}
    	$(document).ready(function () {
            $('#tblProveedores').DataTable();
        });
     </script>
    


    Este es el archivo productoAjax.php que mando a llamar este archivo asu vez llama al controlador.

    <?php 
    	$PeticionAjax=true;
    	require_once "../core/configGeneral.php";
    	
    		//echo "hasta aqui bien";
    	if (isset($_POST['productoInput'])||isset($_POST['catInput'])||isset($_POST['companyInput'])|| isset($_GET['id']))
    	{
    		//echo "hasta aqui bien";
    		require_once "../Controlador/productoControler.php";
    		$instProducto=new productoControler();
    		
    		if (isset($_POST['productoInput'])){
    			alert('hasta aqui bien');
    			echo $instProducto->adProducto_Controler();
    		}elseif(isset($_POST['catInput'])){
    			echo $instProducto->adCategoria_Controler();
    		}elseif(isset($_POST['companyInput'])){
    			echo $instProducto->adProveedor_Controler();
    			//echo "hasta aqui bien";
    
    
    	// AQUI QUIERO COLOCAR EL LLAMADO AL CONTROLADOR CON SUS PARAMETROS PARA BORRADO O EDICION DEL REGISTRO		
    		}elseif(isset($_GET['id']) & $_GET['id']>0)
    			{
    
    			$sql=$instProducto->deleteProducto_Controler();
    			if ($sql) 
    			{	
    				echo '<script> window.location.href="'.SERVERURL.'?acc=ListProducto" </script>';
    				
    			}else{
    
    				}
    			}
    	//  FIN DE LLAMADO A CRUD DE REGISTRO
    
    	} else {
    		session_start();
    		session_destroy();
    		echo '<script> window.location.href="'.SERVERURL.'adminpanel" </script>';
    	}
    
      Votes: 0 - Link answer
     
  • Date: 13-05-2019 04:21:48 Para empezar te recomendaría no implementar esta funcionalidad por tus propios medios... habiendo tantos buenos ORM por ahí... Salvo que tu objetivo sea aprender a hacerlo, en ese caso ok.

    Esta sintaxis:

    {foreach $Proveedores as $Proveedor}


    Nunca la vi... ¿es de algún motor de template?

    Respecto del php, podrías intentar hacer algo como un controlador genérico para operaciones tipo CRUD.

    Tendrías que cambiar bastante la estructura de tu aplicación... cosas como:

    if (isset($_POST['productoInput'])||isset($_POST['catInput'])||isset($_POST['companyInput'])|| isset($_GET['id']))
    


    No podrías usar más... deberías ir a algo como pasar como parámetro por la URL el nombre de la tabla y tal vez la operación a realizar...


    Honestamente, lo veo como demasiado esfuerzo para poca ganancia... ¿por qué no usas un Framework estándar?

    Te dejo un ejemplo que hice hace un tiempo usando EasyAdmin de Symfony:


    Creando un panel de admin en menos de 20'


      Votes: 1 - Link answer
     
  • Date: 13-05-2019 12:39:27 Saludos... lo que requioeres es una funcion, a la cual llamas para que puedas eliminar en cualquiera...
    Ejemplo:

    function eliminaDeTabla($conexion,$tabla,$whereCampo,$whereValor) {
    // Aqui depende como mandes la conexion si pdo, u otra
    // y ocupas : 
    $SQL='DELETE FROM '.$tabla.' WHERE  '.$whereCampo.'="'.$whereValor.'" ';
    //demas de la funcion
    }
    

    Cabe señalar que:
    Puedes hacer un una comparacion para saber si es array el where de campos (si es mas de un campo para eliminar)
    Puedes y aconsejable no pasar directo los valores solo si ya los verificaste y quitaste comillas y apostrofos (o le pusiste la diagonal, para evitar insersiones)
    Y el retun puede darte true o false, segun si lo borro o no.. (debes consideras tambien que puede regresar falso si no existe, eso depende como hagas la funcion completa...

    Recuerda, estamos para apoyarnos, no para realizarnos las cosas...

    Saludos :)

    Stryfe™
      Votes: 0 - Link answer
     
  • Date: 16-05-2019 10:32:01 Excelente Ernesto con eso es suficiente muchas gracias por tu ayuda.
    Muchas gracias tambien mauro, como comentas tendre que hacer algunos cambios esto me llevara a trabajar mas, pero al fin de cuentas me ayudara aprender mas tambien.
    Este proyecto es mas para aprendizaje si logro hecharlo andar pues que bien, lo que seguiria seria perfeccionarlo en seguridad y otros aspectos pero por el momento que funcione es mi objetivo, por cierto se trata de un backend.
      Votes: 0 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In