Retroceder   Foros del Web > Programación para sitios web > Bases de Datos > Mysql

Respuesta
 
Herramientas Desplegado
Antiguo 06-feb-2006, 17:06   #1 (permalink)
Edsinho ha deshabilitado el karma
 
Fecha de Ingreso: julio-2005
Mensajes: 78
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>';
}
?>
Edsinho está desconectado   Responder Citando
Antiguo 07-feb-2006, 11:53   #2 (permalink)
elunicode ha deshabilitado el karma
 
Avatar de elunicode
 
Fecha de Ingreso: noviembre-2005
Mensajes: 48
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
elunicode está desconectado   Responder Citando
Antiguo 07-feb-2006, 12:04   #3 (permalink)
deadlykyo ha deshabilitado el karma
 
Avatar de deadlykyo
 
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 743
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"
deadlykyo está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 15:40.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93