Foros del Web » Programando para Internet » PHP »

Consultas MySQL

Estas en el tema de Consultas MySQL en el foro de PHP en Foros del Web. Ola a todos. Tengo un par de dudas sobre dos consultas con PHP a MySQL. La primera es que no se como se consulta de ...
  #1 (permalink)  
Antiguo 24/07/2005, 14:17
 
Fecha de Ingreso: mayo-2005
Mensajes: 23
Antigüedad: 12 años, 6 meses
Puntos: 0
Consultas MySQL

Ola a todos.

Tengo un par de dudas sobre dos consultas con PHP a MySQL.
La primera es que no se como se consulta de una tabla, una fila anterior y una fila siguiente de otra consulta en la que ya tenemos un dato y hemos seleccionado la fila que queda en medio. (no se si me explico bien)
La segunda es que no se como hacer una consulta de una tabla de la cual tiene que excluir una fila (por ejemplo la ultima fila) y que me muestre todas las demas filas menos esa...

Gracias de antemano. Creo que servirá de ayuda a muchos usuarios.
  #2 (permalink)  
Antiguo 25/07/2005, 04:35
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Con PHP solo mandas una sentencia SQL que es el lenguaje standar para la manipulación de BD, su funcionamiento es totalmente independiente (te aconsejo estudies). Así pués, el lugar indicado de esta consulta es el foro de BD... como comentario.

Las querys que necesitarías... supongo habrá diferentes formas y todo dependerá del tipo de datos... suponiendo son campos numéricos:

- Para consultar fila superior
Código:
SELECT * FROM tabla WHERE campo>valor LIMIT 0,1
- Fila inferior
Código:
SELECT * FROM tabla WHERE campo<valor LIMIT 0,1
- Excluir última fila
Código:
SELECT * FROM tabla WHERE campo_id < MAX(campo_id)
Donde "campo_id" sería la PRIMARY_KEY, un valor numérico y único.

Te aconsejo leas las FAQ (tanto de este foro como el de BD) y un tutorial... Para cuestiones de SQL recomiendo los artículos de www.mysql-hispano.org

Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 27/07/2005, 17:35
 
Fecha de Ingreso: mayo-2005
Mensajes: 23
Antigüedad: 12 años, 6 meses
Puntos: 0
gracias

Muchas gracias por tu ayuda, pero los campos son de texto y no veo la manera de consultarlo. Yo hago las consultas asi de sencillas, pero no tengo ni idea de como se hace con campos de texto.


Espero tu ayuda. Será gratamente agradecida.
  #4 (permalink)  
Antiguo 28/07/2005, 00:04
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Ayudate de un campo numérico.... para eso "se iventó" el ID; tienen correspondencia.

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 29/07/2005, 17:30
 
Fecha de Ingreso: mayo-2005
Mensajes: 23
Antigüedad: 12 años, 6 meses
Puntos: 0
...

Pues no debe de ser asi por que cuando pongo lo de id<MAX(id) me da un error en la consulta. Este es el código:

Código:
$sql2="select * from noticias where id<MAX(id) order by id desc limit ".$inicio.",".$_pagi_cuantos;
$result=mysql_query($sql2,$link);
  #6 (permalink)  
Antiguo 29/07/2005, 18:16
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
... pero y qué error te da??
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #7 (permalink)  
Antiguo 29/07/2005, 19:20
 
Fecha de Ingreso: mayo-2005
Mensajes: 23
Antigüedad: 12 años, 6 meses
Puntos: 0
...

Ni la otra consulta para seleccionar la fila anterior tampoco...

El error es: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in (...) on line (X)

Última edición por temetotoelwebo; 29/07/2005 a las 19:26
  #8 (permalink)  
Antiguo 29/07/2005, 19:58
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 12 años, 9 meses
Puntos: 17
para ver que error te da, al momento de hacer la consulta, es conveniente hacer lo siguiente

Código PHP:
$result=mysql_query($sql2,$link) or die(mysql_error()); 
y si tira error te dice cual
  #9 (permalink)  
Antiguo 07/08/2005, 09:13
 
Fecha de Ingreso: mayo-2005
Mensajes: 23
Antigüedad: 12 años, 6 meses
Puntos: 0
...

Yo lo único que necesito es que con una consulta me saque el id siguiente, falte alguno o no. ¿entendeis? Lo que intento es hacer unos botones en una galeria de "<<Imagen anterior" y "Imagen siguiente>>"
a lo mejor lo podeis sacar vosotros de otra forma...

Esto no me funciona:
Código PHP:
$sql=mysql_query("select id from tabla where id<".$row['id']." and galeria=".$galeria." LIMIT 0,1"); 
donde $row['id'] es el id actual en el que se encuentra...


Miles de gracias por vuestras ayudas.
  #10 (permalink)  
Antiguo 07/08/2005, 15:14
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 14 años, 1 mes
Puntos: 45
Pues esta bien escrito, quizas no te funciona porque la funcion mysql_query necesita un segundo parametro, que define su conexión con la bdd.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #11 (permalink)  
Antiguo 07/08/2005, 17:26
 
Fecha de Ingreso: mayo-2005
Mensajes: 23
Antigüedad: 12 años, 6 meses
Puntos: 0
...

Me imagino que te refieres a $link que es la conexión... pues eso no debe de ser por que lo tengo asi:


Código PHP:
$sql=mysql_query("select id from tabla where id<".$row['id']." and galeria=".$galeria." LIMIT 0,1");
$row1=mysql_fetch_array($sql,$link); 

Me resulta rarisimo por que el resultado que da con esa consulta es siempre la ultima id...

Os agradezco vuestra ayuda.

Última edición por temetotoelwebo; 07/08/2005 a las 17:35
  #12 (permalink)  
Antiguo 07/08/2005, 18:44
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
.. el $link NO va en mysql_fetch_XXXX() sino en mysql_query().. me sorprende que no te dé error...

Pués mira... de manera amplia:
Código PHP:
<?php
// conectas y demás
// vemos si recibes un parámetro
if(empty($_GET['id'])) $cond=1// sino empiezas desde el inicio
else $cond"id>=".$_GET['id']; // Si existe partes de ahí

// Consultas
$consultamysql_query("SELECT * FROM tabla WHERE $cond LIMIT 0,1");
// Muestras 
$rowmysql_fetch_assoc($consulta);
echo 
"Contenido: ".$row['contenido']."<br>"// solo ilustrativo

// Empezamos a hacer los enlaces

if($cond!=1) { // Para ahorrar la consulta
// Buscamos la id anterior
    
$prevmysql_query("SELECT id FROM tabla WHERE id<".$row['id']." ORDER BY id DESC LIMIT 0,1");
    if(
$rowPmysql_fetch_assoc($prev))
        echo 
"<a href=\"".$_SERVER['PHP_SELF']."?id=".$rowP['id']."\">Anterior</a>";
}

// buscamos la id siguiente
    
$nextmysql_query("SELECT id FROM tabla WHERE id>".$row['id']." LIMIT 0,1");
    if(
$rowNmysql_fetch_assoc($next))
        echo 
"<a href=\"".$_SERVER['PHP_SELF']."?id=".$rowN['id']."\">Siguiente</a>";
?>
... no es nada complicado... espero lo entiendas adaptes y, de ser posible, lo mejores (sí que se puede)... haznolo saber.

Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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 00:57.