Foros del Web » Programando para Internet » PHP »

consulta mysql

Estas en el tema de consulta mysql en el foro de PHP en Foros del Web. Quisiera hacer esta aconsulta pero no em arroja lo resultados que quiero.. La Consulta es la Siguiente: 1.Los Nombres del Cliente, el valor y el ...
  #1 (permalink)  
Antiguo 10/05/2004, 12:47
Avatar de capuleto  
Fecha de Ingreso: octubre-2003
Ubicación: Cartagena
Mensajes: 219
Antigüedad: 14 años, 2 meses
Puntos: 0
Pregunta consulta mysql

Quisiera hacer esta aconsulta pero no em arroja lo resultados que quiero..
La Consulta es la Siguiente:
1.Los Nombres del Cliente, el valor y el numero de la factura con mayor valor.

Datos de la tabla Clientes:
Código:
Codigo  codigo_zona    Nombres         Telefono
120101      12       Arnulfo Arias     6714100
152326      15       Hector Diaz       6580277
235687      23       Victor Castillo   6697243
565849      56       Martin Corbac     6584958
123658      12       Gabriel Posso     6854783
Código:
numero    Fecha   codigo_cliente  codigo_vend   valor
1      2004-05-07   120121 	      3 	         120000.00
2      2004-05-18   152326 	      2 	         30000.00
3      2004-05-18   235687 	      3 	         60000.00
La respuesta debe ser los nombres de los clientes con los valores de sus facturas
y la el numero de la factura con mas valor en este caso sera la factura numero 1.
Se que es con Max para calcular el mayor valor de un campo, pero exactamente donde la coloco
en el query....

el script de php es mas o menos este:
Código PHP:
<?
# Recogemos en una variable el nombre de la Base de Datos
$base="empresa";

# establecemos la conexion con el servidor
$conex=mysql_connect("localhost","root","");

#Seleccionamos la Base de Datos
mysql_select_db($base,$conex);

# Establecemos el Criterio de Seleccion
$res=mysql_query("SELECT SELECT nombres FROM clientes INNER JOIN 
facturas ON clientes.codigo=facturas.codigo_cliente FROM $tabla" 
,$conex);

# Mostramos los resultados
# CREAMOS UNA CABECERA DE UNA TABLA (codigo HTML) 
echo "<table align='center' border='2'>";

while (
$registro=mysql_fetch_row($res)){ // Puedo utilizar mysql_fetch_array
    # insertamos un salto de línea en la tabla HTML 
    
echo "<tr>";

    foreach(
$registro as $clave){
        echo 
"<td>",$clave,"</td>";
    }
    echo 
"</tr>";
}
echo 
"</table>";

# Cerramos la Conexion
mysql_close($conex);
?>
Bueno espero que me echen una manito, estoy desesperado, no se como hacerlo..
chao y espero pronta respuestas, ok.
__________________
...Definitivamente Soy Nadie entre los Sabios....*-*Capuleto*-*
  #2 (permalink)  
Antiguo 10/05/2004, 13:01
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Esta es la consulta

Esta es la consulta.
Código PHP:
 $sql "SELECT cliente.nombre, cliente.codigo, otratabla.codigo_cliente, otratabla.valor FROM Clientes cliente, Nombre_de_la_otra_tabla otratabla WHERE otratabla.codigo_cliente = cliente.codigo"
Ahora de lo otro te encargas tu.

SAlu2
__________________
Ing. Reynier Pérez Mira
  #3 (permalink)  
Antiguo 10/05/2004, 15:03
Avatar de capuleto  
Fecha de Ingreso: octubre-2003
Ubicación: Cartagena
Mensajes: 219
Antigüedad: 14 años, 2 meses
Puntos: 0
bien, ahora esto

Bien he logrado hacer la consulta amigo, pero tengo ciertas dudas:

aqui dejo el script de php:
Código PHP:
<?
# Recogemos en una variable el nombre de la Base de Datos
$base="empresa";

# establecemos la conexion con el servidor
$conex=mysql_connect("localhost","root","");

#Seleccionamos la Base de Datos
mysql_select_db($base,$conex);

# Asignamos a una Variable el query SQL
$ssql="SELECT clientes.nombres, facturas.codigo_cliente, facturas.valor FROM clientes, facturas WHERE facturas.codigo_cliente=clientes.codigo";

# Ejecutamos la Sentencia
$res=mysql_query($ssql,$conex);

# Mostramos los resultados
# CREAMOS UNA CABECERA DE UNA TABLA (codigo HTML) 
echo "<table align='center' border='2'>";

while (
$registro=mysql_fetch_row($res)){
    
# insertamos un salto de línea en la tabla HTML 
    
echo "<tr>";

    foreach(
$registro as $clave){
        echo 
"<td>",$clave,"</td>";
    }
    echo 
"</tr>";
}
echo 
"</table>";

echo 
"<br>";

# Asignamos a una Variable el query SQL para Hayar el No de la factura con mayor valor
$ssql="SELECT Max(valor) FROM facturas";

# Ejecutamos la Sentencia
$res=mysql_query($ssql,$conex);

# Mostramos los resultados
# CREAMOS UNA CABECERA DE UNA TABLA (codigo HTML) 
echo "<table align='center' border='2'>";

while (
$registro=mysql_fetch_row($res)){
    
# insertamos un salto de línea en la tabla HTML 
    
echo "<tr>";

    foreach(
$registro as $clave){
        echo 
"<td> La Factura con mayor valor es: ",$clave,"</td>";
    }
    echo 
"</tr>";
}
echo 
"</table>";

# Cerramos la Conexion
mysql_close($conex);
?>
Necesito encontrar el numero de la factura que tenga el mayor valor, por el momento he conseguido que me salga es el mayor valor como lo pueden ver, pero para sacar el numero del mayor valor, alli tengo el problema, estoy intendo, haber que pasa....
y la duda es cual es mejor utilizar para eso casos:
Código PHP:
mysql_fetch_row($res); 
o
Código PHP:
mysql_fetch_array($res); 
Y cual es la diferencia, se que alli esta la clave..Gracias....
Otra pregunta:
asi como esta el script esta la parte de la consultra esta bien o hay otra forma mejor de hacerlo que me recoemiendan??
Gracias a todos, y espero su sabias orientaciones..chao
ah.....la otratabla, se llama facturas, ok.
__________________
...Definitivamente Soy Nadie entre los Sabios....*-*Capuleto*-*
  #4 (permalink)  
Antiguo 10/05/2004, 18:33
Avatar de capuleto  
Fecha de Ingreso: octubre-2003
Ubicación: Cartagena
Mensajes: 219
Antigüedad: 14 años, 2 meses
Puntos: 0
nadie

Nadie ayuda.....
__________________
...Definitivamente Soy Nadie entre los Sabios....*-*Capuleto*-*
  #5 (permalink)  
Antiguo 10/05/2004, 21:26
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 15 años
Puntos: 1
Capuleto ...

No debes desesperarte ni obligar a los usuarios a que respondan tus mensajes. Si no los han respondido es porque no saben o porque están bsucando una forma de hacerlo. Pienso que debías estudiar un poco de lenguaje SQL antes de seguir con PHP porque tus problemas no están con PHP sino con SQL. La consulta que tratas de hacer está correcta pero te recomendaría que le dieras un alias a ese resultado. Entonces te quedaría así:
Código PHP:
$ssql="SELECT Max(valor) as maximo_valor FROM facturas"
lo puedes hacer con cualquiera de los tres. Las diferencias son:
Cita:
mysql_fetch_array: Te devuelve los resultados en un array asociativo y numerico a la vez
campo Resultados
nombre: 1 nombre Reynier
correo : 2 correo [email protected]
url : 3 url http://misitio.com
Cita:
mysql_fetch_array: Te devuelve los resultados en un array asociativo
nombre Reynier
correo [email protected]
url http://misitio.com
Cita:
mysql_fetch_array: Te devuelve los resultados en un array numerico
nombre 1 Reynier
correo 2 [email protected]
url 3 http://misitio.com
ahora queda escoger de tu parte cual usas pero la que menos recursos consume según los expertos es mysql_fetch_assoc
Salu2
__________________
Ing. Reynier Pérez Mira

Última edición por Reynier; 10/05/2004 a las 21:28
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 18:28.