Páginas automáticas

Kr4n3oK

Hola estoy creando un sistema de categorías, el sistema iría así:

Administrador web > Zona administrador > Crea categoría > Se almacena en BD con una id

Posteriormente sacaría las categorías y sub-categorías si procediese, pero, como puedo hacer que por cada categoría que se cree, se cree una página nueva con el nombre de la categoría y con todos los estilos css y todo lo que tienen el resto?¿

Espero que puedan ayudarme gracias.

Soltrac

http://www.tizag.com/phpT/filecreate.php
http://www.tizag.com/phpT/filewrite.php

JuAn4k4

Y no sería más sencillo mostrar la misma página (php o lo que sea) pero con distintos datos (categoría) y aparentar que sean páginas "distintas" cuando en realidad lo que cambia es el contenido y no la visualización.

.../admin/categorias.php?categoryId=13144
.../categorias/view.php?categoryId=13144

Y si no te gustan las url , utiliza las friendly urls.

en lugar de

../admin/categorias.php -> create ../categorias/curiosidades.php

../admin/categorias.php?categoryId=13144
../categorias/curiosidades.php

Kr4n3oK

Ya, es cierto que sería mas fácil, pero no como empezar para hacer eso xdd

yoseman

No tenemos suficientes datos para aconsejarte...

Si lo que estás desarrollando es una panel de administración, cada módulo tendrá un código totalmente distinto, con lo cual, lo que es la página general, está dividida como poco en dos partes, una con el menu para navegar por las distintas secciones del panel de administración y otra con lo que es la sección actual.

Entonces tu problema se resuelve de forma muy sencilla con enlaces que contenga en la query string(lo que pasas por get en la url) el nombre del modulo a cargar, y con un index general que recoge esa variable pasada por get, y la usa para hacer un include del módulo a cargar.

De esta forma tendrás un script que se llame index.php

<?php
// codigo anterior con el menu.
if(file_exists($_GET['modulo'].".php"))
@include($_GET['modulo'].".php")
?>

Si pones en el menu enlaces de tipo index.php?modulo=categorias

El código que he puesto cargaría un script llamado categorias.php dónde proceda

Basándonos en esto que hemos dicho, que probablemente lo estarás ya usando en tu menu, podemos hacer lo siguiente:

Cuando estemos en el script de categorias, ingéniatelas para pasar también por query string el id de la categoria con enlaces de tipo index.php?modulo=categorias&cat=455, no te puedo decir mucho más porque tampoco sé muy bien lo que pretendes, parto del supuesto de que es una simple página con un contenido dinámico que se ha de recoger de la base de datos.

El index, cargará categorías.php

Y en categorías.php tu ya tienes un script que tendrá su hoja de estilos propia, pero cuyo contenido dinámico, o sea el que recoges de la base de datos, pues se inserta atancado a db.

No se si me explico, ojalá me entiendas, pero esto que comento es muy sencillo...

Sería algo asi como

//codigo previo general
//luego lanzamos query sql para partes que depende del id de una categoria y que han de ser recogidas de db
$consulta=mysql_query("SELECT * FROM 'categorias' WHERE 'categorias_id'=".$_GET['cat']);

Eso ya dentro de categorias.php que a su vez ha sido cargado por index.php y al que has pasado por get el 'id'.

Un saludo.

2 respuestas
yoseman

Y te lo comento partiendo de la idea de que tenemos muy pocos datos de lo que estás haciendo, pero si es un simple administrador de categorias y/o subcategorias, crear un fichero por cada categoria cuando ya lo tienes en la base de datos es innecesario y redundante.

De lo que se trata es de insertar en la base de datos todos los contenidos que cambian(qué se yo id de la categoria, descripción, título y todo lo que proceda), crear un script que tenga lo general y pasar por url los datos relativos a la categoria a cargar, es decir su id, con el fin de lanzar una consulta a la db que obtenga los datos dinámicos, o sea los que dependen del id, y que tienes ya en db.

Es que sino, te vas a ver con un porrón de ficheros, y los datos ya los tienes en la base de datos, o sea que no hacen falta, no sé si me explico...

Otra cosa es que por alguna razón, necesites que el script esté en el servidor, ahi ya no entro.

En ese caso, acuérdate de que la carpeta en la que vas a crear los archivos tiene que tener permisos de escritura, dichos permisos los puedes cambiar directamente desde FTP o usando php con chmod http://php.net/manual/es/function.chmod.php

Un saludo.

BLZKZ

es que si usas una pagina para cada categoria usar las bases de datos pierden su sentido xD

Es más facil como te han dicho, para que te hagas una idea es como crear una plantilla donde teniendo la ID de la categoría haces el select a la base de datos where id_categoria = $ID y ya tienes todo lo que necesitas para mostrar, sea de la categoria que sea

1 respuesta
Kr4n3oK

Exáctamente #7 eso me di cuenta, ya te digo que soy newbie, y estoy practicando con cosas, lo que dices #5 es exáctamente lo que quería, muchísimas gracias me ha servido totalmente :D, cuando termine los módulos que quiero hacer, subiré la web para que os pongáis a explotarla y así me comentéis bugs, ya sean de sql inyeccion o de lo que sea.
Gracias :D

Kr4n3oK

#5 Success, pues nada conseguido, ha sido tarea fácil la verdad, eh aquí el código php construido, este es el que envía, el que recibe ya os lo podéis imaginar :

<?php 
				include("includes/mod_conex.php");
				$list = mysql_query("select id,name from categorys");
				
			while ($row=mysql_fetch_array($list))
				{
					echo '<ul class="tmo_list">';
					echo '<li><a href="/htdocs/category/category.php?categoryid='.$row['id'].'">'.$row['name'].'</a></li>';
					echo '</ul>';
				}
				
				?>
Kr4n3oK

Pero ahora sin embargo pierdo las variables de session, porqué puede estar pasándome eso?
Es decir, no me mantiene la sesión abierta, que raro.

Vale, solucionado también xdd.

JuAn4k4

Puede que sea una tontería pero :

Cateogry
Categories

Que mal royo da el php no ? Nunca lo he tocado pero.. es así todo mezclado ? Me refiero a las capas que debería tener la app.

Te presento a MVC - Model View Controller, tu nuevo amigo.

Buscalo, indaga sobre ello, y aplicalo, te será muy util.

1 respuesta
Soltrac

#11 Existen frameworks, pero cuando la gente programa a pelo, q es como lo hace casi todo dios, salen cosas feísimas. Gente mezclando el código y la vista, etc.

Un puto caos.

1 respuesta
JuAn4k4

#12 Debe ser como los jsp de antaño, con sus conexiones a base de datos, que los he visto !

Usuarios habituales

  • JuAn4k4
  • Soltrac
  • Kr4n3oK
  • BLZKZ
  • yoseman