Foros del Web » Programando para Internet » PHP »

Como paginar despues de 1000 caracteres????????

Estas en el tema de Como paginar despues de 1000 caracteres???????? en el foro de PHP en Foros del Web. Hola que tal amigos, Bueno miren si se fijan www.terra.cl tiene en cada articulo paginado osea el mismo articulo con dos, tres o mas paginas ...
  #1 (permalink)  
Antiguo 17/12/2002, 16:20
Avatar de CHILENOCES  
Fecha de Ingreso: octubre-2001
Ubicación: Mmm paseando por la vida
Mensajes: 491
Antigüedad: 22 años, 5 meses
Puntos: 0
Como paginar despues de 1000 caracteres????????

Hola que tal amigos,
Bueno miren si se fijan www.terra.cl tiene en cada articulo paginado osea el mismo articulo con dos, tres o mas paginas a lo que voy yo si tengo en una tabla el campo ARTICULO y ahi ingreso un articulo de 3000 caractes y lo muestro en una pagina.php?id=1 me muestra los 3000 caracteres de inmediato pero mi pregunta es:

Como hago para que esos 3000 caracteres se dividan en tres paginas con un link por ej pagina.php?id=1&pagina=1, pagina.php?id=1&pagina=2, pagina.php?id=1&pagina=3 en la 1 los primeros mil en la dos los segundos mil y en la tres los terceros mil.

No se si me explico bien ojala me entiendan saludos,
y es urgente por favor ayudenme.
Saludos,
Feliz Navidad y Prospero Año Nuevo
__________________
ChilenoCesar Looking for something new...
  #2 (permalink)  
Antiguo 17/12/2002, 16:30
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 2 meses
Puntos: 17
Puedes lograrlo usando substr()

Creas una variable que se llame $pagina, por ejemplo y la pones a 1 por defecto:

if (!isset($pagina)){$pagina=1;}

Luego creas la variable que indica la posicion inicial:
$inicio = $pagina*3000-1;

Luego, cuando toque, usas substr() para coger lo que necesites.

substr($row[campo], $inicio, 3000);

Luego haces los botones Siguiente y Anterior.

$prev = $pagina-1;
$prev = $next+1;

Para saber si ya has acabado, cuenta cuantas páginas necesitas:

$total = ceil(srtlen($row[campo])/3000);

Creo que esto debería funcionar.
__________________
M a l d i t o F r i k i

Última edición por Cain; 17/12/2002 a las 16:32
  #3 (permalink)  
Antiguo 17/12/2002, 16:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Bueno .. lo que tal vez tu no te des cuenta es como ese portal internametne se gestiona los articulos ..

Podria ser q tuviese una estructura tipo X paginas (vien sean fijas como el caso de tutoriales que tienen una pagina de presentacion, desarrollo y conclusiones o alguna mas ... o dinamicas que se crearian a la hora de ingresar los datos).

Las páginas corresponderian a un campo de tu tabla "articulos" .. pag1, pag2, pag3 .. etc.

Si quieres hacerlo partiendo de un unico campo de tu base de datos .. deberias usar funciones como:

substr() .. en la que tienes el caractar de comienzo y el de fin .. así podiras simular un paginado al estilo LIMIT de Mysql ...

Pero, esto, es solo un "filtro" .. en el que tienes q Obtener el total del articulo para luego paginarlo o mejor dicho presentar solo el rango de caracteres q necesites .. (acuerdate de unset() la variable temporal q uses para lleer el articulo entero lo mas pronto posible).

Un saludo,
  #4 (permalink)  
Antiguo 17/12/2002, 16:36
Avatar de CHILENOCES  
Fecha de Ingreso: octubre-2001
Ubicación: Mmm paseando por la vida
Mensajes: 491
Antigüedad: 22 años, 5 meses
Puntos: 0
Hola que tal,

Agradezco la rapidez y miren http://www.casinformatico.com/inform...how.php?id=108 ese es un articulo comun en mi sitio ahora ese articulo como lo divido en dos o cuantas partes quiera y con link siguiente pagina - anterior pagina .

miren la estructura de la tabla :

CREATE TABLE art_informatica (
id int(11) NOT NULL auto_increment,
titulo varchar(100) NOT NULL default '',
articulo longtext NOT NULL,
autor varchar(50) NOT NULL default 'ChilenoCesar',
email varchar(200) NOT NULL default '[email protected]',
web varchar(255) NOT NULL default 'http://www.casinformatico.com',
mostrar enum('0','1') NOT NULL default '0',
imagen varchar(200) NOT NULL default '/gif/temas/noticias.gif',
alt_imagen varchar(200) NOT NULL default '',
breve_texto longtext NOT NULL,
catid varchar(25) NOT NULL default '',
subcat int(11) NOT NULL default '0',
sub_cat int(11) NOT NULL default '0',
PRIMARY KEY (id)
) TYPE=MyISAM COMMENT='Las notas del web van aquí !!!';


por si les sirve de algo

Saludos y espero pronto me ayuden.
__________________
ChilenoCesar Looking for something new...
  #5 (permalink)  
Antiguo 17/12/2002, 16:58
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Chilenoces ...

La idea general te la ha dado Cain ... sientate .. empieza hacer algo de código y con algo hecho por ti preguntas las dudas concretas que tenga ..

Será mas facil ayudarte .. sino da la impresion q quieres que se te haga el código a la carta ... Y así NUnca aprenderas.

Un saludo,
  #6 (permalink)  
Antiguo 17/12/2002, 17:12
Avatar de CHILENOCES  
Fecha de Ingreso: octubre-2001
Ubicación: Mmm paseando por la vida
Mensajes: 491
Antigüedad: 22 años, 5 meses
Puntos: 0
Oki doki entendido y a trabajar Thanks...

Saludos
__________________
ChilenoCesar Looking for something new...
  #7 (permalink)  
Antiguo 18/12/2002, 14:50
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,

Mi recomendacion es un pelin distinta. Porque si te guias por numero de caracteres/palabras/lineas, puede que te salgan paginaciones "raras" (una pagina que acabe en medio de una palabra/linea/parrafo).

Yo te recomiendo que edites el texto del codigo e insertes una marca de salto de pagina (como el Word). Esa marca debe ser un texto que tenga nulas posibilidades de aparecer dentro del texto del articulo (ej, '<esta_es_mi_marca_de_salto_de_pagina>'). Luego usas la funcion explode() para coger las "paginas" y la muestras. Asi tu paginacion quedara muy natural, ya que la has hecho a mano. Es cierto que es mas trabajo porque la debes hacer a mano, pero yo creo que el resultado merece la pena. Ademas, no creo que tengas que hacerlo con 100 articulos al dia.

Espero haber sido de ayuda.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #8 (permalink)  
Antiguo 18/12/2002, 14:55
Avatar de CHILENOCES  
Fecha de Ingreso: octubre-2001
Ubicación: Mmm paseando por la vida
Mensajes: 491
Antigüedad: 22 años, 5 meses
Puntos: 0
voy a intentarlo de los modos el que resulte bien primero se queda :D
Gracias.
__________________
ChilenoCesar Looking for something new...
  #9 (permalink)  
Antiguo 18/12/2002, 15:02
Avatar de CHILENOCES  
Fecha de Ingreso: octubre-2001
Ubicación: Mmm paseando por la vida
Mensajes: 491
Antigüedad: 22 años, 5 meses
Puntos: 0
Me surge una pregunta :

"Que pasa si a la tabla de Articulos le coloco uno o dos campos mas como articulo1 y 2 y luego en la pagina donde muestra el articulo compruebe si el campo 1 y 2 estan con contenido y los muestre o eso no se puede???"

Saludos.
__________________
ChilenoCesar Looking for something new...
  #10 (permalink)  
Antiguo 18/12/2002, 15:43
Avatar de CHILENOCES  
Fecha de Ingreso: octubre-2001
Ubicación: Mmm paseando por la vida
Mensajes: 491
Antigüedad: 22 años, 5 meses
Puntos: 0
Hola que tal,
Hasta el momento todo bien con el primer codigo estoy modificandolo bastante pero va bien y me da un error :

Fatal Error
//Para saber si ya has acabado, cuenta cuantas páginas necesitas:
$total = ceil(srtlen ($row[articulo])/1000);

Dice que srtlen no existe ??
__________________
ChilenoCesar Looking for something new...
  #11 (permalink)  
Antiguo 18/12/2002, 15:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
mm Nada?

Es decir .. tu haces tu consulta SQL para obtener los tres campos que corresponderian a tus X paginas de ese Artículo ...

Puedes hacer sentencias SQL usando NOT NULL o algo (o un simple campo_pag_x='' .. para deteminar si tiene algo de texto o no y en consecuencia mostar en tu "paginador" cuantas paginas tiene el artículo.

La opción de Josemi con esa <marca> me gustó .. lo malo es que esa marca quien la pone? el redactor al escribir el artículo? .. algun script q recorra ese texto y decida algo así como 3000 + siguente salto de linea (o parrafo) ..? ...

A mi personalmente me gustá la opcion de paginar usando campos de una base de datos .. con eso puedes hasta hacer estadisticas de acceso (contadores) a las páginas individuales de un mismo artículo (por si te gusta ver como funciona tu sitio y q se hace en el .. xD)


Un saludo,
  #12 (permalink)  
Antiguo 18/12/2002, 15:59
Avatar de CHILENOCES  
Fecha de Ingreso: octubre-2001
Ubicación: Mmm paseando por la vida
Mensajes: 491
Antigüedad: 22 años, 5 meses
Puntos: 0
<?php

$conn = mysql_connect("localhost","usuario","contraseña");
mysql_select_db("nombre_DB");


$a = mysql_query("SELECT * FROM tabla WHERE .....");
while($row=mysql_fetch_array($a)){

//Creas una variable que se llame $pagina, por ejemplo y la pones a 1 por defecto:
if (!isset($pagina)){$pagina=1;}

//Luego creas la variable que indica la posicion inicial:
$inicio = $pagina*980;

//Luego, cuando toque, usas substr() para coger lo que necesites.
$contenido = substr($row[articulo], $inicio, 980);

echo "<font face=\"Tahoma\" size=\"2\" color=\"#000000\">$contenido</font>";

echo "<BR><BR>";

//Luego haces los botones Siguiente y Anterior.
$anterior = $pagina-1;
$siguiente = $pagina+1;

echo "<a href=\"pruebita.php?id=$row[id]&pagina=$anterior\"><font face=\"Tahoma\" size=\"2\" color=\"#000000\"><B>Anterior</B></font></a>";
echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
echo "<a href=\"pruebita.php?id=$row[id]&pagina=$siguiente\"><font face=\"Tahoma\" size=\"2\" color=\"#000000\"><B>Siguiente</B></font></a>";


}
mysql_close($conn);

?>


Eso lo hace perfecto el paginado pero claro pasa eso de que corta los parrafos y etc. ahora no se si podrian poner un ejemplo de Explode para ver un poco su funcionamiento con algo parecido a lo que necesito entender un poco la funcion...

Saludos
__________________
ChilenoCesar Looking for something new...
  #13 (permalink)  
Antiguo 18/12/2002, 16:03
Avatar de AngelRoyo  
Fecha de Ingreso: marzo-2002
Ubicación: Santiago de Chile
Mensajes: 207
Antigüedad: 22 años
Puntos: 5
Chilenoces podrias quitar esa firma tan Cabezona.... Esta muy grande tio.

Otra cosa:
if ($firma== true) {

Eso es así.
if ($firma) {

$firma ya es boleana.

Saludos.
No instalar ie6.0 mata el kernel del 98.
__________________
Hacerlo Bien Haciendo el Bien.
Jaso ezazu agur bero bat.
(c) 2002. Made in Chile.
Mi sistema es:
Win(98);Apache(1.3.x);PHP(4.1.1);mySQL(3.23.x)
!Califica este POSTEO¡
  #14 (permalink)  
Antiguo 18/12/2002, 16:09
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 2 meses
Puntos: 17
oops!

Cuando dije srtlen(), me referia a strlen()

Viene de string length.
__________________
M a l d i t o F r i k i
  #15 (permalink)  
Antiguo 19/12/2002, 04:11
 
Fecha de Ingreso: septiembre-2001
Ubicación: Monterrey
Mensajes: 663
Antigüedad: 22 años, 5 meses
Puntos: 6
Hmmm... Generalmente no participo de este tipo de temas, ya que puede haber mas de una solucion ha esto y tambien por que la descomposiocion de un problema para fines de analisis depende mucho del juicion de cada persona y de condiciones propias de lo que queremos resolver. por lo tanto no hay una representacion "Correcta" de un problema o en otras palabras como lo dije anteriormente no hay una solucion unica, prueba de ello son todos los comentarios que hay en este mensaje.

A hora lo diferente hoy, es que la verdad no tenia sueño me meti ha este mensaje vi los comentarios alrededor de el, lo pense un rato y a mi jucio con el debido respeto de los demas las soluciones propuestas yo las tomaria como una solucion express para salvar el momento, mientras restructuras tu aplicacion de forma completa. Esto lo digo en primera por que tarde o temprano todo sistema evoluciona con el tiempo debido a nuevas condiciones que exigen nuevas caracteristicas para un mejor desempeño. Segundo por que creo que el problema se origino cuando estabas en tu etapa de analisis en la cual pasaste por alto lo que ahora te esta dando problemas.

Generalmente una solucion ha algo es una representacion del mundo real en terminos de un lenguaje de programacion, en este caso un sistema que almacena articulos o noticias, como ejemplo podemos hacer analogia con una revista que fuera de la portada y contra portada esta compouesta por secciones y cada seccion tiene uno o mas articulos que su vez contienen texto e imagenes que ocupan un cierto numero de paginas.
A hora haciendo una abstraccion express de esto yo puedo tener un modelo conceptual de la siguiente forma
(Se pierde calidad por que tuve que reducir la imagen)
  #16 (permalink)  
Antiguo 19/12/2002, 04:29
 
Fecha de Ingreso: septiembre-2001
Ubicación: Monterrey
Mensajes: 663
Antigüedad: 22 años, 5 meses
Puntos: 6
como se puede observar en el digrama una revista esta compuesta de mas de una seccion con mas de un articulo que contiene mas de unapagina de contenido, a su vez vemos que un autor puede publicar mas de un articulo en mas de una seccion. a hora en nuestro caso actual se creo solo una tabla llamada art_informatica que como podemos ver en el analisis pudo ser descompuesta en dos, con lo cual puedes recuperar de tu base de datos cada pagina con un simple LIMIT, sin complicaciones.
es decir nos quedaria un esquema logico algo asi:
Código PHP:
CREATE TABLE Articulo(

   
A_Id INT(11UNSIGNED NOT NULL AUTO_INCREMENT,
   
S_Id INT(11UNSIGNED,
   
U_Id INT(11UNSIGNED,
   
A_nombre VARCHAR(100),
   
A_desc VARCHAR(255),
   
A_img VARCHAR(50),
   
PRIMARY KEY (A_Id)
        
  );
  
  
CREATE TABLE Pagina(

   
P_Id INT(11UNSIGNED NOT NULL AUTO_INCREMENT,
   
A_Id INT(11UNSIGNED,
   
A_Cont TEXT,
   
PRIMARY KEY (P_Id)
        
  ); 
Omito las demas tablas por que eso ya lo debes de tener creado de alguna u otra forma.
A hora lo recomendable es que partas la tabla, pero claro esto solo tomalo como referencia si analisamos mas a fondo podemos hacer un modelo mejorado y mas completo.. Con esto lo que quiero ilustrar es que tomando un poco de tiempo y usandolo a conciencia para analisar bien nuestro problema podemos preparar una aplicacion que estara preparada para funcionar adecuadamente y mas robusta de tal forma que si hay que hacer un cambio este sea lo mas minimo posible.

Otro detalle a tomar en cuenta con esto es que tendrias que crear un script que controle el numero de caracteres por pagiana para que de esta forma si el autor se pasa del limite el sistema le pida hacer una nueva pagina.

Otra cosa mas que no esta detallada en el esquema es el caso en el que se requiera editar un articulo hay tendrias que hacer analisis adicional.

Esto es lo que haria. tomar una solucion momentanea, analisar bien mi problema y restructurar mi codigo adecuandolo a las nuevas necesidades pero ya con una base mas solida.

Este analisis si le sirve ha alguien tomenlo como una referencia minima nada mas, ya que esto es solo mi juicio personal. y no tome en cuenta varias cosas por que los limites que puse para el ejemplo son los que considere minimos.

Y si no le sirve a nadie pues agradeceria que algun moderador llegue en mi rescate borrando esto....

Última edición por Herminio Heredia San; 19/12/2002 a las 04:44
  #17 (permalink)  
Antiguo 19/12/2002, 08:47
Avatar de AngelRoyo  
Fecha de Ingreso: marzo-2002
Ubicación: Santiago de Chile
Mensajes: 207
Antigüedad: 22 años
Puntos: 5
Append

Hola herminio.
Buen punto, podrias hacer un Tuto pa entender la imagen :D jajaja.

Quisiera hacer un aporte ya que ahi un buen modelamiento, quitar el campo imagen en las tablas y crear una nueva Tabla llamada IMAGEN (N <-> N) así relacionarla con las otras tablas. Con ello tendriamos una Tabla sólo de imagenes lo cual es útil para no sobre cargar otra tabla con el mismo contenido.

Buen modelo eso de separar por tabla, autor, pagina, secciónes, revistas.

Si tienes una URL Sobre el tema de la imagen Herminio bien agradecido estare de tí. Y mejor si pones la URL en el "Arte del Desarrollo Web".


Aqui se vio como antes de meter codigo havia que hacer el 80% restante.

Saludos.
PD: Podrias agregar un workflow, así además de redactores tienes un editor que controla la publicación.
__________________
Hacerlo Bien Haciendo el Bien.
Jaso ezazu agur bero bat.
(c) 2002. Made in Chile.
Mi sistema es:
Win(98);Apache(1.3.x);PHP(4.1.1);mySQL(3.23.x)
!Califica este POSTEO¡

Última edición por AngelRoyo; 19/12/2002 a las 08:58
  #18 (permalink)  
Antiguo 19/12/2002, 13:47
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Bonito diagrama entidad-relacion. Si, es otra opcion valida, tener las "paginas" en distintos registros. Tiene el problema de como "controlar" la creacion de las "paginas". Tendria que hacerse a mano, como en mi opcion. Realmente seria mas rapido, ya que solo lees la pagina a mostrar, no todo el articulo. Ademas de la tarea de la funcion de partir el articulo.

Pero yo sigo defendiendo mi opcion. Asi que pongo aqui un poco de codigo y luego lo comento.
Código PHP:
<?php
$articulo
="primera pagina<marca_salto_pagina />segunda pagina<marca_salto_pagina>";
$articulo.="titulo Tercera</marca_salto_pagina>tercera pagina<marca_salto_pagina>";
$articulo.="titulo cuarta</marca_salto_pagina>cuarta pagina";
$paginas=preg_split("'(<marca_salto_pagina />|<marca_salto_pagina>.*?</marca_salto_pagina>)'",$articulo);
echo 
"primera:<br>".$paginas[0]."<br>";
echo 
"tercera:<br>".$paginas[2]."<br>";
echo 
"segunda:<br>".$paginas[1]."<br>";
echo 
"cuarta:<br>".$paginas[3]."<br>";
preg_match_all("'<marca_salto_pagina />|<marca_salto_pagina>(.*?)</marca_salto_pagina>'",$articulo,$titulos,PREG_SET_ORDER);
echo 
'<pre>';
print_r($titulos);
echo 
'</pre>';
// en $titulos[x][1] esta el titulo. Si no se especifico, ese indice no existe.
// Se puede comprobar con isset() o array_key_exists().
// en este ejemplo, $titulos[0] tiene los valores para la segunda pagina.
// Razon: no hay etiqueta antes de la primera pagina. Si se pone, en $paginas habria
// un elemento mas (aunque quizas con el flag PREG_SPLIT_NO_EMPTY de preg_split()
// se puede correguir).
?>
En este codigo modifico un poco la idea que explique antes. Ademas de tener una marca de salto de pagina "normal" (<marca_salto_pagina />), tengo una avanzada que permite poner el titulo a la siguiente pagina(<marca_salto_pagina>titulo pagina</marca_salto_pagina>). ¿Que utilidad puede tener? Pues para poner un texto al link a la siguiente pagina o cargar un combo con la lista de titulos y usarlo como link a las paginas (como el combo de foros). Es cierto que esto mismo lo puedes hacer con el sistema de tablas.

Supongo que os habreis fijado en la nomenclatura que uso, XML. Mi idea principal es que se podria usar mi formato como entrada a un script que genere los registros de las tablas o bien directamente. O tambien como formato de salida de la BD a fichero.

Luego tambien he pensado sobre que podria cambiar la marca, para que en vez de marcar los saltos de pagina, marcara el comienzo de la pagina. Seria un cambio sencillo.

Los inconvenientes que tiene es que hay que marcar "manualmente" las paginas, y que puede ser un pelin mas lento, debido a las regexp.

Pero sigo opinando que puede ser una buena opcion. Posiblemente ya tengas que editar los articulos que te vienen para adaptarlos a tus hojas de estilos, asi que meter las marcas no deberia ser muy complicado.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #19 (permalink)  
Antiguo 20/12/2002, 05:04
 
Fecha de Ingreso: septiembre-2001
Ubicación: Monterrey
Mensajes: 663
Antigüedad: 22 años, 5 meses
Puntos: 6
Hola AngelRoyo, lo de la imagen es un modelo de datos E/R (Entidad-Relacion) que es comunmente usado en el diseño de base de datos y esta muy documentada claro que lo que yo use es el minimo ya que actualmente hay nuevas ampliaciones que se han aceptado y las cuales desconosco. Pero igual se pudo haber llegado al mismo resultado usando un modelo orientado a objetos como OMT-2 o UML .
Puedes leer sobre el modelo E/R en libros de diseño de base de datos a un que ya agregue una liga como me lo pediste en el mensaje "Arte del desarrollo Web".
Lo que comentas de agregar una entidad imagenes es buena idea de hecho esto es lo bueno de usar modelos nos permiten trabajar en el hasta dejarlo lo mas cerca posible de la realidad que estamos queriendo modelar, sin necesidad de meter codigo antes.
Agrego aqui la liga del documento original del modelo de datos que use por si quieres jugar un rato con el. Este fue creado con una herremienta que uso en linux que se llama DIA. es un digramador modesto pero sirve para el trabajo diario.
Archivo original del modelo:
http://cualcan.cmact.com:8080/ejemplo/revista
Dia para linux:
http://www.lysator.liu.se/~alla/dia/
Dia para windows:
http://dia-installer.sourceforge.net/

Josemi, la razon por la que use el diagrama E/R fue por que creo que el problema radica en la forma en la que se almacena la informacion y no en como se trata esa informacion antes de almacenarse.

Y lo que comentas con tu codigo para mi entra dentro de la implementacion yo solo hice un analisis breve de como deberia estar organizada esa informacion. todavia habria que hacer un modelo funcional y dinamico para ver otros aspectos.
ahora lo que tu propones como solucion para mi representa una parte de ella ya que yo lo usaria de otra forma, por ejemplo para controlar la creacion de esas paginas como comentas de tal forma que cuando una persona mande la informacion una parte del script revise esa informacion buscando las marcas que propones para dividirla y posteriormente almacenarla como yo lo sugeri en el modelo E/R.

Y como lo dije anteriormente es solo mi opinio particular, ya cada quien implementara lo que mas se acerque a resolver el problema.
  #20 (permalink)  
Antiguo 20/12/2002, 16:44
 
Fecha de Ingreso: septiembre-2001
Ubicación: Monterrey
Mensajes: 663
Antigüedad: 22 años, 5 meses
Puntos: 6
?????... ya no hay mas retroalimentacion?? , se estaba poniendo interesante este hilo del tema.. a lo mejor con la propuesta de Josemi, AngelRoyo y demas participantes del tema terminabamos dejando una buena base para tomar com referencia ne la creacion de sistemas de noticias o de revistas electronicas, si seguiamos con el hilo de la conversacion...
  #21 (permalink)  
Antiguo 20/12/2002, 17:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Está bueno el tema Herminio .. pero parece q a pasado lo de siempre ...

Hay dos ideas confrontadas o conceptos .. el tuyo y el de josemi .. Cada uno de Ud's ya ha puesto sus puntos de vista y parece ser q se aferan a su propia teoria ..

Si se optara por un modelo de datos Unico, tal vez se animaria mas gente a iniciar el proyecto .. ademas Hermino que ya sabes que lamentablemente mucha gente (ni mucho menos quiero meter a todo en mundo en el mismo saco) .. solo buscan "código" y no así de participar en discursiones "teoricas" sobre el modelo de datos en este caso de un sistema de publicaciones.

Por mi parte no he participado mucho (nada) en este mensaje .. el UML y demas ténicas no es mi punto fuerte pero les agradezco a todos estas iniciativas pues se aprende y se le abren los ojos a uno .. He de ahí por ejemplo q estoy intentando por mis medios que la idea de josemi de hacer un foro sobre "ingeneria de sofware y gestion de proyectos" llegue a buen fin.

Un saludo,
  #22 (permalink)  
Antiguo 20/12/2002, 18:06
Avatar de CHILENOCES  
Fecha de Ingreso: octubre-2001
Ubicación: Mmm paseando por la vida
Mensajes: 491
Antigüedad: 22 años, 5 meses
Puntos: 0
Pues desde mi punto de visto Hermidio tienes una buena planteacion frente al punto entablado ahora concretando un poco tu idea seria la de hacer no sistema si no pensar como completar algo que muchas veces lo tomamos como una solucion ligera y luego nos damos cuenta que nos trae mas problemas que antes.?

Por mi parte...
Saludos.
__________________
ChilenoCesar Looking for something new...
  #23 (permalink)  
Antiguo 21/12/2002, 09:25
 
Fecha de Ingreso: septiembre-2001
Ubicación: Monterrey
Mensajes: 663
Antigüedad: 22 años, 5 meses
Puntos: 6
Bueno primero que nada realmente no estoy en contra de la idea de josemi lo unico que intentaba recalcar es que yo estaba abordando el tema desde el punto de vista del almacenamiento de la informacion por decirlo de alguna manera, y josemi en como usar esa informacion que lo dije en mi mensaje anterior para mi es parte de una etapa de implementacion yo solo trataba la parte que dice que va hacer l aplicacion no como.
Pero tambien es valido su punto de vista y de hecho tiene utilidad como lo dije en mi mensaje anterior.

A hora otro detalle es que bien dices cluster, hay usuarios asiduos a los foros que buscan solamente pedasos de codigo o soluciones en caliente que a veces puede no ser realmente lo qu enecesitaba a un cuando al parecer el problema haya sido resuelto, y mucho tiene que ver tal vez a que en muchas ocasiones no llegamos a topicos como este donde como suele suceder llegamos a ideas encontradas pero eso es bueno si no hay retroalimentacion no se puede llegar tambien en muchas ocasiones a una solucion correcta.

A hora bien Chilenoces, la forma de enfrentar un situacion como la tuya o mas diria de evitarla o por lo menos reducir dramaticamente las cosecuencias posteriores es usando planeacion, y algun metodo que te permita hacer un estudio completo de lo que quieres hacer, por que en muchas ocasiones abordamos un problema sin ver bien los detalles, los cuales saltan o cuando estamos ya escribiendo codigo o bien como en tu caso que ya esta trabajando la aplicacion.
A hora que metodologia usar pues no hay una que sea la panacea de hecho hay metodogias y modelos de desarrollo como no tienes idea pero lo importante no es ir corriendo y ver si puedes con todas mas bien es aprender una bien y sacarle el mejor provecho que puedas.
Como comienzo hay un topico que esta abierto a inicio de este foro que se llama "Bases para el arte del desarroyo", que es una iniciativa de poner a la mano links que hablen sobre el tema.

A hora bien respecto a tu problema lo que puedes hacer es usar la idea de josemi o usar la mia o ambas a un que a mi punto de vista yo usaria ambas.
1.- Crear un script que me separe en bloques mediante marcaciones como lo sugiere Josemi.
2.- crear la rutina de pagina mediante ese metodo.
3.- Rediseñar el esquema de tu base de datos puedes usar como base el que ya puse, como algo adicional puedes solo partir la tabla de los articulo tal vez sea solo lo que necesites.
4.- reprogramar tu aplicacion para los cambio generados en tu base de datos y con el paginado usando LIMIT.
5.- el mismo script que hiciste en el paso 1. Modificalo a hora para que lea tu base de datos actual pero que separe cada articulo por segmento mediante el marcado y que lo almacene en la tabla "Pagina" con sus correpondiente relaciones a la tabla "Articulo"
6.- Hechar a volar tu nueva aplicacion en produccion.

Esto representa un buen de trabajo pero a veces es asi, y creo que todos hemos pasado por hay alguna vez o al menos a mi me toco en mis inicios tener que reescribir codigo por no planear bien.
  #24 (permalink)  
Antiguo 21/12/2002, 09:45
Avatar de AngelRoyo  
Fecha de Ingreso: marzo-2002
Ubicación: Santiago de Chile
Mensajes: 207
Antigüedad: 22 años
Puntos: 5
Hola...
Bueno Herminio no he posteado antes pues por que ando "exitado" :-0.
Me tiene ansioso esto del XP (es una forma de trabajar). Y lo del UML (que es una forma de desarrollar) que esta excelente para realizar cosas sin codigo.
Yo quiero definir bien un aplicación y hacerla sin necesidad de que este programa. Luego sentarme y hacer en PHP que es lenguaje que domino, pero ya teniendo claro lo: "que" y el "como" se va desarrollar.

Para futuros posteos lo hare de tal forma que sea independiente del lenguaje.

También necesito un soft más o menos decente para poder hacer diagramas de uso y de clases. Tengo un posteo de ello en el FORO "Soft para UML".
Y seguro posteare sobre estos temas y espero me des una mano. :)

Saludos.
__________________
Hacerlo Bien Haciendo el Bien.
Jaso ezazu agur bero bat.
(c) 2002. Made in Chile.
Mi sistema es:
Win(98);Apache(1.3.x);PHP(4.1.1);mySQL(3.23.x)
!Califica este POSTEO¡
  #25 (permalink)  
Antiguo 21/12/2002, 15:02
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,

Siento tener que estar en desacuerdo con Cluster. Herminio y yo no tenemos ideas enfrentadas. Es mas, yo defiendo que compartimos la misma idea. La idea que defendemos a muerte es que UN ARTICULO ESTA COMPUESTO POR 1 O VARIAS PAGINAS. El ha sido mas detallista (un buen ER) y ha elegido la opcion de implementarlo con una BD. Yo he preparado menos material y he juntado analisis con implementacion. Y he implementado una solucion "a medida". Pero mi idea era mas acabar usando XML para representar un articulo. Usando el ER de Herminio, un esbozo de un articulo en XML:
<articulo id="1">
<nombre> articulo 1</nombre>
<descripcion>descripcion del articulo 1</descripcion>
<imagen>articulo1.gif</imagen>
<pagina>
<titulo>titulo pagina 1</titulo>
<contenido>pagina 1</contenido>
</pagina>
<pagina>
<titulo>titulo pagina 2</titulo>
<contenido>pagina 2</contenido>
</pagina>
</articulo>
Por supuesto, esto deberia ser mas complejo. Pero creo que representa tan bien como una BD el ER de Herminio. Y sobre la implementacion, habria que aprender a utilizar las funciones de manejo de XML. Pero con la BD tambien hay que usar funciones (mas comunes, eso si).

Mi solucion anterior era un paso intermedio.

Lo mas importante de todo es el flujo positivo de ideas que hay en este mensaje. De un post mas o menos "inocente" hemos llegado a un diseño mas estable. Lo que hay que aclarar es que no hay que seguir ciegamente ninguna de las soluciones. A veces las mejores soluciones son las soluciones "hibridas", mezclando lo mejor de cada solucion. Por ejemplo, si usas para escribir los articulos un editor que soporta salida XML, puedes despues un script que carge el XML en la BD.

Espero que siga habiendo tan buena "retroalimentacion" (que mal me suena esa palabra).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #26 (permalink)  
Antiguo 22/12/2002, 13:14
Avatar de CHILENOCES  
Fecha de Ingreso: octubre-2001
Ubicación: Mmm paseando por la vida
Mensajes: 491
Antigüedad: 22 años, 5 meses
Puntos: 0
Una duda para ver que pasa

Doy un ejemplo tengo en la tabla :

- Articulo
- Articulo1
- Articulo2
- Etc.

Como puedo hacer para comprobar si el articulo 1 o 2 o el que sea tienen contenido me explico si en la tabla pusieramos unos cuatro campos se podria hacer algo asi como una paginacion de una manera mas facil.

No se si me entienden ?

Saludos.
  #27 (permalink)  
Antiguo 22/12/2002, 15:13
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,

Supongo que tendras otra tabla con las paginas de los articulos. Solo tienes que leer de esa tabla las paginas de un articulo para saber cuantas paginas tiene.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 04:50.