Foros del Web » Programando para Internet » PHP »

Invertir el orden

Estas en el tema de Invertir el orden en el foro de PHP en Foros del Web. Hola a todos y gracias desde ya. Os pongo un código de paginación limitada de resultados recogidos de una base de datos sql. Lo que ...
  #1 (permalink)  
Antiguo 06/06/2007, 01:41
Avatar de sirguy  
Fecha de Ingreso: septiembre-2006
Ubicación: Mallorca
Mensajes: 959
Antigüedad: 17 años, 6 meses
Puntos: 12
Invertir el orden

Hola a todos y gracias desde ya. Os pongo un código de paginación limitada de resultados recogidos de una base de datos sql. Lo que me gustaría es que el orden sea del último al primero y no al revés. Sé que es un montón de código aunque supongo que será cosa de una línea, no sé. Este código me supera:

<?
include ("conn.php");
$link=Conectarse();

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>current news</TITLE>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<LINK href="css.css" type=text/css rel=stylesheet>
<META content="MSHTML 6.00.2800.1106" name=GENERATOR>
</HEAD>
<BODY bgColor=#ffffff leftMargin=0 topMargin=0 marginheight="0" marginwidth="0">

<form action='neo.php' method='get'>
<?

//inicializo el criterio y recibo cualquier cadena que se desee buscar

$criterio = "";
$txt_criterio = "";
if ($_GET["criterio"]!=""){
$txt_criterio = $_GET["criterio"];
$criterio = " where id like '%" . $txt_criterio . "%' or fecha like '%" . $txt_criterio . "%' or texto like '%" . $txt_criterio . "%'";
}


$sql="SELECT * FROM prueba ".$criterio;
//$res=mysql_query($sql);
$res=mysql_query($sql)or die(mysql_error());
$numeroRegistros=mysql_num_rows($res);
if($numeroRegistros<=0)
{
echo "<div align='center'>";
echo "<font face='verdana' size='-2'>No se encontraron resultados</font>";
echo "</div>";
}else{
//////////elementos para el orden
if(!isset($orden))
{
$orden="id";
}
//////////fin elementos de orden

//////////calculo de elementos necesarios para paginacion
//tamaño de la pagina
$tamPag=3;

//pagina actual si no esta definida y limites
if(!isset($_GET["pagina"]))
{
$pagina=1;
$inicio=1;
$final=$tamPag;
}else{
$pagina = $_GET["pagina"];
}
//calculo del limite inferior
$limitInf=($pagina-1)*$tamPag;

//calculo del numero de paginas
$numPags=ceil($numeroRegistros/$tamPag);
if(!isset($pagina))
{
$pagina=1;
$inicio=1;
$final=$tamPag;
}else{
$seccionActual=intval(($pagina-1)/$tamPag);
$inicio=($seccionActual*$tamPag)+1;

if($pagina<$numPags)
{
$final=$inicio+$tamPag-1;
}else{
$final=$numPags;
}

if ($final>$numPags){
$final=$numPags;
}
}

//////////fin de dicho calculo







//////////creacion de la consulta con limites
$sql="SELECT * FROM prueba ".$criterio." ORDER BY ".$orden.",id ASC LIMIT ".$limitInf.",".$tamPag;
$res=mysql_query($sql);

//////////fin consulta con limites


echo "<table align='center' width='310' border='0' cellspacing='1' cellpadding='0' class='featured-projects'>";

echo "<tr><td height='8'>&nbsp;</td></tr>";

echo "<tr valign='middle'><td height='20' valign='middle'>";

echo "<span class='negro'>Criteri de recerca:&nbsp;&nbsp;</span>";

echo "<input type='text' name='criterio' size='29' maxlength='150' style='border:1px solid #6889AE;font-family:tahoma,arial;font-size:10px;'> ";

echo "<input type='submit' class='input' value='Prova-hi'>";

echo "</td></tr>";
echo "<tr><td height='8'>&nbsp;</td></tr>";
while($registro=mysql_fetch_array($res))
{
?>
<script language="JavaScript">
function pasarVariables(URLconVariables) {
window.open(URLconVariables,"Foto","width=446, height=336, scrollbars=no, menubar=no, location=no, resizable=no") ;
}
</script>

<tr>
<td><? echo $registro["fecha"]; ?>.
<strong><? echo $registro["texto"]; ?></strong>
+
<a href="javascript:pasarVariables('recibe.php?var1=< ? echo $registro["fecha"]; ?>&var2=<? echo $registro["texto"]; ?>&var3=<? echo $registro["id"]; ?>')">Veure foto</a></td>

</tr>
<tr><td><br></td></tr>
<!-- fin tabla resultados -->
<?
}//fin while
echo "</table>";
}//fin if
//////////a partir de aqui viene la paginacion
?>
<br>
<table border="0" bordercolor="#3366FF" cellspacing="0" cellpadding="0" align="center" width="310">
<tr><td align="center" valign="top">
<?
if($pagina>1)
{
echo "<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina-1)."&orden=".$orden."&criterio=".$txt_criterio."'> ";
echo "<font face='verdana' size='-2'>anterior</font>";
echo "</a> ";
}

for($i=$inicio;$i<=$final;$i++)
{
if($i==$pagina)
{
echo "<font face='verdana' size='-2'><b>".$i."</b> </font>";
}else{
echo "<a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".$i."&orden=".$orden."&criterio=".$txt_ criterio."'>";
echo "<font face='verdana' size='-2'>".$i."</font></a> ";
}
}
if($pagina<$numPags)
{
echo " <a class='p' href='".$_SERVER["PHP_SELF"]."?pagina=".($pagina+1)."&orden=".$orden."&criteri o=".$txt_criterio."'>";
echo "<font face='verdana' size='-2'>siguiente</font></a>";
}
//////////fin de la paginacion
?>
</td></tr>
</table>
</form>
</BODY>
</HTML>
<?
mysql_close();
?>


GRACIAS
  #2 (permalink)  
Antiguo 06/06/2007, 01:55
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Re: Invertir el orden

Solo deberías de cambiar la consulta SQL:
$sql="SELECT * FROM prueba ".$criterio." ORDER BY ".$orden.",id ASC LIMIT ".$limitInf.",".$tamPag;

Por esta,
$sql="SELECT * FROM prueba ".$criterio." ORDER BY ".$orden.",id DESC LIMIT ".$limitInf.",".$tamPag;
  #3 (permalink)  
Antiguo 06/06/2007, 05:59
Avatar de sirguy  
Fecha de Ingreso: septiembre-2006
Ubicación: Mallorca
Mensajes: 959
Antigüedad: 17 años, 6 meses
Puntos: 12
Re: Invertir el orden

Gracias!!, que fácil era.
  #4 (permalink)  
Antiguo 06/06/2007, 06:07
Avatar de sirguy  
Fecha de Ingreso: septiembre-2006
Ubicación: Mallorca
Mensajes: 959
Antigüedad: 17 años, 6 meses
Puntos: 12
Re: Invertir el orden

Vaya!,lo acabo de probar y no ha funcionado. Será en otra línea, no sé.

Gracias de todas formas.
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 19:09.