Foros del Web » Programando para Internet » PHP »

Duda con php y mysql

Estas en el tema de Duda con php y mysql en el foro de PHP en Foros del Web. Hola tengo la siguiente duda, tengo una base de datos con unos cuantos registros mi pregunta es yo puedo ir sacando sucesivamente el id de ...
  #1 (permalink)  
Antiguo 22/02/2012, 13:07
 
Fecha de Ingreso: noviembre-2011
Mensajes: 516
Antigüedad: 12 años, 5 meses
Puntos: 10
Duda con php y mysql

Hola
tengo la siguiente duda, tengo una base de datos con unos cuantos registros mi pregunta es yo puedo ir sacando sucesivamente el id de los registros del anterior y posterior registro que me esta mostrando?? es decir si tendo id 1,2,3 estoy mostrando 2, puedo tener una consulta de algun modo que saque el 1 y el 2??? lo necesito para pasar los registros pero aumentando el id directamente no me vale ya que si borro cualquier registro ya no me funcionaria. un saludo.
  #2 (permalink)  
Antiguo 22/02/2012, 13:14
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años
Puntos: 50
Respuesta: Duda con php y mysql

pues se me ocurre hacer 2 selects .. no se si entendibien...aunque si describe exactamente lo que quiere hacer yo creeria que hay forms mejores de hacerlo sin complicarse la vida

para encontrar el anterior registro a 3 si por ejemplo se borro el 2 seria
select max(id) from tabla where id <3;

para encontrar el siguiente registro a 3 si por ejemplo se borro el 4 seria
select min(id) from tabla where id >3;
  #3 (permalink)  
Antiguo 22/02/2012, 13:17
 
Fecha de Ingreso: noviembre-2011
Mensajes: 516
Antigüedad: 12 años, 5 meses
Puntos: 10
Respuesta: Duda con php y mysql

El problema es que no quiero modificar el php cada vez queborre un registro es decir quiero que me salgan dos enlaces de siguiente anterior y primer y ultimo pero no lo puedo hacer paginando es para una galeria de archivos pero no se como puedo hacer esto porque el registro lo muestra por id via get, entonces recogo este y muestro el articulo, como puedo hacer esto?? gracias.
  #4 (permalink)  
Antiguo 22/02/2012, 13:21
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años
Puntos: 50
Respuesta: Duda con php y mysql

La forma mas sencilla es la que le digo... hace esas dos consultas cada una le devuelve el id del registro anterior y el id del registro siguiente,,,, obviamente el 3 lo cambia por el id del registro actual.

Hay otras formas como por ejemplo consultar los id de los registros en un array y luego mirar el anterior y siguietne al actual... se ahorra las 2 consultas pero es un tris mas complejo de hacer.


Saludos,
  #5 (permalink)  
Antiguo 22/02/2012, 13:44
 
Fecha de Ingreso: febrero-2012
Mensajes: 37
Antigüedad: 12 años, 2 meses
Puntos: 5
Respuesta: Duda con php y mysql

En una consulta puede quedar como el siguiente, este código lo encontré en otro foro pero lo probé con unos registros que tengo y me funcionó muy bien

Código SQL:
Ver original
  1. SELECT
  2.     *
  3. FROM
  4.     TABLE
  5. WHERE
  6.     id = (SELECT MIN(id) FROM TABLE WHERE id > 1556)
  7.     OR id = (SELECT MAX(id) FROM TABLE WHERE id < 1556)

[URL="http://stackoverflow.com/questions/1084390/how-to-find-the-previous-and-next-record-using-a-single-query-in-mysql"]http://stackoverflow.com/questions/1084390/how-to-find-the-previous-and-next-record-using-a-single-query-in-mysql[/URL]

El id lo pasas como $id para que sea dinámico

En cakePHP puedes usar un find neighbors

Código PHP:
Ver original
  1. function some_function() {
  2.     $neighbors = $this->Article->find('neighbors', array('field' => 'id', 'value' => 3));
  3.     }

[URL="http://book.cakephp.org/1.3/view/1018/find#find-neighbors-1024"]http://book.cakephp.org/1.3/view/1018/find#find-neighbors-1024[/URL]

Saludos
  #6 (permalink)  
Antiguo 22/02/2012, 15:28
 
Fecha de Ingreso: noviembre-2011
Mensajes: 516
Antigüedad: 12 años, 5 meses
Puntos: 10
Respuesta: Duda con php y mysql

Cita:
Iniciado por helacer Ver Mensaje
pues se me ocurre hacer 2 selects .. no se si entendibien...aunque si describe exactamente lo que quiere hacer yo creeria que hay forms mejores de hacerlo sin complicarse la vida

para encontrar el anterior registro a 3 si por ejemplo se borro el 2 seria
select max(id) from tabla where id <3;

para encontrar el siguiente registro a 3 si por ejemplo se borro el 4 seria
select min(id) from tabla where id >3;
No entiendo como va este select max(id) ai dentro lo deberia dejar igual tengo que poner el maximo id que puede ser?? y en el 3 es el id en el que estoy no es asi???? esque no entiendo ni este ni lo que a puesto el otro compañero, haber si me podeis explicar un poco como va los dos x favor??? un saludo gracias.
  #7 (permalink)  
Antiguo 22/02/2012, 15:49
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años
Puntos: 50
Respuesta: Duda con php y mysql

Código PHP:
// obtengo el id de la notiica actual
$id $_GET['id'];
// Obtengo el id de la noticia anterior
$a mysql_query("select max(id) from tabla where id <".$id);
$ida mysql_result($a,0,id);
mysql_frees_result($a);
// Obtengo el id de la noticia siguietne
$b mysql_query("select min(id) from tabla where id >".$id);
$idb mysql_result($b,0,id);
mysql_free_result($b);
// coloco los links 
echo "<a href=vernoticia.php?id=".$ida.">Anterior</a>";
echo 
"<a href=vernoticia.php?id=".$idb.">Siguiente</a>"
  #8 (permalink)  
Antiguo 23/02/2012, 04:52
 
Fecha de Ingreso: noviembre-2011
Mensajes: 516
Antigüedad: 12 años, 5 meses
Puntos: 10
Respuesta: Duda con php y mysql

Como pongo el $conexion??? lo tengo en un include y quiero yamarlo en la consulta normalmente asi
mysql_query("select * from tabla", $conexion);
como lo hago en esta???
tambien me salen estos errores:
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\proyecto\9\Nueva carpeta\index.php on line 7

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\proyecto\9\Nueva carpeta\index.php on line 8

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\proyecto\9\Nueva carpeta\index.php on line 11

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\proyecto\9\Nueva carpeta\index.php on line 12
este es mi cofigo
[php]
<?php
include('config.php');
// obtengo el id de la notiica actual
$id = "1";
// Obtengo el id de la noticia anterior
$a = mysql_query("select max(id) from tabla where id < $id",$conexion);
$ida = mysql_result($a,0,id);
mysql_free_result($a);
// Obtengo el id de la noticia siguietne
$b = mysql_query("select min(id) from tabla where id > $id",$conexion);
$idb = mysql_result($b,0,id);
mysql_free_result($b);
// coloco los links
echo "<a href=vernoticia.php?id=".$ida.">Anterior</a>";
echo "<a href=vernoticia.php?id=".$idb.">Siguiente</a>";

?>
[php]

Última edición por edie8; 23/02/2012 a las 05:28
  #9 (permalink)  
Antiguo 23/02/2012, 09:57
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años
Puntos: 50
Respuesta: Duda con php y mysql

si tiene bien hecha la coenxion y se coencta solo a una bd.. no es necesario que lo llame.. dejelo como mi ejemplo... si no le funciona el problema esta en su funcion de conexion...suerte
  #10 (permalink)  
Antiguo 23/02/2012, 13:41
 
Fecha de Ingreso: noviembre-2011
Mensajes: 516
Antigüedad: 12 años, 5 meses
Puntos: 10
Respuesta: Duda con php y mysql

Esta es mi pagina de conexion en otras paginas me funciona como lo tengo que hacer para que funcione tu ejemplo?? no le tengo que añadir nada simplemente lo pongo arriba la conexion en vez de un include o como lo hago mira este es config.php
Código PHP:
<?php

$conexion
=mysql_connect("localhost","root","contrase") or die ("No se pudo conectar");
mysql_select_db("base",$conexion) or die ("imposible conectar");
?>
Por cierto que es el 0 de esta linea:$idb = mysql_result($b,0,id);
Como tengo que hacer que tu ejemplo me funcione con el include si esto es la conexion, me puedes ayudar?? gracias, un saludo.
  #11 (permalink)  
Antiguo 23/02/2012, 13:51
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años
Puntos: 50
Respuesta: Duda con php y mysql

sip en teoria es solo colocar laconexion arribita...obviamente revise la sintaxios de micodigo pero la idea es esa..... El 0 hace referencia al registro con índice 0 del array devuelto por la consulta mysql
  #12 (permalink)  
Antiguo 23/02/2012, 13:54
 
Fecha de Ingreso: noviembre-2011
Mensajes: 516
Antigüedad: 12 años, 5 meses
Puntos: 10
Respuesta: Duda con php y mysql

y el id al campo a sacar no es cierto???
  #13 (permalink)  
Antiguo 24/02/2012, 04:01
 
Fecha de Ingreso: noviembre-2011
Mensajes: 516
Antigüedad: 12 años, 5 meses
Puntos: 10
Respuesta: Duda con php y mysql

Ya consegui que funcionase muchas gracias, un saludo.

Última edición por edie8; 24/02/2012 a las 05:03
  #14 (permalink)  
Antiguo 26/02/2012, 04:42
 
Fecha de Ingreso: noviembre-2011
Mensajes: 516
Antigüedad: 12 años, 5 meses
Puntos: 10
Respuesta: Duda con php y mysql

Puedo hacer tambien sacar el el primer id de la base de datos y el ultimo segun el usuario??? es que tambien necesito el primer id y el ultimo y si estos son borrados muestre siempre los primeros nose si me explico, se puede hacer? si es asi me podeis dar una pista de como se hace?? gracias un saludo.
  #15 (permalink)  
Antiguo 26/02/2012, 14:34
 
Fecha de Ingreso: noviembre-2011
Mensajes: 516
Antigüedad: 12 años, 5 meses
Puntos: 10
Respuesta: Duda con php y mysql

No se me ocurre como sacar el id mas alto de todos y el mas bajo, alguien que quiera ayudar sabe de este tema?? gracias
  #16 (permalink)  
Antiguo 27/02/2012, 12:31
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años
Puntos: 50
Respuesta: Duda con php y mysql

seria lo mismo que lo anterior pero sin la condicion

Código PHP:
// Obtengo el id mayor de las noticias
$a mysql_query("select max(id) from tabla); 
el otro seria lo mismo pero con min... aunque creo que se sigue complicando la vida... pero bueno si quiere ese dato con esa consutla lo saca
  #17 (permalink)  
Antiguo 28/02/2012, 07:01
 
Fecha de Ingreso: noviembre-2011
Mensajes: 516
Antigüedad: 12 años, 5 meses
Puntos: 10
Respuesta: Duda con php y mysql

Gracias un saludo me sirvio mucho.

Etiquetas: mysql, registro
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:25.