Inicio
Software
Programación
HTML Programación - PHP (ini) Programación - PHP POO Programación - PHP / HTML SQL Java
Hardware
Desarrollos
Quién soy Mapa del sitio

PHP / HTML Listado y edición

Imprimir
Categoría: Primera aplicación - Web
Escrito por Ch4rl1X Visitas: 834

Vimos como generar el ingreso de clientes y un menú, como para navegar en nuestra aplicación.


En esta oportunidad, generaremos 2 links más, el siguiente:

Y los 2 accesos:

Cada uno apuntará al directorio correspondiente, para el caso: clientes\editarCliente e ingresoCliente.

Veamos el nuevo código generado para el listado y edición de clientes:

<?php
/*
  --------------------------------------------------------------------------------------------
  |                          Ch4rl1X Desarrollo de aplicaciones web y moviles                |
  |                                                                                          |
  |                                  correo: 
 Esta dirección de correo electrónico está protegida contra spambots. Usted necesita tener Javascript activado para poder verla.
                         |
  |                                     web: www.charlesweb.com.ar                           |
  |                                                                                          |
  | Este material es apto para ser difundido y compartido. Utilizalo bajo tu responsabilidad.|
  --------------------------------------------------------------------------------------------
 */
/*Conexión con la base de datos*/
include("../vConSec.php");
?>
<?php
//EL CODIGO COMIENZA AQUI
/*Por el momento no tenemos código*/
?>
<html>
<head>
    <title>Modificaci&oacute;n de clientes</title>        
<link href="/../styles.css" rel="stylesheet" type="text/css" />
</head>
<body>
    <fieldset><legend>Edici&oacute;n de clientes</legend>
    <div align="center">
    <table>
        <thead>
            <tr>
            <th>Nombre Cliente</th>
            <th>Raz&oacute;n social</th>
            <th>Tel&eacute;fono</th>
            <th>Editar cliente</th>
            </tr>
        </thead>
        <tbody>

<?php
/*Creamos un bucle while que va a listar todo lo que haya en la tabla clientes*/
//Se crea la variable con la consulta a realizar en la base

$clientes = $conexion->query("SELECT * FROM clientes");


while($muestraCliente = $clientes->fetch_array()){
echo "<tr>";
echo "<td>".$muestraCliente['nombreCliente']."</td>";
echo "<td>".$muestraCliente['razonSocial']."</td>";
echo "<td>".$muestraCliente['telefono']."</td>";
echo '<td><a href=editaCliente.php?idCliente='.$muestraCliente['idCliente'].'>Edita cliente</a><td>';
echo "<tr>";
}

?>

       </tbody>
    </table>
</div>
<div align="left"><a href="/index.php" title="Click para volver" ><img src="/../imagenes/paginaAtras.png" border="0" align="left" width="80" height="70" alt="Volver" title="Volver" /></a></div>
</fieldset>
</body>
</html>

Lo primero que se incluye en el código es el acceso a la bd, que ahora será a través de un archivo en el directorio raíz de nuestra app (vConSec.php)

Iniciamos el contenido obviamente con las etiquetas HTML, algunas configuraciones visuales a través del archivo styles.css y la tabla que presentará los datos en pantalla. Se inicializa el código PHP, creando la variable clientes, que contendrá el acceso al método query que hace referencia vConSec.php, que llamará a los datos de la tabla clientes y mostrará todos los datos a través del array muestraClientes, recorrido por el bucle while. Por cada cliente se genera un link con la id del mismo que guarda en una variable GET el valor, para enviarlo al archivo editaCliente.php. Luego finalizamos la página con las finalizaciones de todas las etiquetas abiertas previamente.

Analizando el código de el archivo editaCliente.php:

Volvemos a generar el acceso al archivo vConSec.php, que es el que contiene el acceso a la base de datos. Recordando que enviamos una variable por GET al formulario, el primer fragmento se dedicará a "guardar" el id del cliente en la variable idCliente sí viene por GET o POST (cuando el formulario fue editado):

<?php
/*
  --------------------------------------------------------------------------------------------
  |                          Ch4rl1X Desarrollo de aplicaciones web y moviles                |
  |                                                                                          |
  |                                  correo: 
 Esta dirección de correo electrónico está protegida contra spambots. Usted necesita tener Javascript activado para poder verla.
                         |
  |                                     web: www.charlesweb.com.ar                           |
  |                                                                                          |
  | Este material es apto para ser difundido y compartido. Utilizalo bajo tu responsabilidad.|
  --------------------------------------------------------------------------------------------
 */
?>
<?php
/*Nuevo acceso a la conexión con la base de datos*/
include("../vConSec.php");
/*Se genera el almacenamiento de la variable */
if($_GET["idCliente"])
{
/*Si la variable viene por GET, se almacena como: */
$idCliente = $_GET["idCliente"];

}else
{
/*Si la variable viene por POST, quiere decir que el formulario fue editado, se almacena también como "$idCliente"*/
$nuevoId = $_POST["idCliente"];
$idCliente = $nuevoId;
}
?>
<html>
<head>
    <title>Clientes</title>
<link href="/../styles.css" rel="stylesheet" type="text/css" />
</head>
<body>
    <div align="center">
    <fieldset><legend>Edita clientes</legend>
    <form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
        <table>
            <tr>
                <th>Nombre del cliente</th>
                <th>Raz&oacute;n social</th>
                <th>Telefono</th>
            </tr>
<?php
/*Consulta para traer el cliente*/
$cliente = $conexion->query("SELECT * FROM clientes WHERE idCliente = '".$idCliente."'");
$fila = $cliente->fetch_array();
?>
            <tr>
                <!-- Recordar que para el muestreo de datos, se utiliza la variable fila, que ingresa en un array, los nombres de las 
                columnas de la fila seleccionadas en la base de datos-->
                <td><input type="text" name="cliente" value="<?php echo $fila["nombreCliente"]; ?>"></td>
                <td><input type="text" name="rsocial" value="<?php echo $fila["razonSocial"]; ?>"></td>
                <td><input type="text" name="telefono" value="<?php echo $fila["telefono"]; ?>"></td>
            </tr>
            <tr>
                <td colspan="3" align="center"><input type="submit" name="EDITAR" value="EDITAR"></td>
            </tr>
        </table>
<?php
/*Se almacena el valor de la id del Cliente en un campo oculto para poder mantener los registros sobre el formulario*/
?>
        <input type="hidden" name="idCliente" value="<?php echo $fila['idCliente']; ?>" />
    </form>
<?php

/*Se controla si botón EDITAR es enviado al formulario*/
if(isset($_POST['EDITAR'])){
/*Control de campos enviados desd el formulario*/
if(isset($_POST['cliente'], $_POST['rsocial'], $_POST['telefono']))
{
/*Se genera el código necesario para ingresar los datos a la base de datos*/
//Creamos la variable y definimos los campos que se van a EDITAR. 
    $editoCliente = $conexion->query("UPDATE SET nombreCliente = '".$_POST['cliente']."', razonSocial = '".$_POST['rsocial']."', telefono = '".$_POST['telefono']."')");
echo "SE ACTUALIZ&Oacute;";
}
}
?>

<div align="left"><a href="/../index.php" title="Click para volver" ><img src="/../imagenes/paginaAtras.png" border="0" align="left" width="80" height="70" alt="Volver" title="Volver" /></a></div>
</fieldset>
</div>
</body>
</html>

Luego se continúa con las etiquetas del HTML, basicamente un copiar y pegar, del formulario de ingreso de clientes. Se vuelve a generar una variable con la consulta a la base de datos, guardamos la variable idCliente el contenido de la fila idCliente seleccionada. Al enviar los valores de los inputs (cliente, rsocial, telefono y EDITAR) la actualización es validada, o sea todos los datos estarían llegando, por lo que se actualiza el valor de la fila en la base de datos.

Y con esto finalizamos el mecanismo para ingresar, listar los registrados y editarlos.

Continuaríamos con el mecanimo para ingresar trabajos. Dejo los archivos actualizados para su descarga.

Base

Archivos

Saludos!