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

consulta

Estas en el tema de consulta en el foro de Mysql en Foros del Web. hola tengo lo siguiente y solo me muestra un registro y cuando hago una consulta en phpmyadmin cuando realizo la consulta me dan 2 registros ...
  #1 (permalink)  
Antiguo 06/02/2006, 18:06
 
Fecha de Ingreso: julio-2005
Mensajes: 78
Antigüedad: 18 años, 9 meses
Puntos: 0
Pregunta consulta

hola tengo lo siguiente y solo me muestra un registro y cuando hago una consulta en phpmyadmin cuando realizo la consulta me dan 2 registros espero que alguien me ayude a saber por que razon.

<?php
require_once 'funcionesdb.php';
$sql = "SELECT NomPro, sum(CanArt) as Cantidad, sum(CanArt*PreCom) as Total
FROM proveedor, compra, comart
WHERE compra.CveCom = comart.CveCom
AND compra.CvePro = proveedor.CvePro
GROUP BY NomPro";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
?>

<table width="65%" align="center">
<th bgcolor="#999999" >Nombre del Proveedor</th>
<th bgcolor="#999999" >Total de Articulos </th>
<th bgcolor="#999999">Importe Total </th>

<?php
while( $row = mysql_fetch_array($result))
{
$pre_mod = number_format($row['Total'],2);
echo '<tr><td width="150" align="center" height="40">'.$row['NomPro'].'</td>';
echo '<td width="100" align="center" height="40">'.$row['Cantidad'].'</td>';
echo '<td width="200" align="center">'.$pre_mod.'</td></tr>';
}
?>
  #2 (permalink)  
Antiguo 07/02/2006, 12:53
Avatar de elunicode  
Fecha de Ingreso: noviembre-2005
Mensajes: 66
Antigüedad: 18 años, 5 meses
Puntos: 2
Prueba con la siguiente consulta

SELECT NomPro, sum(CanArt) as Cantidad, sum(CanArt*PreCom) as Total
FROM proveedor
INNER JOIN compra ON (compra.CvePro = proveedor.CvePro)
INNER JOIN comart ON (compra.CveCom = comart.CveCom)
GROUP BY NomPro

Puedes probar también con LEFT JOIN o con RIGHT JOIN,
si tienes duda checa la documentación referente a JOIN
  #3 (permalink)  
Antiguo 07/02/2006, 13:04
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 18 años, 5 meses
Puntos: 5
creo que estas recorriendo ya una vez antes de tu ciclo while (en la linea que comente) y por eso es que pierdes una de las lineas de tu consulta, intenta asi:
Código PHP:
<?php
require_once 'funcionesdb.php';
$sql "SELECT NomPro, sum(CanArt) as Cantidad, sum(CanArt*PreCom) as Total
FROM proveedor, compra, comart
WHERE compra.CveCom = comart.CveCom
AND compra.CvePro = proveedor.CvePro
GROUP BY NomPro"
;
$result mysql_query($sql);
//creo que tu problema es aqui, que tal si comentas esta linea
//$row = mysql_fetch_array($result);
?>

<table width="65%" align="center">
<th bgcolor="#999999" >Nombre del Proveedor</th>
<th bgcolor="#999999" >Total de Articulos </th>
<th bgcolor="#999999">Importe Total </th>

<?php
while( $row mysql_fetch_array($result))
{
$pre_mod number_format($row['Total'],2);
echo 
'<tr><td width="150" align="center" height="40">'.$row['NomPro'].'</td>';
echo 
'<td width="100" align="center" height="40">'.$row['Cantidad'].'</td>';
echo 
'<td width="200" align="center">'.$pre_mod.'</td></tr>';
}
ahh por cierto es buena idea hacer uso de INNER, LEFT, OUTER JOIN, .... veras que hara la dirferencia cuando trabajes con tablas con hartos datos, cya
__________________
"El Conocimiento es de todos, no solo de algunos"
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 21:26.