Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Recuperar un unico registro de un usuario que tiene varios

Estas en el tema de Recuperar un unico registro de un usuario que tiene varios en el foro de Mysql en Foros del Web. Hola a todos: Tengo una bd que recoge los usuarios registrados en la tabla correspondiente “usuarios”. El usuario que entra mediante usuario y contraseña puede ...
  #1 (permalink)  
Antiguo 03/07/2012, 06:14
 
Fecha de Ingreso: febrero-2012
Mensajes: 27
Antigüedad: 12 años, 2 meses
Puntos: 1
Recuperar un unico registro de un usuario que tiene varios

Hola a todos:
Tengo una bd que recoge los usuarios registrados en la tabla correspondiente “usuarios”.
El usuario que entra mediante usuario y contraseña puede disponer de una opcion que le permite consutar una bd de titulos de libros por ejemplo, que el mismo ha subido, ahora bien cuando el usuario pretende recuperar un titulo de la bd salen todos los titulos que tiene el usuario, entre ellos el elegido, pero lo que pretendo es que solo salga unicamente el elegido por ejemplo: Romeo y Julieta y no que si tiene 10 titulos en la bd salgan los 10 ya que esto confunde ademas a posteriores acciones por ejemplo un resumen asociado al titulo.

Ejemplo de la tabla llamada “libros” en la que cada usuario registra los libros que tiene de esta manera:

id usuario titulo
1 4 A
2 4 B
3 2 C
4 4 D
5 2 B

Supongamos que yo soy el usuario 4 (hasta ahi todo bien la bd lo sabe y me deja paso al logearme).

Con el fin de obtener unicamente el titulo A elegido tengo un form en el que escribo A, a traves de action pasa a un php y hago un select.

SELECT * FROM `libros` WHERE usuario='$usuario' ORDER BY id DESC

$titulo = "{$row['titulo']}";
echo "$titulo";

La respuesta de mysql para usuario 4 es mostrar el titulo A, B y D, ( al usuario 2 mostraria C y D) y yo solo quiero que me muestre el A.

He probado con SELECT titulo, quitando ORDER BY id DESC y con varias sintaxis y nada o sea que mediante un SELECT simple no se obtiene ese unico registro,he buscado por un monton de sitios y nada ¿Alguien sabe hacia donde me tengo que encaminar para conseguirlo? Empiezo a dudar que con un simple select lo consiga.

Gracias
  #2 (permalink)  
Antiguo 03/07/2012, 07:04
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Recuperar un unico registro de un usuario que tiene varios

Para obtener el "A" debes pedir el "A"

SELECT * FROM `libros` WHERE titulo="A"

SELECT * FROM `libros` WHERE id=1

puedes agregar AND usuario='$usuario' pero no sirve de nada si solo hay un libro qcon ese titulo o id....

tu query puede servir para restringir las opciones del usuario....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 03/07/2012, 11:51
 
Fecha de Ingreso: febrero-2012
Mensajes: 27
Antigüedad: 12 años, 2 meses
Puntos: 1
Respuesta: Recuperar un unico registro de un usuario que tiene varios

Gracias por responder pero ya lo he conseguido. Se trataba mas de la forma de hacer la peticion que de la sentencia mysql.
Lo que he hecho a sido meter un combobox en el formulario en el que se despligan los titulos y aplicar php en la pagina del form para que el php al que se dirige el action lo recoga mediante opc. la cosa quedaria asi (espero que no me hechen la bronca los moderadores).

Código PHP:
Ver original
  1. $opt = $_POST['opt'];
  2.             if ($opt == "escoge") {
  3.                $id = $_POST["id"];
  4.                $result = mysql_query("SELECT titulo FROM `libros` WHERE id = '$id'");
  5.                $n = mysql_num_rows($result);
  6.                if (!$n) die();
  7.                $row = mysql_fetch_array($result);
  8.                $titulo = $row['titulo'];

saludos

Etiquetas: php, registro, select, sql, tabla, usuarios, unicos
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 03:46.