Foros del Web » Programando para Internet » PHP »

Comparar registros de un SELECT

Estas en el tema de Comparar registros de un SELECT en el foro de PHP en Foros del Web. Buen día, Tengo una tabla con tres columnas llamadas mail, tipo, descripción. Cuando hago el SELECT lo ordeno por mail de forma que me queden ...
  #1 (permalink)  
Antiguo 12/06/2009, 08:29
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años, 6 meses
Puntos: 394
Comparar registros de un SELECT

Buen día,

Tengo una tabla con tres columnas llamadas mail, tipo, descripción. Cuando hago el SELECT lo ordeno por mail de forma que me queden todos los correos repetidos unos debajo de otros. Lo que necesito es algo como lo siguiente:

si (mail.registro1 == mail.registro2){
haga tal cosa;
}sino{
haga esta otra;

lo que no he podido lograr es que me compare el campo MAIL registro por registro.

Muchísimas gracias por su ayuda.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #2 (permalink)  
Antiguo 12/06/2009, 09:08
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 4 meses
Puntos: 416
Respuesta: Comparar registros de un SELECT

Podrias desde la consulta jalar solamente los registros diferentes usando DISTINCT.

Pero bueno, podrias hacer algo como lo siguiente:

Código PHP:
<?php
$ultimoEmail 
"";

while(
$row mysql_fetch_assoc($result)) {
  if(
$row['mail'] == $ultimoEmail) {
    
//Si el ultimo es igual al actual, hago lo que esta aqui
  
} else {
    
//De lo contrario hago esto :D
  
}

  
$ultimoEmail $row['mail'];
}
?>
;)
  #3 (permalink)  
Antiguo 12/06/2009, 09:19
Avatar de SUSMO  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Comparar registros de un SELECT

Hola jotaincubus,

Supongo que los registros obtenidos por la query los recorres con un while
Código PHP:
while ($row mysql_fetch_assoc($result)) {
    echo 
$row['mail'];

Pues bien, dentro de cada iteración obtienes los valores de un sólo registro y por tanto no conoces ni tienes acceso a los valores del anterior o el siguiente.
Lo que yo haría es guardar en una variable el correo anterior y comparar el correo del registro actual con el valor de esa variable, haciendo esto ten en cuenta que el primer registro no puedes compararlo ya que no tendrá valor la variable.
Es decir:

Código PHP:
$aux "";
while (
$row mysql_fetch_assoc($result)) {
    
//Comprovando que aux tenga valor o no. Si es la primera iteración no puede comparar con nada
     
if (!empty($aux))
     {
           if (
$row['mail'] == $aux)
           {
                   
haga tal cosa
           
}
           else
           {
                   
haga tal otra
            
}
     }
      
//Actualizamos el valor de la variable para poder comparar esta dirección con la del siguiente registro
     
$aux $row['mail'];

Otra opción es guardar todos los valores retornados por la query en un array y luego trabajar des del array pero como no se para que quieres hacer esto exactamente pues no se que opción seria la mejor.

Espero haber sido de ayuda.

Saludos!!
__________________
Perdida en el mundo del conocimiento
  #4 (permalink)  
Antiguo 12/06/2009, 10:12
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años, 6 meses
Puntos: 394
Respuesta: Comparar registros de un SELECT

Caballeros, les estaré eternamente agradecido.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:05.