SoloCodigo

Programación Web y Scripting => PHP => Mensaje iniciado por: reckba2 en Jueves 26 de Junio de 2003, 22:45

Título: Re: ayuda con codigo PHP
Publicado por: reckba2 en Jueves 26 de Junio de 2003, 22:45
buenas Tardes¡

realice un codigo de consulta que funciona y de PHP sobre PostgreSQL, pero necesito que cuando encuentre un usuario mas de una vez sume los valores correspondientes o sea los de la variable :deuda.val_factura y el resultado junto con los datos seleccionados me los arroje dentro de una tabla, espero que me ayuden o me orienten como hacerlo.

El codigo es el siguiente:

<?
//esta variable probiene de un formulario que //recive el valor a buscar
    $v1=$cta;
    $database = pg_connect ("host=xxxxx port=xxxx dbname=xxxxx user=xxxxx");
    if (!$database) {
        echo "No me puedo conectarn";
        exit;
    }
   $result = pg_exec ($database, "select cliente.nombres, cliente.ap_paterno, deuda.num_factura, deuda.fec_factura, deuda.val_factura
 from cliente, deuda where deuda.cta_cliente=cliente.cta_cliente AND deuda.cta_cliente='$v1'");
   /* $result = pg_exec ($database, "select * from deuda");*/
    if (!$result) {
        echo "No pude ejecutar el execn<BR>";
        echo "y la razon es: [";
        echo pg_errormessage($database);
        echo "]n<BR>";
        exit;
        /*$xx=$deuda.cta_cliente;
        echo "la cuenta es $xx n<BR>";*/
    }
    $nr = pg_numrows ($result);
    echo "Tenemos $nr renglones de resultadon<BR>";
    $row = 0;
    while ($data = pg_fetch_object ($result, $row)){
        echo "$row:t";
        echo $data->nombres  ." " ;
        echo $data->ap_paterno  . " ==> ";
        echo $data->num_factura . " (";
        echo $data->val_factura   . " ";
        echo $data->fec_factura  . ")n<BR>";
        $row++;
        if ($row==$nr){
        break;
       }
     }
    pg_close($database);
     $sdate=date("d/m/y");
     echo $sdate;
?>


Saludos
Reckba
Título: Re: ayuda con codigo PHP
Publicado por: Avalon en Viernes 27 de Junio de 2003, 16:48
Hola, prueba a cambiar tu consulta por esta otra:

SELECT cliente.nombres, cliente.ap_paterno, deuda.num_factura, deuda.fec_factura, SUM(deuda.val_factura) AS 'total_facturas' FROM cliente LEFT JOIN deuda ON (deuda.cta_cliente=cliente.cta_cliente) WHERE cliente.cta_cliente='$v1' GROUP BY cliente.cta_cliente


Esto debería sumar el total de las facturas del cliente y guardarlo en la variable "total_facturas". A la hora de mostrarlo solo deberías añadir la línea

echo $data->total_facturas;

Espero que funcione, ya me contarás.

Salu2,
Avalon
Título: Re: ayuda con codigo PHP
Publicado por: reckba2 en Martes 1 de Julio de 2003, 16:17
probe de la siguiente manera:

select cliente.nombres, cliente.ap_paterno, deuda.num_factura, deuda.fec_factura,
SUM(deuda.val_factura) AS "Total"from cliente LEFT JOIN deuda ON
(deuda.cta_cliente=cliente.cta_cliente)where cliente.cta_cliente='00070' GROUP BY
cliente.cta_cliente;

ah¡ probe directamene en postgresql y me arrojo el siguiente error:

Attribute cliente.nombres must be GROUPed or used in an aggregate function.

Saludos
Reckba
Título: Re: ayuda con codigo PHP
Publicado por: Avalon en Martes 1 de Julio de 2003, 18:34
Hola de nuevo. Lo he probado con MySQL y funciona correctamente. No he trabajado con PostgreSQL y pensaba que las consultas funcionarían igual pero por lo visto no es así y parece que hay que agrupar todas las columnas que no utilizan funciones de agregación (según el error que indicas).

Prueba con esta consulta:

SELECT cliente.nombres, cliente.ap_paterno, deuda.num_factura, deuda.fec_factura, SUM(deuda.val_factura) AS 'Total' FROM cliente LEFT JOIN deuda ON (deuda.cta_cliente=cliente.cta_cliente) WHERE cliente.cta_cliente='00070' GROUP BY cliente.cta_cliente, cliente.nombres, cliente.ap_paterno, deuda.num_factura, deuda.fec_factura;

A ver que tal...

Salu2,
Avalon
Título: Re: ayuda con codigo PHP
Publicado por: reckba2 en Martes 1 de Julio de 2003, 22:43
el cliente 00009 tien los siguientes datos en la tabla deuda:

cta_cliente | num_factura | fec_factura | val_factura | fec_vencimi
-------------+-------------+-------------+-------------+-------------
 00009       |      353337 | 2003-04-25  |       18900 | 2003-10-05
 00009       |      383335 | 2003-05-25  |       29600 | 2003-10-06

prove exactamente tu consulta y el resultado arrojado es el siguiente:

 nombres        |   ap_paterno    | num_factura | fec_factura | total
----------------+-----------------+-------------+-------------+-------
 JUAN           | PEREZ               |      353337 | 2003-04-25  | 18900
 JUAN           | PEREZ               |      383335 | 2003-05-25  | 29600

Y yo quiero que salga asi:

 nombres  |  ap_paterno | num_factura | fec_factura | val_factura | TOTAL
----------+-------------+-------------+-------------+-------------+------
 JUAN     | AGUIRRE     |      353337 | 2003-04-25  | 18900       | 48500
              |                   |      383335 | 2003-05-25  | 29600

Y HE BROBADO DE VARIAS FORMAS PERO NO ME RESULTA.

Saludos
Reckba
Título: Re: ayuda con codigo PHP
Publicado por: Avalon en Lunes 7 de Julio de 2003, 20:48
Pués la verdad es que no se cuál puede ser el problema. Probando la misma consulta (la que puse en el primer mensaje) en MySQL lo que obtengo es esto:

nombres | ap_paterno | num_factura | fec_factura | total_facturas  
JUAN | PEREZ | 353337 | 2003-10-05 | 48500

Siento no poder ayudarte:ouch:

Salu2,
Avalon
Título: ayuda con codigo PHP
Publicado por: videojuegosmexicanos en Martes 15 de Julio de 2003, 00:23
Aquí está una dirección donde vienen varias cosas interesantes:

Programación de videojuegos en español
juegos cada mes en c o pascal o qbasic
otro proyecto a largo plazo, código abierto
php, visual basic, programación de juegos rpg
Anime por Adriana Lee (Yu Gi oh)Dragon ball, sakura, yu gi oh, pokemon, caballeros del zodiaco, capitan tsubasa, con imagenes e infomación, roms, etc

entra ene sta dirección

http://groups.msn.com/VideojuegosdeMexi ... antes.msnw (http://groups.msn.com/VideojuegosdeMexico/linksaotraspginasinteresantes.msnw)