Foros del Web » Programando para Internet » PHP »

Ayuda con Duplicados

Estas en el tema de Ayuda con Duplicados en el foro de PHP en Foros del Web. hola amigos, de este foro he aprendido harto, pero tengo mi primer problema... tengo un sistema en php que consulta una base de datos, el ...
  #1 (permalink)  
Antiguo 01/09/2010, 09:57
 
Fecha de Ingreso: junio-2010
Mensajes: 6
Antigüedad: 13 años, 9 meses
Puntos: 0
Ayuda con Duplicados

hola amigos, de este foro he aprendido harto, pero tengo mi primer problema...

tengo un sistema en php que consulta una base de datos, el problema que en unas columnas(serial)(rotulo) tengo registros repetidos.

logre ver la informacion a traves de una query que la integre en un php, funciona super bien cuando tengo menos de 200 registros, pero ahora tengo mas de 4000 y se me cae la consulta.

agrande los tiempo de espera por parte del apache, memoria y tamaño..
pero aun asi se cae..

no se que puedo hacer para solucionar mi problema..

dejo el codigo y ojala me puedan brindar alguna ayuda...
gracias!!


Codigo para ver la columan rotulos

<?php

$dbhost="127.0.0.1";
$dbusuario="root";

$dbpassword="bases321";
$db="mesaayuda";
$conexion = mysql_connect($dbhost, $dbusuario, $dbpassword);
mysql_select_db( $db, $conexion);


$result = mysql_query("select * FROM reportes where Rotulo in (select Rotulo from reportes as x
group by Rotulo having count(*) > 1 and reportes.Rotulo=x.Rotulo)
order by Rotulo", $conexion);

echo "<table border = '1' \n";
echo "<tr> \n";
echo "<td><b><font face=Verdana color=blue size=1><center> ID de Ingreso </center></b></td> \n";
echo "<td><b><font face=Verdana size=1><center> Rotulo </center></b></td> \n";
echo "<td><b><font face=Verdana size=1><center> serial</center></b></td> \n";

echo "<td><b><font face=Verdana size=1><center> Equipo </center></b></td> \n";
echo "<td><b><font face=Verdana size=1><center> Modelo </center></b></td> \n";
echo "<td><b><font face=Verdana size=1><center> Guia de Despacho</center></b></td> \n";
echo "<td><b><font face=Verdana size=1><center> Nº de Carta</center></b></td> \n";
echo "<td><b><font face=Verdana size=1><center> Dependencia </center></b></td> \n";
echo "<td><b><font face=Verdana size=1><center> Nombre de Usuario </center></b></td> \n";
echo "<td><b><font face=Verdana size=1><center> Telefono </center></b></td> \n";
echo "<td><b><font face=Verdana size=1><center> Telefono 2</center></b></td> \n";


while ($row = mysql_fetch_row($result)){
echo "<tr> \n";
echo "<td><font face=Verdana color=blue size=1> $row[0]</td> \n";
echo "<td><font face=Verdana size=1> $row[9]</td> \n";
echo "<td><font face=Verdana size=1> $row[8] </td> \n";
echo "<td><font face=Verdana size=1> $row[4] </td> \n";
echo "<td><font face=Verdana size=1> $row[7] </td> \n";
echo "<td><font face=Verdana size=1> $row[1] </td> \n";
echo "<td><font face=Verdana size=1> $row[2] </td> \n";
echo "<td><font face=Verdana size=1> $row[3] </td> \n";
echo "<td><font face=Verdana size=1> $row[21] </td> \n";
echo "<td><font face=Verdana size=1> $row[19] </td> \n";
echo "<td><font face=Verdana size=1> $row[20] </td> \n";


echo "</tr> \n";
}
echo "</table> \n";
?>

codigo columna serial

<?php

$dbhost="127.0.0.1";
$dbusuario="root";

$dbpassword="Neohex321";
$db="mesaayuda";
$conexion = mysql_connect($dbhost, $dbusuario, $dbpassword);
mysql_select_db( $db, $conexion);


$result = mysql_query("select * FROM reportes where serial in (select serial from reportes as x
group by serial having count(*) > 1 and reportes.serial=x.serial)
order by serial", $conexion);

echo "<table border = '1' \n";
echo "<tr> \n";
echo "<td><b><font face=Verdana color=blue size=1><center> ID de Ingreso </center></b></td> \n";
echo "<td><b><font face=Verdana size=1><center> Rotulo </center></b></td> \n";
echo "<td><b><font face=Verdana size=1><center> serial</center></b></td> \n";

echo "<td><b><font face=Verdana size=1><center> Equipo </center></b></td> \n";
echo "<td><b><font face=Verdana size=1><center> Modelo </center></b></td> \n";
echo "<td><b><font face=Verdana size=1><center> Guia de Despacho</center></b></td> \n";
echo "<td><b><font face=Verdana size=1><center> Nº de Carta</center></b></td> \n";
echo "<td><b><font face=Verdana size=1><center> Dependencia </center></b></td> \n";
echo "<td><b><font face=Verdana size=1><center> Nombre de Usuario </center></b></td> \n";
echo "<td><b><font face=Verdana size=1><center> Telefono </center></b></td> \n";
echo "<td><b><font face=Verdana size=1><center> Telefono 2</center></b></td> \n";


while ($row = mysql_fetch_row($result)){
echo "<tr> \n";
echo "<td><font face=Verdana color=blue size=1> $row[0]</td> \n";
echo "<td><font face=Verdana size=1> $row[9]</td> \n";
echo "<td><font face=Verdana size=1> $row[8] </td> \n";
echo "<td><font face=Verdana size=1> $row[4] </td> \n";
echo "<td><font face=Verdana size=1> $row[7] </td> \n";
echo "<td><font face=Verdana size=1> $row[1] </td> \n";
echo "<td><font face=Verdana size=1> $row[2] </td> \n";
echo "<td><font face=Verdana size=1> $row[3] </td> \n";
echo "<td><font face=Verdana size=1> $row[21] </td> \n";
echo "<td><font face=Verdana size=1> $row[19] </td> \n";
echo "<td><font face=Verdana size=1> $row[20] </td> \n";




echo "</tr> \n";
}
echo "</table> \n";
?>



Estare atento a sus comentarios..
Saludos...
  #2 (permalink)  
Antiguo 01/09/2010, 10:03
 
Fecha de Ingreso: noviembre-2007
Mensajes: 382
Antigüedad: 16 años, 5 meses
Puntos: 16
Respuesta: Ayuda con Duplicados

lo único que se me ocurre es que en lugar de select *, pongas los campos que necesitas y en lugar de
echo "<td><font face=Verdana color=blue size=1> $row[0]</td> \n";
echo "<td><font face=Verdana size=1> $row[9]</td> \n";
echo "<td><font face=Verdana size=1> $row[8] </td> \n";
echo "<td><font face=Verdana size=1> $row[4] </td> \n";
echo "<td><font face=Verdana size=1> $row[7] </td> \n";
echo "<td><font face=Verdana size=1> $row[1] </td> \n";
echo "<td><font face=Verdana size=1> $row[2] </td> \n";
echo "<td><font face=Verdana size=1> $row[3] </td> \n";
echo "<td><font face=Verdana size=1> $row[21] </td> \n";
echo "<td><font face=Verdana size=1> $row[19] </td> \n";
echo "<td><font face=Verdana size=1> $row[20] </td> \n";

recorras $row con un foreach, como poco te quitas un montón de código de en medio
  #3 (permalink)  
Antiguo 01/09/2010, 10:08
Avatar de josej30  
Fecha de Ingreso: noviembre-2008
Ubicación: Caracas, Venezuela
Mensajes: 61
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Ayuda con Duplicados

También te recomiendo para optimización de consultas que en vez de utilizar consultas anidadas (select dentro de select) utilices Joins (Inner, left, right, etc). Es más eficiente para la base de datos.
  #4 (permalink)  
Antiguo 01/09/2010, 10:25
 
Fecha de Ingreso: junio-2010
Mensajes: 6
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Ayuda con Duplicados

vale gracias intentare ver si me resulta y te comento..
muchas gracias.!!

Etiquetas: duplicados
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 11:08.