Ayuda por favor urgente con este script. me estoy volviendo loco

  • Autor Autor luisdom
  • Fecha de inicio Fecha de inicio
L

luisdom

Épsilon
Hola a todos. Les agradecería mucho que me ayudaran con esto: Tengo el siguiente script que es para entradas (originalmente era de un directorio) pero le hice muchos cambios y ya me esta funcionando para que sirva para publicar datos de obras de teatro. Todo funciona ya ok, pero lo único que necesito es que las entradas que aparecen una vez publicadas, van en orden del más antiguo al principio y al final aparecen las más recientes y quiero que sea al revés. Estuve cambiando números y parte del codigo pero no lo consigo, incluso intente poniendo un codigo de reverse y tampoco... no se bien que debo de moverle en los $start o si es en el //outtputing , //pagination , get récords o listing part... y si debo de cambiar algo de + por - o al reves o en su defecto algo de 0 a 1 o -1 o algo así. intente varias cosas que supuse y otras que encontre en la web, pero no lo he logrado!!! alguien me echa por favor una mano? GRACIAS!!!!!
El codigo tal como funciona bien y sin los cambios que he intentado es:

...

//====================================
//This function will add one line to
//the end of file
//====================================
function add($str){
global $gbfile;
$tmp = trim($str);
$fp=fopen($gbfile,'a+');
flock($fp, LOCK_EX);
fwrite($fp, $tmp. "\n");
flock($fp, LOCK_UN);
fclose($fp);
}

//====================================
//Function below gets specified number
//of lines and returns an array
//====================================
function get($start, $end){
global $gbfile;
$records=array();
$filename="links.txt";
$fp=fopen($gbfile,'r');
flock($fp, LOCK_SH);
$i=1;
$tmp=TRUE;
while($i<$start && !feof($fp)) {
$tmp=fgets($fp);
$i++;
}
while($i<=$end && !feof($fp)) {
$tmp=trim(fgets($fp));
if ($tmp) { array_push($records, $tmp); }
$i++;
}

flock($fp, LOCK_UN);
fclose($fp);
return($records);
}



//Listing part

$start=$_GET['start'];
$end=$_GET['end'];

if (!$end || $start<=0) { $start=1; }
if (!$end) { $end=$linkspage; }
if ($end<$start) { $end=$start+1; }
$show=$end - $start;

//Get records from file into array
$records = get($start, $end);

//For each record get each field
foreach ($records as $rec) {
$tmp = explode($separator, $rec);
$titulo = $tmp[0];
$reparto = $tmp[1];
$sinopsis = $tmp[2];
$teatro = $tmp[3];
$direccion = $tmp[4];
$horarios = $tmp[5];
$nombre = $tmp[6];
$email = $tmp[7];
$ciudad = $tmp[8];

//=================================
//Outputting
?>
<div style="padding-left: 10">
<div style="FONT-SIZE:8pt; color:#000000; background-color: #FFD986; border: 1px solid #4277C1; width:910; height:95">
<b>T&iacute;tulo: <?=$titulo?></b><br>
Reparto: <?=$reparto?><br>
Sinopsis: <?=$sinopsis?><br>
Teatro: <?=$teatro?><br>
Dir: <?=$direccion?><br>
Horarios: <?=$horarios?><br>
Obra subida por <a href="mailto:<?=$email?>"><?=$nombre?></a> de <?=$ciudad?>
</div>
</div><br>
<?
}
//Pagination
if ($start>$show) {
$start-=$show;
$end-=$show;
$start--;
$end--;
print "<div style=\"padding-left: 10\"><a href=index.php?start=$start&end=$end><img src=../images/previous.jpg border=0></a>&nbsp;&nbsp;";
if (count($records)!=0) {
$start+=$show*2;
$end+=$show*2;
$start=$start+2;
$end=$end+2;
print "<a href=index.php?start=$start&end=$end><img src=../images/next.jpg border=0></a></div>";
$start--;
$end--;
}
else {
print "No hay más resultados";
}
}
else {
$start+=$show;
$end+=$show;
$start++;
$end++;
print "<div style=\"padding-left: 10\"><a href=index.php?start=$start&end=$end><img src=../images/next.jpg border=0></a></div>";
$start--;
$end--;
}

...
 
Hola! No manejo del todo php pero quiero aportar algo que vi, vos estas haciendo array_push($records, $tmp); que relacionandolo con un lenguaje mas universal estarías "empujando" los links en tu array records, es decir, recorres del primero al ultimo y los vas empujando, pones el primero y te queda primero, pones el segundo que empuja al primero y éste ya no es el primero, y así sucesivamente. Después recorres record para leer los links y sacar la info, pero lo lees de principio a final, por lo que lees el último link que pusiste como primero.

Ojo, yo manejo C++, mas o menos lo que entendí fue eso, hay más probabilidades de que este equivocado xD
 
Hola. gracias! segun yo eso que mencionas es del formulario en el que los usuarios haran su entrada.
Pero el orden en el que aparecen las publicaciones, no estoy seguro donde es... si fuera lo que dices que recomiendas mover? perdon pero no entendi mucho. Llevo horas. me estoy volviendo loco! 🙁

---------- Post agregado el 19-abr-2013 hora: 22:24 ----------

De algo me podra servir el: print_r(array_reverse($)); ????
Y que iria despues de $ ????
Alguien me puede ayudar?
 
Atrás
Arriba