Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: LogMare en 25 Junio 2008, 02:46 am



Título: pagina De registros Duda
Publicado por: LogMare en 25 Junio 2008, 02:46 am
Hola

El siguiente codigo que voy a mostrar tiene un problema de orden. lo que hace es crear un registro de la pagina, es decir, cuando yo le agrego cualquier cosa a la base de datos este, me lo interpreta en una pagina php, pero me lo va haciendo de este modo.

Al agregar por primera ves supongamos dracula este me lo coloca en 1er lugar asi

1 = dracula

Luego cuando agrego por ejemplo hola a la base de datos este, en lugar de agregarmelo  en el lugar primero lo que hace es agregarmelo en 2do lugar de este modo

1 = dracula
2 = hola

lo que quiero es lo contrario que cuando yo vaya agregando informacion este codigo me lo vaya poniendo en primer lugar, y la demas informacion se valla para abajo.

Este es el codigo

Código:
<?php
include ("conexion.php");

######Configuración#######
                         #
$paginas = 3;            #
$tabla = "registros";    #
                         #
##########################

$actual = (!isset ($pg))?1:$pg;
$sql = mysql_query ("SELECT * FROM ".$tabla."");
$total = mysql_num_rows ($sql);
if ($actual == 1) {
$desde = "0";
}
elseif ($actual != 1) {
$desde = $actual * $paginas - $paginas;
}
$tp = ($total / $paginas);
if (strstr($tp,'.')){
$tp = explode (".",$tp);
$tp = ($tp[0]+1);
}
$resp = mysql_query ("SELECT * FROM ".$tabla." ORDER BY id LIMIT ".$desde.",".$paginas."");

while ($row = mysql_fetch_array ($resp)) {

//Aqui parte la parte de modificación

echo "Registro: ".$row["nombre"]."<br>";

//Aqui termina xD

}
$pag = ($tp == 1) ? página : páginas;
$reg = ($total == 1) ? registro : registros;
?>
<br>Encontrados <b><?=$total?></b> <?=$reg?> en <b><?=$tp?></b> <?=$pag?><br>
<?php
$anterior = true;
$siguiente = true;
if (($actual == 1) AND ($actual == $tp)) {
$anterior = false;
$siguiente = false;
}
elseif ($actual == $tp) {
$anterior = true;
$siguiente = false;
}
elseif ($actual == 1) {
$anterior = false;
$siguiente = true;
}
if ($anterior) {
echo "<a href=\"pagina.php?pg=".($actual-1)."\">&lt; Página anterior</a> | ";
}
else {
echo "|";
}
for ($i = 1; $i <= $tp;$i++) {
if ($i == $actual) {
echo " <b>".$i."</b> | ";
}
else {
echo "<a href=\"pagina.php?pg=".$i."\"> ".$i."</a> |";
}
}
if ($siguiente) {
echo " <a href=\"pagina.php?pg=".($actual+1)."\"> Página siguiente &gt;</a>";
}
?>

Espero me puedan echar una manita

salu2!!


Título: Re: pagina De registros Duda
Publicado por: Ertai en 25 Junio 2008, 12:32 pm
En tu SQL tienes un ORDER BY sin especificar si es ASC o DESC

Código
  1. $resp = mysql_query ("SELECT * FROM ".$tabla." ORDER BY id DESC LIMIT ".$desde.",".$paginas."");
  2.  

Pruebalo.


Título: Re: pagina De registros Duda
Publicado por: LogMare en 27 Junio 2008, 04:45 am
Hola

Muchas Gracia Por Resonder.

Si era lo que estaba intentando pero al parecer no me deja si tengo dos peticiones a mysql_query. Mira

en esta

Código:
$actual = (!isset ($pg))?1:$pg;
$sql = mysql_query ("SELECT * FROM ".$tabla."");
$total = mysql_num_rows ($sql);
if ($actual == 1) {

y en esta

Código:
$resp = mysql_query ("SELECT * FROM ".$tabla." ORDER BY id LIMIT ".$desde.",".$paginas."");

while ($row = mysql_fetch_array ($resp)) {

Ademas si cambio LIMIT por desc o asc me da error.

Segun yo es por las dos peticiones que hago pero no estoy seguro.

Espero me puedas ayudar

salu2!!! y gracias


Título: Re: pagina De registros Duda
Publicado por: LogMare en 27 Junio 2008, 05:03 am
Hola

Perdon Pero ya encontre mi error JaJa
No vi bien tu codigo era agregar DESC LIMIT juntos JJe

mucuhas Gracias!!

salu2!!