Editar Registros con Función PHP y MySQL: Ejemplos

Editar Registros con Función PHP y MySQL. En este artículo nos enfocaremos en la modificación de datos ya almacenados en la base de datos utilizando una función PHP para que la edición sea de manera dinámica, sin embargo, pareciera que es muy complicado, pero nosotros detallaremos lo sencillo que es implementar funciones.

Si bien necesitamos de estructuras HTML para manejar una interfaz más amena, en este ejemplo de edición necesitaremos los siguientes campos: Nombre, Apellidos lo cual nos apoyaremos en formularios. Ahora nos damos cuenta que tienes que procesar y agregar todos los elementos del formulario para modificar en nuestra DB de manera personalizada. Normalmente se utiliza la consulta SQL siguiente:

Editar Registros con Función PHP y MySQL

UPDATE table_name SET column1=value, column2=value2,... WHERE some_column=id_value

Ejemplo real de usabilidad

$consulta = "UPDATE mi_tabla SET nombres='Juan' WHERE id=2";

Ahí lo tenemos, pero ahora para volver más dinámico nuestras consultas veremos la aplicación de funciones estructuradas para tal fin.

Ejemplo #01 Utilizando funciones para edición

a) Crear la base de datos y su respectiva tabla

CREATE TABLE IF NOT EXISTS `tabla_demo` (
  `id` int(11) NOT NULL auto_increment,
  `nombres` varchar(25) NOT NULL,
  `apellidos` varchar(35) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ;

--
-- Volcar la base de datos para la tabla `tabla_demo`
--

INSERT INTO `tabla_demo` (`id`, `nombres`, `apellidos`) VALUES
(3, 'Juan Jose', 'Albarracin Flores'),
(4, 'Meliza Estela', 'Loza Morales'),
(5, 'Mario', 'Ruiz Sotomayor'),
(6, 'Luisa Eugenia', 'Candia Quintana'),
(7, 'Nohelia Maria', 'Valdivia Valdivia'),
(8, 'Nilda Elena', 'Castillo Garcia'),
(11, 'Miguel', 'Cervantes sidra');

b) la conexión con el servidor de base de datos

function db_query($query) {
    $connection = mysqli_connect("localhost","root","root","baul");
    $result = mysqli_query($connection,$query);

    return $result;
}

c) La consulta de Actualización a partir de una ID dentro de la Clausula WHERE

function edit($tblname,$form_data,$field_id,$id){
	$sql = "UPDATE ".$tblname." SET ";
	$data = array();

	foreach($form_data as $column=>$value){

		$data[] =$column."="."'".$value."'";

	}
	$sql .= implode(',',$data);
	$sql.=" where ".$field_id." = ".$id."";
	return db_query($sql); 
}

d) Nuestro HTML para mostrar formularios de edición

<body>
<div class="main-wrapper">
<h1>Editar Registros con Función PHP </h1>
<br><br>
<?php include("function.php");?>
<table border="1" width="100%">
	<tr>
		<th width="41%">Nombres</th>
		<th width="47%">Apellidos</th>
		<th width="12%">Opcion</th>
	</tr>
<?php 
	$sql = "select * from tabla_demo";
	$result = db_query($sql);
	while($row = mysqli_fetch_object($result)){
	?>
	<tr>
		<td><?php echo $row->nombres;?></td>
		<td><?php echo $row->apellidos;?></td>
		<td>
<a class="btn btn-primary" href="editar.php?id=<?php echo $row->id; ?>">
<i class="fa fa-pencil fa-lg" aria-hidden="true"></i></a>
        </td>
	</tr>
	<?php } ?>
</table>
</div>
</body>

Resultado en el Navegador

Editar Registros funcion php MySQL
Editar Registros funcion php MySQL

Ventana de edición de registros.

Guardar edicion PHP y MySQL
Guardar edicion PHP y MySQL
Editar Registros con Función PHP
Editar Registros con Función PHP

Referencia

w3schools

 

Nestor Tapia

Bloggero, amante de la programación PHP, innovador y me fascina compartir información. Desde que conocí el entorno informatico y el internet me llamó la atención la programación, Por tal motivo he creado mi blog BAULPHP.COM para compartir mis experiencias con todos ustedes. ¡Gracias por leerme!.

14 comentarios

  1. Hola, Nestor, junto con saludare te quería felicitar por el ejemplo anterior,,, completamente claro, y muy eficiente, denota gran experiencia en el tema.
    felicitaciones.

  2. Muchas gracias por su Web. Muy buena página. Quise ejecutar el archivo y me sale el error siguiente:

    Fatal error: Uncaught TypeError: mysqli_fetch_object(): Argument #1 ($result) must be of type mysqli_result, bool given in C:\xampp\htdocs\Ejemplo_Completo_3\index.php:55 Stack trace: #0 C:\xampp\htdocs\Ejemplo_Completo_3\index.php(55): mysqli_fetch_object(false) #1 {main} thrown in C:\xampp\htdocs\Ejemplo_Completo_3\index.php on line 55

    De antemano, gracias.

    Saludos

  3. buenas quiero agregar unos campos en una variable nueva en la base de datos del unms y no he podido puedes ayudarme esta en php

    private function getHeaderLine(): array
    {
    return [
    ‘RIF’,
    ‘Number’,
    ‘Status’,
    ‘Created date’,
    ‘Due date’,
    ‘Currency’,
    ‘Total’,
    ‘Taxes’,
    ‘Discount’,
    ‘Amount paid’,
    ‘Amount due’,
    ‘Client firstname’,
    ‘Client lastname’,
    ‘Client company name’,
    ‘Client address’,
    ];
    }

    private function getInvoiceLine(array $invoice): array
    {
    return [
    $invoice[‘number’], (es aqui agregue rif arriba)
    $invoice[‘number’],
    $this->formatInvoiceStatus($invoice[‘status’]),
    $invoice[‘createdDate’],
    $invoice[‘dueDate’],
    $invoice[‘currencyCode’],
    $invoice[‘total’],
    $this->sumTaxes($invoice[‘taxes’]),
    $invoice[‘discount’] ?? 0,
    $invoice[‘amountPaid’],
    $invoice[‘total’] – $invoice[‘amountPaid’],
    $invoice[‘clientFirstName’],
    $invoice[‘clientLastName’],
    $invoice[‘clientCompanyName’],
    $this->formatClientAddress($invoice),
    ];
    }

    private function formatInvoiceStatus(int $status): string
    {

  4. Warning: mysqli_fetch_object() expects parameter 1 to be mysqli_result, boolean given in C:\AppServ\www\editor\function.php on line 2

    Cuales mi error?

    1. Hola Victor
      Este error ocurre porque el resultado de la consulta falló, y entonces el resultado devuelto fue “FALSE” en lugar de un “RESULTADO”.

      Lo que debes hacer es añadir un código para depurar y ver que esta ocurriendo en la consulta. El error lo puedes visualizar utilizando “mysqli_error”.

      Ejemplo de uso “mysqli_error”:
      $sql = ‘SELECT * FROM paises’;
      $rec = mysqli_query($conexion,$sql);
      if (!$rec) {
      echo(“Error: %s\n”, mysqli_error($conexion));
      }

  5. Que libreria estas utilizando para generar esos iconos.

    Veo que solo declaras lo siguiente.

    <a class="btn btn-primary" href="editar.php?id=id; ?>”>

    Alguna respuesta?
    Gracias de antemano.

    1. Si no me equivoco es Font Awesome Icons, buscalo en Google y lo implementas en tus sitios web, muy facil de usar, saludos..

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba