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