Re: [php] PHP y Mysql

From: Eduardo Zarate ( eduardo .en. piaget.dgsca.unam.mx)
Date: Wed Jul 30 2003 - 18:00:53 CEST


> Hola a todos.... un saludo para todos ......
>
> Necesito que por favor me orienten sobre como resolver
> el siguiente "problema" utilizando php
>
> * Tengo 1 base de datos, xyz con 2 tablas A y B (en mysql), con los *
> siguientes contenidos:
>
> En A:
> orden codigo cantidad
> 1 001 1
> 2 004 1
> 2 006 1
> 3 014 1
>
>
> En B:
> orden codigo cantidad
> 1 001 23
> 2 006 3
>
> Ahora necesito ACTUALIZAR la tabla A, con las cantidades de B, siempre
> y cuando se relacionen el No. de orden y el codigo en ambas tablas.. y
> asi la Tabla A me quede asi:
>
> A
> orden codigo cantidad
> 1 001 23
> 2 004 1
> 2 006 3
> 3 014 1
>
> He intentado con los siguiente ... :
>
> $conn = mysql_connect("localhost","root","adminis");
> mysql_select_db("xyz",$conn);
>
> $cursor1 = mysql_query ("SELECT * FROM A", $conn);
> $cursor2 = mysql_query ("SELECT * FROM B", $conn);
>
> while ($fila1 = mysql_fetch_row($cursor1))
> {
> while ($fila2 = mysql_fetch_row($cursor2))
> {
> if ($fila1[0]==$fila2[0] && fila1[1]==fila2[1]) {
> $query = "update A set cantidad=$fila2[2]";
> ......
> }
> }
> }
>
> PERO, no he tenido suerte porque .... los ciclos los ejecuta
> independientes y no hay punto de comparacion completo de un registro de
> A con TODOS los de B....
>
>
> Gracias por su atencion ...
>
> pd/ Este ejemplo lo planteo asi, para poder averiguar mas sobre como se
> puede hacer una actualizacion comparando campos entre dos tablas ....
> por favor no mirar la "logica" en el contenido de cada tabla.....
>
>
> --
> gerCO

Una razón más para usar MySQL 4,... los UPDATEs multi-tabla....

Con una sola consulta resuelves tu problema.

mysql> update tableA AS a, tableB AS b SET a.cantidad=b.cantidad
WHERE a.orden=b.orden AND a.codigo=b.codigo;

(Repito, sólo en MySQL 4,... no en MySQL 3.23.x)

Sale y vale
Byte

Lista de correo php .en. opensource.org.mx
Histórico: http://www.opensource.org.mx/listas/php
Página: http://www.php.org.mx



This archive was generated by hypermail 2.1.7 : Fri May 14 2004 - 15:51:57 CEST