Foros del Web » Programando para Internet » PHP »

Ayuda!! Ayuda!!! Problema

Estas en el tema de Ayuda!! Ayuda!!! Problema en el foro de PHP en Foros del Web. HOLA A TODOS....PERO NECESITO AYUDA URGENTE YA QUE TENGO EL SIGUIENTE PROBLEMA: EN MI BASE DE DATOS EN MYSQL TENGO LOS SIGUIENTES REGISTRO: 1 = ...
  #1 (permalink)  
Antiguo 23/08/2004, 19:00
 
Fecha de Ingreso: agosto-2004
Mensajes: 35
Antigüedad: 19 años, 8 meses
Puntos: 0
Pregunta Ayuda!! Ayuda!!! Problema

HOLA A TODOS....PERO NECESITO AYUDA URGENTE YA QUE TENGO EL SIGUIENTE PROBLEMA:

EN MI BASE DE DATOS EN MYSQL TENGO LOS SIGUIENTES REGISTRO:
1 = A
2 = B
3 = C
4 = D
5 = E
PERO ELIMINO EL TERCER REGISTRO Y ME QUEDA MI TABLA ASI:
1 = A
2 = B
4 = D
5 = E

LO QUE SE ESTA TRATANDO DE HACER ES UN PANEL DE NAVEGACION DONDE AL DAR SIGUIENTE>> ME PERMITA VER CADA UNO DE MIS REGISTROS UNO POR UNO, TODA VA BIEN CUANDO EMPIEZA 1 = A , 2 = B PERO CUANDO QUIERO PASAR AL 4 = D NO ME MUESTRA NADA YA QUE EL 3 = C FUE BORRADO Y NO SE COMO HACERLE PARA QUE SE SALTE ESE REGISTRO Y ME MUESTRE EL 4 = D Y 5 = E.

ADJUNTO EL CODIGO PARA QUE LO PUEDAN VER...ESPERO QUE ALGUIEN ME PUEDA AYUDAR....


//PRIMER REGISTRO
if (isset($_GET['id'])){
if($_GET['accion']=="primer"){
cabecera();
$mod="SELECT MIN(ID) FROM $sql_tabla";
$resultado1=mysql_query($mod,$db_conexion);
while ( $row1 = mysql_fetch_array($resultado1)){
$ID=$row1["MIN(ID)"];
}
$result = @mysql_query ("SELECT ID,usuario,apellido,pass,nivel_acceso,direccion,te lefono,ciudad,estado FROM $sql_tabla WHERE ID LIKE '$ID'") or die("No se pudo realizar la consulta a la Base de datos");
while ($resultados = mysql_fetch_array($result)){
require("formulario.php");
}
mysql_free_result($result);
}


//ANTERIOR REGISTRO
if($_GET['accion']=="anterior")
cabecera();
$dato=$_GET['id'];
$ID= $dato-1;
$result = @mysql_query("SELECT ID,usuario,apellido,pass,nivel_acceso,direccion,te lefono,ciudad,estado FROM $sql_tabla WHERE ID LIKE '$ID'") or die("No se pudo realizar la consulta a la Base de datos");
if ($ID == $resultados[ID]){
echo "<script language='javascript'> alert('¡No hay mas registros,atras.!');</script>";
require ("formulario.php");
exit;
}
elseif ($resultados = mysql_fetch_array($result))
require("formulario.php");
}
mysql_free_result($result);
}


//SIGUIENTE REGISTRO
if($_GET['accion']=="siguiente"){
cabecera();
$dato=$_GET['id'];
if ($dato == "");{
$ID= $dato+1;
}
$ID= $dato+1;
$result = @mysql_query("SELECT ID,usuario,apellido,pass,nivel_acceso,direccion,te lefono,ciudad,estado FROM $sql_tabla WHERE ID LIKE '$ID'") or die("No se pudo realizar la consulta a la Base de datos");
if ($ID == $resultados[ID]){
echo "<script language='javascript'> alert('¡No hay mas registros,adelante.!');</script>";
require ("formulario.php");
exit;
}
elseif ($resultados = mysql_fetch_array($result)){
require("formulario.php");
}
mysql_free_result($result);
}


//ULTIMO REGISTRO
if($_GET['accion']=="ultimo"){
cabecera();
$mod="SELECT MAX(ID) FROM $sql_tabla";
$resultado1=mysql_query($mod,$db_conexion);
while ( $row1 = mysql_fetch_array($resultado1)){
$ID=$row1["MAX(ID)"];
}
$result = @mysql_query ("SELECT ID,usuario,apellido,pass,nivel_acceso,direccion,te lefono,ciudad,estado FROM $sql_tabla WHERE ID LIKE '$ID'") or die("No se pudo realizar la consulta a la Base de datos");
while ($resultados = mysql_fetch_array($result)){
require("formulario.php");
}
mysql_free_result($result);
}
}

SALUDOS....

Última edición por myriam_ad; 23/08/2004 a las 19:04
  #2 (permalink)  
Antiguo 23/08/2004, 20:01
Avatar de sir_notos  
Fecha de Ingreso: noviembre-2001
Ubicación: Mexicali
Mensajes: 709
Antigüedad: 22 años, 4 meses
Puntos: 1
trata con el paginaitor de jpinedo o con mi clase http://electros.net/?scripts&c=19&s=241
__________________
Usuario Registrado de linux #374849
  #3 (permalink)  
Antiguo 24/08/2004, 03:41
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,

Otras soluciones:

- añadir a tu tabla un campo 'posicion' que modificas cuando elimines un registro

UPDATE tabla SET posicion=posicion-1 WHERE posicion>$posicion_registro_eliminado

o

- no calcules el ID a leer con $dato-1 (anterior) o $dato+1 (siguiente), lee el primer registro menor (mayor) de $dato ordenados de mayor (menor) a menor (mayor) (entre parentesis es la logica para siguiente)

SELECT * FROM tabla WHERE ID<$dato ORDER BY ID DESC (para anterior)
SELECT * FROM tabla WHERE ID>$dato ORDER BY ID ASC (para siguiente)

Puede añadir un LIMIT, ya que solo vas a leer el primero. Y con estas consultas tambien puedes saber si hay otros anteriores o posteriores a este, ya que si es el ultimo solo devuelve un registro (si usas LIMIT, puedes poner LIMIT 2 para poder seguir comprobando esto).

Saludos.

PD: Esto es lo bueno de la programacion: preguna a 10 programadores y obtendras 15 respuestas diferentes totalmente validas
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #4 (permalink)  
Antiguo 24/08/2004, 10:38
 
Fecha de Ingreso: agosto-2004
Mensajes: 35
Antigüedad: 19 años, 8 meses
Puntos: 0
Gracias

Hola Josemi, voy a tratar como dices y espero que resulte porque ya llevamos varios dias tratando de corregir el error y te comentare cuales fueron los resultados....Saludos
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 01:19.