Foros del Web » Programando para Internet » PHP »

:: Como paginas mis resultados en forma ascendente

Estas en el tema de :: Como paginas mis resultados en forma ascendente en el foro de PHP en Foros del Web. Hola a todos foros del web: tengo un dilema, lo que sucede es que tengo un sistema de comentarios y me funciona exelente, el único ...
  #1 (permalink)  
Antiguo 03/06/2004, 18:27
oecarlitoz
Invitado
 
Mensajes: n/a
Puntos:
:: Como paginas mis resultados en forma ascendente

Hola a todos foros del web: tengo un dilema, lo que sucede es que tengo un sistema de comentarios y me funciona exelente, el único detalle es que deseo que la paginacion sea de forma siguiente:

normalmente los comentarios se colocan de la siguiente manera:

comentario 1
-------------
comentario 2
-------------
comentario 3
------------

Quisiera que se formules de la siguiente manera:

comentario 3
------------
comentario 2
-------------
comentario 1
-------------

este es mi codigo:
Código PHP:
<?
//Entre las comillas definimos el archivo que guardara las opiniones
$file "opiniones.txt"

//Se tramita el formulario y se guardan los nuevos datos.
if(!empty($opinion))
{
$fichero fopen($file"a");
fwrite($fichero"$nombre////$opinion\n");
fclose($fichero);

}

//Se inicia el proceso de impresion de los datos
if(file_exists($file)&&is_file($file))
{
$fichero fopen($file"r");

//Se extraen todas las lineas.
while(!feof($fichero))
{
$cadena fgets($fichero4096);
list(
$nom$men)=split('////'$cadena);

//Se elimina la lectura de los \n \r
if(!empty($cadena)){
?>
          <tr bgcolor="#FFFFFF"> 
            <td><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Nombre:</b></font><font size="1" face="Arial, Helvetica, sans-serif"> 
              <?=$nom?>
              </font></td>
            <td><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Opini&oacute;n:<br>
              </b> </font><font size="1" face="Arial, Helvetica, sans-serif"> 
              <?=$men?>
              </font></td>
          </tr>
          <? }
}
//END WHILE
fclose($fichero);
}

?>
Espero me puedan ayudar lo antes posible.
  #2 (permalink)  
Antiguo 03/06/2004, 21:16
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 5 meses
Puntos: 1
si no das detalles del formato en el que almacenas esos comentarios es difícil ayudarte...

lo recomendable sería que pusieras esos comentarios en una base de datos con una fecha, luego los odenas facilmente por fecha en forma ascendente o descendente...

un saludo..
  #3 (permalink)  
Antiguo 03/06/2004, 21:39
oecarlitoz
Invitado
 
Mensajes: n/a
Puntos:
:: en el script esta la explicacion

Lo que necesito es que veas el script:
en Mysql la forma descendente es:

DESC

Pero en esta forma se escribe en un archivo TXT.

por favor si me puedes ayudar estaria muy agradecido
  #4 (permalink)  
Antiguo 04/06/2004, 06:35
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Con las funciones que usas .. abres el archivo y lo lees secuencialmente desde el principio al final ..

Si en lugar de presentar esos datos directamente .. los almacenas en un array (concretamente ese dato "$cadena" ) podras aplicar alguna función tipo array_reverse() para "darle la vuelta" a los elementos de ese array (tus "líneas de datos de ese txt") y presentarlo con otro tipo de bucle (por ejemplo un foreach() y aplicar tu list() como ya lo haces ..)

Ejemplo:

Código PHP:
$datos_tmp=array();
while(!feof($fichero)) { 
$cadena = fgets($fichero, 4096); 
  if(!empty($cadena)){ 
     // creación array .. 
    $datos_tmp[]=$cadena;
  } 
}//END WHILE 

// Le "damos la vuelta" al array generado ..
// Con la misma filosofia ("array") puedes palicar cualquier otro tipo de funciones .. por ejemplo para "desordenar" ese array (=presentar esos datos de forma "aleatoria") y cosas así por el estilo.
$datos=array_reverse($datos_tmp);

// Lectura de tu "lineas" del archivo ..
foreach ($datos as $cadena){
list($nom, $men)=split('////', $cadena); 
?>
          <tr bgcolor="#FFFFFF"> 
            <td><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Nombre:</b></font><font size="1" face="Arial, Helvetica, sans-serif"> 
              <?=$nom?> 
              </font></td> 
            <td><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Opini&oacute;n:<br> 
              </b> </font><font size="1" face="Arial, Helvetica, sans-serif"> 
              <?=$men?> 
              </font></td> 
          </tr> 
<?
// Cierre foreach()
?>
Llegado este punto ..sería bueno estudiar la función file() .. pues ella por si sola devuelve ya un array . .así evitas estar haciendo un proceso similar dos veces (leer el archivo para llevarlo a un array y luego volver a leer ese array para presentar el dato o aplicarle alguna función por médio como la de "dar la vuelta" ese array)

Un saludo,

Última edición por Cluster; 04/06/2004 a las 06:47
  #5 (permalink)  
Antiguo 04/06/2004, 13:19
oecarlitoz
Invitado
 
Mensajes: n/a
Puntos:
:: Hola cluster aqui te dejo mi codigo completo

Hola cluster, sabes he tratado de colocar la idea que me dices pero me da error no se si pùedes ver. aqui te dejo el codigo completo y el link para que lo puedas probar, como te daras cuenta los nuevos mensajes van quedanto en la ultima parte y yo quisieras que este en la parte superior.

El link donde lo puedes probar es este: www.cperu.net/a/articulo.php
Código PHP:
<HTML><BODY>
<FORM METHOD="Post" ACTION="<?=$PHP_SELF?>">
<div align="center"><B> <font size="3" face="Arial, Helvetica, sans-serif">Deja
tu marca:</font></B><font size="3" face="Arial, Helvetica, sans-serif"><br>
</font><font size="4" face="Arial, Helvetica, sans-serif"> </font> <b><font size="2" face="Arial, Helvetica, sans-serif">Nombre:
<INPUT NAME="nombre" TYPE="Text" id="nombre" SIZE=60 MAXLENGTH=60 style="font-size:10px;font-family:verdana;">
<br>
Mensaje:
<textarea name="opinion" cols="60" style="font-size:10px;font-family:verdana;"></textarea>
<br>
<INPUT TYPE="Submit" VALUE="Enviar Opinión">
</font></b></div>
</FORM>


</CENTER>
<div align="center">
  <TABLE WIDTH="48%" BORDER=0 ALIGN="Center" CELLPADDING=1 cellspacing="1" bgcolor="#006699">
    <TR> 
      <TD> <div align="center"><b><font color="#FFFFFF" size="2" face="Arial, Helvetica, sans-serif">MENSAJES 
          YA EXISTENTES</font></b></div></TD>
    </TR>
    <TR> 
      <TD bgcolor="#FFFFFF"> <table width="100%" border="0" cellpadding="1" cellspacing="1" bgcolor="#CCCCCC">
          <?
//Entre las comillas definimos el archivo que guardara las opiniones
$file "opiniones.txt"

//Se tramita el formulario y se guardan los nuevos datos.
if(!empty($opinion))
{
$fichero fopen($file"a");
fwrite($fichero"$nombre////$opinion\n");
fclose($fichero);

}

//Se inicia el proceso de impresion de los datos
if(file_exists($file)&&is_file($file))
{
$fichero fopen($file"r");

//Se extraen todas las lineas.
while(!feof($fichero))
{
$cadena fgets($fichero4096);
list(
$nom$men)=split('////'$cadena);

//Se elimina la lectura de los \n \r
if(!empty($cadena)){
?>
          <tr bgcolor="#FFFFFF"> 
            <td><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Nombre:</b></font><font size="1" face="Arial, Helvetica, sans-serif"> 
              <?=$nom?>
              </font></td>
            <td><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>Opini&oacute;n:<br>
              </b> </font><font size="1" face="Arial, Helvetica, sans-serif"> 
              <?=$men?>
              </font></td>
          </tr>
          <? }
}
//END WHILE
fclose($fichero);
}

?>
        </table></TD>
    </TR>
  </TABLE>
</div>
</BODY> </HTML>
espero que me puedas ayudar saludos
  #6 (permalink)  
Antiguo 04/06/2004, 13:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Bueno .. la idea es la que te he planteado.

Si comentí algún error de sintax o similar .. pon el mensaje de error que obtengas (e indica a que línea de código pertenece) para verlo ..

Un saludo,
  #7 (permalink)  
Antiguo 04/06/2004, 23:26
Avatar de Daniel Artes  
Fecha de Ingreso: julio-2003
Mensajes: 102
Antigüedad: 20 años, 9 meses
Puntos: 0
Usa base de datos sql y se te hara mucho mas facil y mas seguro.
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 11:43.