Nueva pregunta

Pregunta:

Fecha: 16-05-2018 12:11:56 (En Español)

boton de borrar y editar para mi table[No resuelta]

buenas tardes tengo un gran problemita y quiero resolverlo, he provado de todo con todo y nada no logro hacerlo bien y se que ustedes me pueden ayudar. tengo una tabla con los resultados de una comparacion entre dos tablas. compara numero de referencias bancarios para ver cuales con los que coinsiden y cuales no .. quiero borar o poder eliminar esos datos de una sola tabla pero no logro hacer nada . para esto aparte tengo una datatable con sus respectivos botones de editar y eliminar y funciona super bien. quiero que se pueda borar los datos de una de las tablas con precionar el boton o editarlas . gracias por su ayuda aqui ,mi code.

este es mi tabla de comparacion.

<div class="panel-body">
                            <form>
                                <table  width="100%" class="table table-striped table-bordered table-hover" id="dataTables-example" >
                                    <thead>
                                        <tr>
                                            <th>Ticket</th>
                                            <th>Usuario</th>
                                            <th>Cedula</th>
                                            <th>Referencia</th>
                                            <th>Monto</th>
                                            <th>Estatus</th>
                                            <th>Reportado</th>
                                            <th>Comentario</th>
                                        </tr>
                                    </thead>
                                    <?php
                                    //Clase para manejar la conexion a la base de datos
                                    class Connect
                                    {
                                        private $user = "root";//usuario de mysqlk
                                        private $pass = "";//clave de mysql
                                        private $base = "radius";//base de datos en mysql
                                        private $server = "localhost";//servidor de alojamiento
                                        public  $error;//en caso de error se almacena aqui
                                        public  $db;
                                        public  function __construct(){
                                            $mysqli = new mysqli($this->server, $this->user, $this->pass, $this->base);
                                            if ($mysqli->connect_errno) {
                                                $this->error = "Fallo al conectar a MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
                                            }
                                            $this->db = $mysqli;
                                        }
                                    }
                                    //Clase trabajo que se extiende de Connect
                                    class Trabajo extends Connect
                                    {
                                        public function __construct(){
                                            parent::__construct();
                                        }
                                        public function valida($x){
                                                $a = $this->db->query("SELECT * FROM archivos_pagos WHERE referencia = '$x' ");
                                                
                                        $t = $a->num_rows;

                                                if($t>=1){
                                                    //Si el cliente realizó el pago retorno la información
                                                    $row = $a->fetch_object();
                                                    return $row;
                                                }else{
                                                    //si no retorno falso
                                                    return false;
                                                }
                                        }//
                                        public function data(){
                                            $a = $this->db->query("SELECT * FROM pagos_pagina");
                                            $con=1;
                                            while($row = $a->fetch_object()){
                                                //Envío a validar la referencia del cliente
                                                $valida = $this->valida($row->referencia);
                                                
                                                if($valida){                           
                                        echo "<tr>
                                            <td>".$con."</td>
                                            <td>".$row->nombre." ".$row->apellido."</td>
                                            <td>".$row->cedula."</td>
                                            <td>".$valida->referencia."</td>
                                            <td>".$row->monto."</td>
                                            <td>Valido</td>
                                            <td><a href='#'> <butoon type='button' class='btn btn-success'>Valido</button></a></td>
                                            <td><div class='panel-footer'>
                                            <div class='input-group'>
                                                <input id='btn-input 'type='text' class='form-control input-sm' placeholder='Escribe un Comentario' />
                                                <span class='input-group-btn'>
                                                    <button class='btn btn-warning btn-sm' id='btn-chat'> Enviar </button>
                                                </span>
                                            </div>
                                        </div></td>

                                        </tr>";
                                    }else{
                                        echo "<tr>
                                                <td>".$con."</td>
                                                <td>".$row->nombre." ".$row->apellido."</td>
                                                <td>".$row->cedula."</td>
                                                <td>".$row->referencia."</t>
                                                <td>".$row->monto."</t>
                                                <td>Invalido</td>
                                                <td><a href='#'> <butoon type='button' class='btn btn-danger'>Invalido</button></a></td>
                                                <td><div class='panel-footer'>
                                                    <div class='input-group'>
                                                        <input id='btn-input 'type='text' class='form-control input-sm' placeholder='Escribe un Comentario' />
                                                        <span class='input-group-btn'>
                                                            <button class='btn btn-warning btn-sm' id='btn-chat'> Enviar </button>
                                                        </span>
                                                    </div>
                                                </div></td>
                                            </tr>";
                                    } 
                                    $con++;
                                }
                                echo "</table>";
                            }
                        }
                        $p = new trabajo();
                        $p->data();
                    ?>
                               </table>


y aqui esta mi data table . https://obedalvarado.pw/php-scripts.php


solo quiero que en ves que me visualice borre y edite una sola tabla lo haga con las dos que valido en mi primer script gracias
Etiquetas: PHP MySQLi - Tabla HTML Votos: 0 - Respuestas: 3 - Vistas: 13 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 17-05-2018 04:42:30 Hola Josias,
    El código está un poco sucio así que le corregí algunos detalles para que siga las mejores prácticas y principios (SOLID, PSR, DDD) y limpié un poco la parte de lo que sería la vista. Por lo menos tus clases ya les puedes hace unit tests sin tanto problema por la dependencia en la conexión.
    Hecho esto se ve más claro lo que estás haciendo.

    En el link que compartes como tu data table es una página web. Es correcto? No veo o no es claro qué es lo que consideras como tu data table.

    Checa el código que te comparto. Le agregué una columna de acciones y para cada registro tendrás un botón de editar y uno para eliminar el registro. Lo único que tienes que hacer es agregar la funcionalidad.

    <?php
    /**
     * Maneja la conexión a la base de datos
     */
    class Connect
    {
        /** @var string */
        protected $error;
        /** @var string */
        protected $user;
        /** @var string */
        protected $pass;
        /** @var string */
        protected $base;
        /** @var string */
        protected $server;
        /** @var mysqli */
        protected $connection;
    
        /**
         * Connect constructor.
         *
         * @param string $user
         * @param string $pass
         * @param string $base
         * @param string $server
         */
        public function __construct($user, $pass, $base, $server)
        {
            $this->user   = $user;
            $this->pass   = $pass;
            $this->base   = $base;
            $this->server = $server;
        }
    
        /**
         * Conecta a la base de datos
         *
         * @return mysqli
         */
        public function connect()
        {
            $this->connection = new mysqli($this->server, $this->user, $this->pass, $this->base);
            if ($this->connection->connect_errno) {
                throw new \UnexpectedValueException("Fallo al conectar a MySQL: ({$this->connection->connect_errno}) " .
                                                    $this->connection->connect_error);
            }
    
            return $this->connection;
        }
    }
    
    /**
     * Maneja las acciones de Trabajo
     */
    class Trabajo
    {
        /** @var mysqli */
        protected $connection;
    
        /**
         * Trabajo constructor.
         *
         * @param mysqli $conexion
         */
        public function __construct(mysqli $conexion)
        {
            $this->connection = $conexion;
        }
    
        /**
         * Obtiene los registros a desplegar
         *
         * @return array
         */
        public function getData()
        {
            $data   = [];
            $result = $this->connection->query('SELECT * FROM pagos_pagina');
            while ($row = $result->fetch_object()) {
                $valida      = $this->hasReferences($row->referencia);
                $row->valida = $valida;
    
                $data[] = $row;
            }
    
            return $data;
        }
    
        /**
         * Valida si existen referencias
         *
         * @param string $reference
         *
         * @return bool
         */
        protected function hasReferences($reference)
        {
            $statement = $this->connection->prepare('SELECT COUNT(*) AS cant FROM archivos_pagos  WHERE referencia = ?');
            $statement->bind_param('s', $reference);
            $statement->execute();
    
            $hayResultados = $statement->get_result()->fetch_object();
    
            $statement->close();
    
            return (bool)$hayResultados;
        }
    }
    
    $connect = new Connect('root', '', 'radius', 'localhost');
    $conexion = $connect->connect();
    $trabajo  = new Trabajo($conexion);
    
    $datos = $trabajo->getData();
    ?>
    
    <div class="panel-body">
        <form>
            <table width="100%" class="table table-striped table-bordered table-hover" id="dataTables-example">
                <thead>
                    <tr>
                        <th>Ticket</th>
                        <th>Usuario</th>
                        <th>Cedula</th>
                        <th>Referencia</th>
                        <th>Monto</th>
                        <th>Estatus</th>
                        <th>Reportado</th>
                        <th>Comentario</th>
                        <th>Acciones</th>
                    </tr>
                </thead>
                <tbody>
                <?php
                if (!\count($datos)) {
                    echo <<< HTML
                    <tr>
                        <th colspan="8">No hay registros</th>
                    </tr>
    
    HTML;
                } else {
                    $contador = 1;
                    foreach ($datos as $registro) {
                        $validTag = $registro->valida ? 'Valido' : 'Invalido';
                        echo <<< HTML
                    <tr>
                        <td>{$contador}</td>
                        <td>{$registro->nombre} {$registro->apellido}</td>
                        <td>{$registro->cedula}</td>
                        <td>{$registro->referencia}</td>
                        <td>{$registro->monto}</td>
                        <td>{$validTag}</td>
                        <td>
                            <a href='#'>
                                <button type='button' class='btn btn-success'>{$validTag}</button>
                            </a>
                        </td>
                        <td>
                            <div class='panel-footer'>
                                <div class='input-group'>
                                    <input id='btn-input 'type='text' class='form-control input-sm' placeholder='Escribe un Comentario' />
                                    <span class='input-group-btn'>
                                        <button class='btn btn-warning btn-sm' id='btn-chat'>Enviar</button>
                                    </span>
                                </div>
                            </div>
                        </td>
                        <td>
                            <button class='btn btn-warning btn-sm' id='btn-edit-{$registro->referencia}'>Editar</button>
                            <button class='btn btn-warning btn-sm' id='btn-delete-{$registro->referencia}'>Eliminar</button> 
                        </td>
                    </tr>
    
    HTML;
                        $contador++;
                    }
                }
                ?>
                </tbody>
            </table>
        </form>
    </div>
    


    Es eso lo que necesitas?

    Saludos
      Votos: 1 - Link respuesta
     
  • Fecha: 17-05-2018 06:12:44 tengo una data table como la que aparece en este link https://editor.datatables.net/examples/simple/simple.html 100% funcional pero en si no me funciona con lo que quiero ya que esta datatable me hace que me muestre una sola tabla y quiero mostrar en ella la comparacion de mis dos tablas . eso quiere decir que quiero eliminar y editar mi tabla . con simples botones . gracias por tu aporte.pero me da un error tengo que conectarlo a la db ?? osea tengo que rellenar donde dice serve, pass,base ,y user?
    aqui esta el ajax de mi data table donde quisiera que me visualizara mi primer script.

    <?php
    
     include "conn.php";
    
    /* Database connection end */
    // storing  request (ie, get/post) global array to a variable  
    $requestData= $_REQUEST;
    
    
    $columns = array( 
    // datatable column index  => database column name
    	0 => 'id',
        1 => 'nombre', 
    	2 => 'apellido',
    	3 => 'cedula',
    	4 => 'email',
    	5 => 'telefono',
    	6 => 'banco',  
    	7 => 'referencia',
    	8 => 'monto',  
    	9 => 'comentario',    
        10=>'registrado'   
    );
    // esto muestra lo que se ve en la data table
    // getting total number records without any search
    $sql = "SELECT id, nombre,apellido,cedula,email, telefono,banco,referencia,monto,comentario, registrado ";
    $sql.=" FROM cliente";
    $query=mysqli_query($conn, $sql) or die("ajax-grid-data.php: get InventoryItems");
    $totalData = mysqli_num_rows($query);
    $totalFiltered = $totalData;  // when there is no search parameter then total number rows = total number filtered rows.
    
    
    if( !empty($requestData['search']['value']) ) {
    	// if there is a search parameter
    	$sql = "SELECT id, nombre, apellido, cedula, email,telefono,banco,referencia,monto,comentario, registrado ";
    	$sql.=" FROM cliente";
    	$sql.=" WHERE nombre LIKE '".$requestData['search']['value']."%' ";    // $requestData['search']['value'] contains search parameter
    	$sql.=" OR apellido LIKE '".$requestData['search']['value']."%' ";
    	$sql.=" OR cedula LIKE '".$requestData['search']['value']."%' ";
    	$sql.=" OR email  LIKE '".$requestData['search']['value']."%' ";
    	$sql.=" OR telefono  LIKE '".$requestData['search']['value']."%' ";
    	$sql.=" OR banco LIKE '".$requestData['search']['value']."%' ";
    	$sql.=" OR referencia LIKE '".$requestData['search']['value']."%' ";
    	$sql.=" OR monto LIKE '".$requestData['search']['value']."%' ";
    	$sql.=" OR comentario LIKE '".$requestData['search']['value']."%' ";
        $sql.=" OR registrado LIKE '".$requestData['search']['value']."%' ";
    	$query=mysqli_query($conn, $sql) or die("ajax-grid-data.php: get PO");
    	$totalFiltered = mysqli_num_rows($query); // when there is a search parameter then we have to modify total number filtered rows as per search result without limit in the query 
    
    	$sql.=" ORDER BY ". $columns[$requestData['order'][0]['column']]."   ".$requestData['order'][0]['dir']."   LIMIT ".$requestData['start']." ,".$requestData['length']."   "; // $requestData['order'][0]['column'] contains colmun index, $requestData['order'][0]['dir'] contains order such as asc/desc , $requestData['start'] contains start row number ,$requestData['length'] contains limit length.
    	$query=mysqli_query($conn, $sql) or die("ajax-grid-data.php: get PO"); // again run query with limit
    	
    } else {	
    
    	$sql = "SELECT id, nombre, apellido, cedula, email,telefono,banco,referencia,monto,comentario, registrado ";
    	$sql.=" FROM cliente";
    	$sql.=" ORDER BY ". $columns[$requestData['order'][0]['column']]."   ".$requestData['order'][0]['dir']."   LIMIT ".$requestData['start']." ,".$requestData['length']."   ";
    	$query=mysqli_query($conn, $sql) or die("ajax-grid-data.php: get PO");
    	
    }
    
    $data = array();
    while( $row=mysqli_fetch_array($query) ) {  
    	$nestedData=array(); 
    
    	$nestedData[] = $row["id"];
        $nestedData[] = $row["nombre"];
    	$nestedData[] = $row["apellido"];
    	$nestedData[] = $row["cedula"];
    	$nestedData[] = $row["email"];
    	$nestedData[] = $row["telefono"];
    	$nestedData[] = $row["banco"];
    	$nestedData[] = $row["referencia"];
    	$nestedData[] = $row["monto"];
    	$nestedData[] = $row["comentario"];
        $nestedData[] = date("d/m/Y", strtotime($row["registrado"]));
        $nestedData[] = '<td><center>
                         <a href="editar.php?id='.$row['id'].'"  data-toggle="tooltip" title="Editar datos" class="btn btn-sm btn-info"> <i class="menu-icon icon-pencil"></i> </a>
                         <a href="index.php?action=delete&id='.$row['id'].'"  data-toggle="tooltip" title="Eliminar" class="btn btn-sm btn-danger"> <i class="menu-icon icon-trash"></i> </a>
    				     </center></td>';		
    	
    	$data[] = $nestedData;
        
    }
    
    
    
    $json_data = array(
    			"draw"            => intval( $requestData['draw'] ),   // for every request/draw by clientside , they send a number as a parameter, when they recieve a response/data they first check the draw number, so we are sending same number in draw. 
    			"recordsTotal"    => intval( $totalData ),  // total number of records
    			"recordsFiltered" => intval( $totalFiltered ), // total number of records after searching, if there is no searching then totalFiltered = totalData
    			"data"            => $data   // total data array
    			);
    
    echo json_encode($json_data);  // send data as json format
    
    ?>
    
    
      Votos: 0 - Link respuesta
     
  • Fecha: 18-05-2018 04:40:00 listo hermano puse a funcionar tu codigo y esta muy bien. le hice algunas modificaciones. asi quedo.
    <?php
    /**
     * Maneja la conexión a la base de datos
     */
    class Connect
    {
        /** @var string */
        protected $error;
        /** @var string */
        protected $user;
        /** @var string */
        protected $pass;
        /** @var string */
        protected $base;
        /** @var string */
        protected $server;
        /** @var mysqli */
        protected $connection;
        /**
         * Connect constructor.
         *
         * @param string $user
         * @param string $pass
         * @param string $base
         * @param string $server
         */
        public function __construct($user, $pass, $base, $server)
        {
            $this->user   = $user;
            $this->pass   = $pass;
            $this->base   = $base;
            $this->server = $server;
        }
        /**
         * Conecta a la base de datos
         *
         * @return mysqli
         */
        public function connect()
        {
            $this->connection = new mysqli($this->server, $this->user, $this->pass, $this->base);
            if ($this->connection->connect_errno) {
                throw new \UnexpectedValueException("Fallo al conectar a MySQL: ({$this->connection->connect_errno}) " .
                                                    $this->connection->connect_error);
            }
            return $this->connection;
        }
    }
    /**
     * Maneja las acciones de Trabajo
     */
    class Trabajo
    {
        /** @var mysqli */
        protected $connection;
        /**
         * Trabajo constructor.
         *
         * @param mysqli $conexion
         */
        public function __construct(mysqli $conexion)
        {
            $this->connection = $conexion;
        }
        /**
         * Obtiene los registros a desplegar
         *
         * @return array
         */
        public function getData()
        {
            $data   = [];
            $result = $this->connection->query('SELECT * FROM pagos_pagina');
            while ($row = $result->fetch_object()) {
                $valida      = $this->hasReferences($row->referencia);
                $row->valida = $valida;
                $data[] = $row;
            }
            return $data;
        }
        /**
         * Valida si existen referencias
         *
         * @param string $reference
         *
         * @return bool
         */
        protected function hasReferences($reference)
        {
            $statement = $this->connection->prepare('SELECT COUNT(*) AS cant FROM archivos_pagos  WHERE referencia = ?');
            $statement->bind_param('s', $reference);
            $statement->execute();
            $hayResultados = $statement->get_result()->fetch_object();
            $statement->close();
            return (bool)$hayResultados;
        }
    }
    $connect = new Connect('root', '', 'radius', 'localhost');
    $conexion = $connect->connect();
    $trabajo  = new Trabajo($conexion);
    $datos = $trabajo->getData();
    ?>
    <div class="panel-body">
        <form>
            <table width="100%" class="table table-striped table-bordered table-hover" id="dataTables-example">
                <thead>
                    <tr>
                        <th>Ticket</th>
                        <th>Usuario</th>
                        <th>Cedula</th>
                        <th>Referencia</th>
                        <th>Monto</th>
                        <th>Estatus</th>
                        <th>Acciones</th>
                    </tr>
                </thead>
                <tbody>
                <?php
                if (!\count($datos)) {
                    echo <<< HTML
                    <tr>
                        <th colspan="8">No hay registros</th>
                    </tr>
    HTML;
                } else {
                    $contador = 1;
                    foreach ($datos as $registro) {
                        $validTag = $registro->valida ? 'Valido' : 'Invalido';
                        echo <<< HTML
                    <tr>
                        <td>{$contador}</td>
                        <td>{$registro->nombre} {$registro->apellido}</td>
                        <td>{$registro->cedula}</td>
                        <td>{$registro->referencia}</td>
                        <td>{$registro->monto}</td>
                        <td>{$validTag}</td>
                        <td>
                            <button class='btn btn-warning btn-sm' id='btn-edit-{$registro->referencia}'>Editar</button>
                            <button class='btn btn-warning btn-sm' id='btn-delete-{$registro->referencia}'>Eliminar</button> 
                        </td>
                    </tr>
    HTML;
                        $contador++;
                    }
                }
                ?>
                </tbody>
            </table>
        </form>
    </div>
    
    
    



    el problema esta que antes en estatus me decia si estava valido y no estaba valido . pero ahora todos son validos. y para editar usaria un escript parecido a este?

    editar.php

    <?php include "conexion.php"; ?>
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <head>
    <?php include("head.php");?>
    </head>
    <body>
    <div class="navbar navbar-fixed-top">
    <div class="navbar-inner">
    <div class="container">
    <a class="btn btn-navbar" data-toggle="collapse" data-target=".navbar-inverse-collapse">
    <i class="icon-reorder shaded"></i></a><a class="brand" target="_blank">Sistemas Web</a>
    </div>
    </div>
    <!-- /navbar-inner -->
    </div><br />

    <div class="container">
    <div class="row">
    <div class="span12">
    <div class="content">
    <?php
    $id = intval($_GET['id']);
    $sql = mysqli_query($conn, "SELECT * FROM cliente WHERE id='$id'");
    if(mysqli_num_rows($sql) == 0){
    header("Location: sacado.php");
    }else{
    $row = mysqli_fetch_assoc($sql);
    }
    ?>
    <blockquote>
    Actualizar de pagos
    </blockquote>
    <form name="form1" id="form1" class="form-horizontal row-fluid" action="update-edit.php" method="POST" >
    <div class="control-group">
    <label class="control-label" for="basicinput">ID</label>
    <div class="controls">
    <input type="text" name="id" id="id" value="<?php echo $row['id']; ?>" placeholder="Tidak perlu di isi" class="form-control span8 tip" readonly="readonly">
    </div>
    </div>

    <div class="control-group">
    <label class="control-label" for="basicinput">Nombre</label>
    <div class="controls">
    <input type="text" name="nombre" id="nombre" value="<?php echo $row['nombre']; ?>" placeholder="" class="form-control span8 tip" required>
    </div>
    </div>
    <div class="control-group">
    <label class="control-label" for="basicinput">Apellido</label>
    <div class="controls">
    <input type="text" name="apellido" id="apellido" value="<?php echo $row['apellido']; ?>" placeholder="" class="form-control span8 tip" required>
    </div>
    </div>
    <div class="control-group">
    <label class="control-label" for="basicinput">Cedula</label>
    <div class="controls">
    <input type="text" name="cedula" id="cedula" value="<?php echo $row['cedula']; ?>" placeholder="" class="form-control span8 tip" required>
    </div>
    </div>
    <div class="control-group">
    <label class="control-label" for="basicinput">Email</label>
    <div class="controls">
    <input name="email" id="email" value="<?php echo $row['email']; ?>" class="form-control span8 tip" type="email" required />
    </div>
    </div>
    <div class="control-group">
    <label class="control-label" for="basicinput">Telefono</label>
    <div class="controls">
    <input type="text" name="telefono" id="telefono" value="<?php echo $row['telefono']; ?>" placeholder="" class="form-control span8 tip" required>
    </div>
    </div>
    <div class="control-group">
    <label class="control-label" for="basicinput">Banco</label>
    <div class="controls">
    <input type="text" name="banco" id="banco" value="<?php echo $row['banco']; ?>" placeholder="" class="form-control span8 tip" required>
    </div>
    </div>
    <div class="control-group">
    <label class="control-label" for="basicinput">Referencia</label>
    <div class="controls">
    <input type="text" name="referencia" id="referencia" value="<?php echo $row['referencia']; ?>" placeholder="" class="form-control span8 tip" required>
    </div>
    </div>
    <div class="control-group">
    <label class="control-label" for="basicinput">Monto</label>
    <div class="controls">
    <input type="text" name="monto" id="monto" value="<?php echo $row['monto']; ?>" placeholder="" class="form-control span8 tip" required>
    </div>
    </div>
    <div class="control-group">
    <label class="control-label" for="basicinput">Comentario</label>
    <div class="controls">
    <input type="text" name="comentario" id="comentario" value="<?php echo $row['comentario']; ?>" placeholder="" class="form-control span8 tip" required>
    </div>
    </div>

    <div class="control-group">
    <label class="control-label" for="basicinput">Registrado</label>
    <div class="controls">
    <input name="notelp" id="notelp" value="<?php echo $row['registrado']; ?>" class=" form-control span8 tip" type="text" disabled />
    </div>
    </div>

    <div class="control-group">
    <div class="controls">
    <input type="submit" name="update" id="update" value="Actualizar" class="btn btn-sm btn-primary"/>
    <a href="index.php" class="btn btn-sm btn-danger">Cancelar</a>
    </div>
    </div>
    </form>
    </div>
    <!--/.content-->
    </div>
    <!--/.span9-->
    </div>
    </div>
    <!--/.container-->
    <!--/.wrapper--><br />
    <script src="bootstrap/js/bootstrap.min.js" type="text/javascript"></script>
    </body>
    </html>
    gracias por tu ayuda
      Votos: 0 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com