Foros del Web » Programando para Internet » PHP »

Consulta en base de datos especifica

Estas en el tema de Consulta en base de datos especifica en el foro de PHP en Foros del Web. Buenos dias, estoy empezando con el php y estoy un poco verde. Necesito hacer una consulta en mi base de datos siempre especifica a un ...
  #1 (permalink)  
Antiguo 28/09/2012, 04:48
plm
 
Fecha de Ingreso: marzo-2011
Mensajes: 3
Antigüedad: 13 años, 1 mes
Puntos: 0
Consulta en base de datos especifica

Buenos dias, estoy empezando con el php y estoy un poco verde. Necesito hacer una consulta en mi base de datos siempre especifica a un cliente y a una columna.
Especifico un poco para que me entendais. Tengo este tabla:

ID ---- PVP

Antonio ----- 35€
Juan ----- 20€
Sergio ----- 15€
Antonio ----- 50€

El ultimo valor de cada usuario es el total de lo que pagan y necesito que en mi archivo php me salga solo Antonio y siempre la ultima linea para sebar lo que lleva pagado. He creado una consulta pero especifica, pero cuando entra una linea nueva no se me cambia o cambia de usuario. Haber si me podeis ayudar un poco plis

Este es el codigo que tengo:

<html>
<body>
<?php
$link = mysql_connect("Servidor BDD", "nombre BDD", "*****");
mysql_select_db("User BDD", $link);
$result = mysql_query("SELECT * FROM Clientes", $link);
echo "Total Pagado: ".mysql_result($result, 3, "PVP")."<br>";
?>
</body>
</html>

donde clientes seria la tabla y pvp el campo que quiero que aparezca siempre.

Gracias de antemano.
  #2 (permalink)  
Antiguo 28/09/2012, 05:11
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 13 años
Puntos: 261
Respuesta: Consulta en base de datos especifica

El planteamiento no es correcto, si vas a ingresar, varios valores para un mismo usuario, debería tener dos tablas relacionadas One To Many (Uno a muchos).

Te resultaría incluso mas sencillo manejar los datos y mostrarlos según necesites.
Código:
Tabla Usuarios
id, usuario
1, Antonio
2, Jose
3, Luis

Tabla Pagos
id, id_usuario, pago
1, 1, 30
2, 1, 50
3, 2, 10
4, 1, 30
5, 3, 45

Los campos relacionados son:
Usuarios id con Pagos id_usuario
Con este esquema, no duplicas usuarios, acumulas pagos, y los tienes referenciados.
Por ejemplo, de la tabla Pagos, el usuario con id_usuario 1 (Antonio), ha realizado los pagos con id 1,2 y 4.

PD.: Aunque sean pruebas, debería ir acostumbrando a usar mysqli.

Saludos,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #3 (permalink)  
Antiguo 28/09/2012, 05:42
plm
 
Fecha de Ingreso: marzo-2011
Mensajes: 3
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Consulta en base de datos especifica

Muchas gracias por contestar tan rapido... no me he explicado bien creo. Las tablas las tengo mas o menos como dices, pero no tengo que sumar las cantidades, eso ya me lo hace las base de datos sola y lo muestra en el ultimo registro creado de cada usuario. pero no encuentro la forma de decirle a la base de datos que coja siempre el ultimo registro de antonio o de otro usuario especifico... yo le pongo que coja la ultima fila pero al ingrasar otro pago ya se me queda la penultima y no me vale, nose que mas probar :(
  #4 (permalink)  
Antiguo 28/09/2012, 06:13
 
Fecha de Ingreso: septiembre-2012
Ubicación: Cuba
Mensajes: 67
Antigüedad: 11 años, 7 meses
Puntos: 1
Respuesta: Consulta en base de datos especifica

Sinceramente plm , no te explicas bien. Yo tampoco te entiendo.
  #5 (permalink)  
Antiguo 28/09/2012, 06:28
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 13 años
Puntos: 261
Respuesta: Consulta en base de datos especifica

Esque si los datos están en distintas tablas, la consulta de por si tampoco es correcta, ya que se tiene que usar JOIN para unir los resultados. Por eso comenté lo de la estructura.


Bueno, me limito a lo que solicitas.
Donde id_colum es el nombre de la columna donde están los datos a comparar.
Donde id_colum_order es el nombre de la columna por la que quieres ordenarlos, normalmente el id auto incrementable.
Código SQL:
Ver original
  1. SELECT * FROM tabla
  2. WHERE id_colum="nombre_a_comparar"
  3. ORDER BY id_colum_order DESC LIMIT 0,1
Básicamente lo que haces es crear la consulta, ordenarlos inversamente, y limitar al primer resultado, que es el último
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight

Etiquetas: especifica, html, mysql, tabla, usuarios
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 09:06.