Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Mysql (http://www.forosdelweb.com/f86/)
-   -   consulta (http://www.forosdelweb.com/f86/consulta-369171/)

Edsinho 06/02/2006 18:06

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>';
}
?>

elunicode 07/02/2006 12:53

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

deadlykyo 07/02/2006 13:04

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


La zona horaria es GMT -6. Ahora son las 19:11.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.