Foros del Web » Programando para Internet » PHP »

Estructurar página php

Estas en el tema de Estructurar página php en el foro de PHP en Foros del Web. Hola a todos, Tengo una pequeña duda a la hora de estructurar una página php que se dedica a insertar, modificar y borrar registros de ...
  #1 (permalink)  
Antiguo 07/12/2007, 01:07
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años
Puntos: 3
Estructurar página php

Hola a todos,

Tengo una pequeña duda a la hora de estructurar una página php que se dedica a insertar, modificar y borrar registros de una bbdd, actualmente lo estoy haciendo de la siguiente manera:
Código PHP:
<?
    
//Si no hay Accion
    
if (!isset($_GET['accion'])){
        
//Aqui va el lisado de los registros actuales

    //Si la Accion es Alta
    
}elseif($_GET['accion']==alta){
        
//Aqui tenemos el formulario de alta

    //Si la Accion es Insertar
    
}elseif($_GET['accion']==insertar){
        
//Aqui está el codigo sql para introducir dichos valores a la bbdd

    //Si la Accion es modificar    
    
}elseif($_GET['accion']==modificar){
        
//Aqui tenemos el formulario de modificacion

    //Si la Accion es Actualizar
    
}elseif($_GET['accion']==actualizar){
        
//Aqui está el codigo sql para modificar dichos valores a la bbdd

    
}

    
//Si la Accion es Eliminar
    
}elseif($_GET['accion']==eliminar){
        
//Aqui está el codigo sql para eliminar los valores a la bbdd

    
}
  
?>
¿Como me aconsejaríais vosotros hacerlo?

Muchas Gracias
  #2 (permalink)  
Antiguo 07/12/2007, 03:05
Avatar de sumolari  
Fecha de Ingreso: mayo-2006
Ubicación: localhost
Mensajes: 1.367
Antigüedad: 17 años, 11 meses
Puntos: 18
Re: Estructurar página php

Yo lo haría así:
Código PHP:
<?php
switch ($_GET['action']) {
case 
'alta':
//Aquí tenemos el formulario de alta
break;
// ETC, ETC, ETC
default:
//Aquí va el listado de los registros actuales
break;
}
?>
  #3 (permalink)  
Antiguo 07/12/2007, 13:17
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años
Puntos: 3
Re: Estructurar página php

Tengo otras dos preguntillas, la mejor forma de hacer esto es hacer todo en el mismo archivo o es mejor tener divididas las paginas por insertar, modificar, eliminar,...

Y como podría hacer para que el mensaje de "El registro 1 ha sido insertado correctamente" me aparezca en un cuadrado en la página de listados, es decir, que después de insertar, modificar o eliminar un registro vaya al listado de registros y salga un mensaje que indique "El registro 1 ha sido insertado correctamente".

Muchas Gracias por vuestras respuestas
  #4 (permalink)  
Antiguo 07/12/2007, 13:23
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
Re: Estructurar página php

Pues depende mucho de cuanto codigo tienes en cada una de esas "acciones" porque no tiene mucho caso que tengas un archivo por cada "acción" si son solo 5 lineas. Pero si en cambio tienes muchas lineas, te recomiendo que los separes para que sea mas fácil modificarlos y manterlos actualizados.

No me queda el todo claro la información que deseas mostrar despues de realizar la "acción". Si pudieras detallar un poco y/o mostrar un ejemplo te lo agradeceriamos muchisimo.

Saludillos.
  #5 (permalink)  
Antiguo 07/12/2007, 13:49
Avatar de sumolari  
Fecha de Ingreso: mayo-2006
Ubicación: localhost
Mensajes: 1.367
Antigüedad: 17 años, 11 meses
Puntos: 18
Re: Estructurar página php

Cita:
Iniciado por yazo Ver Mensaje
Y como podría hacer para que el mensaje de "El registro 1 ha sido insertado correctamente" me aparezca en un cuadrado en la página de listados, es decir, que después de insertar, modificar o eliminar un registro vaya al listado de registros y salga un mensaje que indique "El registro 1 ha sido insertado correctamente".
Al crear el registro, editarlo o modificarlo volverás a la página por el método "archivo.php?action=loquesea" o "archivo.php". Lo que tienes que hacer es que envíe un segundo valor: "archivo.php?action=loqeusea&status=editok" o "archivo.php?status=editok". Basta con que metas otra condición en el bloque del listado, de forma parecida a esto:
Código PHP:
<?php
switch ($_GET['action']){
case 
'edit':
// Código de editar y de volver a archivo.php?status=editok si ha funcionado bien y ha archivo.php?status=editfalse si algo ha fallado
break;
default:
// Código para las listas
     
switch ($_GET['status']) {
     case 
'editok':
     echo 
'Se ha editado correctamente';
     break;
     case 
'editfalse':
     echo 
'Ha habido un error al editar';
     break;
     case 
'insertok':
     echo 
'Se ha insertado correctamente';
     break;
     default:
     break;
     }
break;
}
?>
  #6 (permalink)  
Antiguo 07/12/2007, 15:53
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años
Puntos: 3
Re: Estructurar página php

Voy a explicar un poco mejor lo que estoy intentando hacer, que antes no me he explicado muy bien:

Primero lo de dividir en varios archivos la información lo decía porque hay varios formularios y partes del código que son largos, pero claro también hay que decir que tengo muchas que hacen cometidos parecidos, y por tanto necesitaría crear muchisimas subpáginas, lo cual casi lo descartamos, porque sino sería un lio.

Lo segundo es que cuando inserto, modifico, elimino un registro, primero tendría el formulario de edición de datos y después vendría lo que en si el código mysql, donde inserto, modifico,... los datos del formulario en la bbdd, la intención era que esa página de inserción de datos a la bbdd sólo los insertara, y después automaticamente se redirigiese a la página del listado, mostrando en esta el mensaje de ok o de error, es decir, quedaría de la siguiente manera:
1. pagina.php?accion=alta (página con el formulario de inserción de datos, de aquí pulsando el boton de formulario pasaríamos a la 2)
2. pagina.php?accion=insertar (página con las sentencias mysql que inserta los datos en la bbdd, en esta me gustaría que no mostrase ningún mensaje y se redirigiese a 3)
3. pagina.php (página donde se muestra el listado de registros, junto con el mensaje de ok o error)

Espero que así se entienda mejor, gracias por vuestras respuestas.
  #7 (permalink)  
Antiguo 07/12/2007, 16:25
Avatar de sumolari  
Fecha de Ingreso: mayo-2006
Ubicación: localhost
Mensajes: 1.367
Antigüedad: 17 años, 11 meses
Puntos: 18
Re: Estructurar página php

No es tan complicado:

En la página de inserción paso 1 (action=alta) tendrías el formulario, con el valor action del formulario puesto para que te llevase a ?action=insertar.
Ahí tendrías el código de inserción y al final de ese codig un header Location para que te redirija, de la siguiente forma:
Código PHP:
<?php
//código para insertar
header ("Location: pagina.php?status=insertok");
//en caso de que falle tienes que especificarle que te lleve a ?status=insertfalse
?>
Y en la página de listado lo que ya he puesto arriba.
Con Header Location rediriges la página hacia otra, si lo pones al final de archivo te llevará después de ejecutar todo lo anterior
  #8 (permalink)  
Antiguo 09/12/2007, 13:07
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años
Puntos: 3
Re: Estructurar página php

Hola sumolari,

La opción que me has puesto en el mensaje es la primera que probé yo, pero se queda bloqueado y no se redirige, se queda en la sección de insertar a la bbdd pero sin mostrar nada.

¿Alguna idea mas?

Muchas Gracias
  #9 (permalink)  
Antiguo 09/12/2007, 14:07
Avatar de sumolari  
Fecha de Ingreso: mayo-2006
Ubicación: localhost
Mensajes: 1.367
Antigüedad: 17 años, 11 meses
Puntos: 18
Re: Estructurar página php

Cita:
Iniciado por yazo Ver Mensaje
Hola sumolari,

La opción que me has puesto en el mensaje es la primera que probé yo, pero se queda bloqueado y no se redirige, se queda en la sección de insertar a la bbdd pero sin mostrar nada.

¿Alguna idea mas?

Muchas Gracias
Tienes que poner el header location al final, sino no redirige.

Puedes poner todo el código php antes de este html:
Código HTML:
<html>
<head>
<meta http-equiv="refresh" content="0, pagina.php">
</head>
<body>
</body>
</html> 
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:27.