comparar dos registros

Rodrigo Fuentealba darkprox en gmail.com
Jue Feb 8 11:15:14 CLST 2007


El 8/02/07, Alberto Rivera <rivera.alberto en gmail.com> escribió:
> sagrario escribió:
> > El Jueves, 8 de Febrero de 2007 06:21, Alberto Rivera escribió:
> >
> >> Rodrigo Fuentealba escribió:
> >>
> >>> El 8/02/07, Alberto Rivera <rivera.alberto en gmail.com> escribió:
> >>>
> >>>> Hola listeros, debo hacer lo siguiente por si alguien me puede ayudar.
> >>>>
> >>>> Tengo dos tablas con un "id", primero debo verificar si el "id" de la
> >>>> tabla 1 existe  en la tabla 2 y segundo si no existe eliminar el
> >>>> registro de la tabla 1 ...
> >>>>
> >>> MALO
> >>>
> >> No no cache porque mal ????
> >>
> >>
> >>> Base de Datos primero joven!
> >>>
> >> no entendi
> >>
> >
> > Si estas usando una base de datos lo logico es usar las funciones que tiene
> > esa base de datos para manejar los registros, que es la respuesta que te han
> > dado
> >
> > si no se trata de una base de datos explica mejor a que te refieres con "dos
> > tablas con un id"
> >
> Lo que pasa es que lo puse de forma sencilla para que me dieran una
> idea, la cuestión es que la tabla b que tiene un id2 es una tabla
> temporal y el dato en realidad no se elimina sino que cambia de estado
> activo a pasivo... era solo para la idea...

para pasar de activo a pasivo puedes usar la sentencia

update tabla1, tablatemp set tabla1.valor = 'pasivo' where tabla1.id =
tablatemp.id and otras condiciones;

en vez de tener que seleccionarlos para hacer el update con php. Te
ahorras varios ciclos de trabajo del servidor web.

>
> En todo caso ya lo tengo de esta forma por si a alguien le interesa:
>
>  $num1=mysql_num_rows($result);
>      while ($row=mysql_fetch_array($result)) {
>          $i++; $id1[$i]=$row["id"];
>      }
>
>  $num2=mysql_num_rows($resant);
>      while ($row2=mysql_fetch_array($resant)) {
>          $j++;
>            $id2[$j]=$row2["id"];
>      }
>
>  for($i=1;$i<=$num1;$i++){
>      for($j=0;$j<=$num2;$j++){
>          $idok=0;
>          if ($id1[$i] == $id2[$j]){
>              echo (" 1--> $id1[$i] -- $id2[$j] <br>");
>            $sql=mysql_query("DELETE FROM $anterior WHERE id=$id2[$j]",$db);
>          }
>      }
>   }
>
> Eso es todo salu2
> Albertux
> >>> delete from a1.test where a1.test.test not in (select a2.test.test
> >>> from a2.test);
> >>>
> >> salu2 ¿?
> >>

-- 
Rodrigo Fuentealba Cartes
Desarrollador de Sistemas Web
Registered User 387639 - http://counter.li.org



Más información sobre la lista de distribución PHP