Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Filas Repetidas php y MYSQL

Estas en el tema de Filas Repetidas php y MYSQL en el foro de PHP en Foros del Web. Saludos, como puedo hacer para validar filas repetidas en php y mysql osea que todos los campos de la fila superior no se repitan con ...
  #1 (permalink)  
Antiguo 22/11/2013, 09:33
 
Fecha de Ingreso: agosto-2010
Mensajes: 125
Antigüedad: 13 años, 8 meses
Puntos: 0
Filas Repetidas php y MYSQL

Saludos, como puedo hacer para validar filas repetidas en php y mysql osea que todos los campos de la fila superior no se repitan con los de la fila inferior ??

  #2 (permalink)  
Antiguo 22/11/2013, 10:03
Avatar de chichote
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Santiago - Chile
Mensajes: 1.868
Antigüedad: 19 años, 4 meses
Puntos: 145
Respuesta: Filas Repetidas php y MYSQL

Por lo que entiendo, quieres hacer que si por ejemplo existen 3 filas iguales, solo se muestre una, si es asi, puedes argrupar los resultados en tu query (GROUP BY)
__________________
http://chicho.ninja yiaaaa
  #3 (permalink)  
Antiguo 22/11/2013, 10:18
 
Fecha de Ingreso: agosto-2010
Mensajes: 125
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Filas Repetidas php y MYSQL

por ejemplo tengo esto para validar que el dato no se repita, pero lo que busco es que cuando encuentre toda una fila idéntica, mande erro

por ejemplo tengo
grado: 1 grupo: B
grado: 2 grupo: B______Este se repite error
grado: 1 grupo: C
grado: 2 grupo: B_____Este se repite error

///El código de abajo me alerta si el dato se repite en cualquiera de los casos, peor lo que busco es que me alerte cuando ya exista una fila identica


$checkgrad = mysql_query("SELECT grado FROM materias WHERE grado='$grado'");
$grad_exist = mysql_num_rows($checkgrad);


$checkgrup = mysql_query("SELECT grupo FROM materias WHERE grupo='$grupo'");
$grup_exist = mysql_num_rows($checkgrup);

if ($grad_exist>0|$grup_exist>0) {
header('Location: ../materias.php?error=2');
  #4 (permalink)  
Antiguo 22/11/2013, 10:37
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Filas Repetidas php y MYSQL

Cita:
Iniciado por famjaes Ver Mensaje
por ejemplo tengo esto para validar que el dato no se repita, pero lo que busco es que cuando encuentre toda una fila idéntica, mande erro

por ejemplo tengo
grado: 1 grupo: B
grado: 2 grupo: B______Este se repite error
grado: 1 grupo: C
grado: 2 grupo: B_____Este se repite error

///El código de abajo me alerta si el dato se repite en cualquiera de los casos, peor lo que busco es que me alerte cuando ya exista una fila identica


$checkgrad = mysql_query("SELECT grado FROM materias WHERE grado='$grado'");
$grad_exist = mysql_num_rows($checkgrad);


$checkgrup = mysql_query("SELECT grupo FROM materias WHERE grupo='$grupo'");
$grup_exist = mysql_num_rows($checkgrup);

if ($grad_exist>0|$grup_exist>0) {
header('Location: ../materias.php?error=2');
Desde el punto de vista de BBDD, sebería funcionar simplemente añadiendo un DISTINCT, en tanto esos dos campos sean los únicos que se usen.
Código PHP:
$checkgrad mysql_query("SELECT DISTINCT grado FROM materias WHERE grado='$grado'"); 
$grad_exist mysql_num_rows($checkgrad); 
De lo contrario habria que analizar la estructura de campos de la tabla para ver qué otro filtro hay que agregar.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 22/11/2013, 10:50
 
Fecha de Ingreso: agosto-2010
Mensajes: 125
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Filas Repetidas php y MYSQL

Si tengo mas de 2 campos en la BD.. probé colocando DISTINCT pero no funciono

// Comprobamos si ya existían
$checkpe= mysql_query("SELECT periodo FROM materias WHERE periodo='$periodo'");
$pe_exist = mysql_num_rows($checkpe);

$checkgrad = mysql_query("SELECT grado FROM materias WHERE grado='$grado'");
$grad_exist = mysql_num_rows($checkgrad);

$checkgrup = mysql_query("SELECT grupo FROM materias WHERE grupo='$grupo'");
$grup_exist = mysql_num_rows($checkgrup);

$checkarchivo = mysql_query("SELECT archivo FROM materias WHERE archivo='$archivo'");
$archivo_exist = mysql_num_rows($checkarchivo);

if ($pe_exist>0|$grad_exist>0|$grup_exist>0|$archivo_ exist>0) {
header('Location: ../materias.php?error=2');

}else{



//Todo parece correcto procedemos con la inserccion y la su
$query = "INSERT INTO materias (periodo, grado, grupo, archivo) VALUES('$periodo','$grado','$grupo','$archivo')";
mysql_query($query) or die(mysql_error());

////subida de archivos/////
  #6 (permalink)  
Antiguo 22/11/2013, 11:48
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Filas Repetidas php y MYSQL

Me parece que lo estás hadiendo demasiado complicado. ¿Por qué hacer cuatro consultas cuando con una sola con JOIN deberías poder obtener los datos correspondientes?
Tal vez algo como:
Código PHP:
$qry "SELECT COUNT() existe ";
$qry .= "FROM materias ";
$qry .= "WHERE periodo='$periodo' OR grado='$grado' OR  grupo='$grupo' OR  archivo='$archivo'";
$resultmysql_query($qry);
$fila mysql_fetch_assoc($result);
if(
$fila['existe']>0)
 {}
else
  {} 
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 22/11/2013, 12:08
 
Fecha de Ingreso: agosto-2010
Mensajes: 125
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Filas Repetidas php y MYSQL

Ahora me inserta todos los valores aun estando repetidos XD
  #8 (permalink)  
Antiguo 22/11/2013, 12:35
 
Fecha de Ingreso: agosto-2010
Mensajes: 125
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Filas Repetidas php y MYSQL

XD ya salio
$checkgg = mysql_query("SELECT grado, grupo FROM materias WHERE grado='$grado' AND grupo='$grupo'");
$grad_exist = mysql_num_rows($checkgg);

$checkarchivo = mysql_query("SELECT archivo FROM materias WHERE archivo='$archivo'");
$archivo_exist = mysql_num_rows($checkarchivo);

if ($grad_exist>0|$archivo_exist>0) {
header('Location: ../materias.php?error=2');
  #9 (permalink)  
Antiguo 22/11/2013, 12:39
Avatar de andinog  
Fecha de Ingreso: febrero-2012
Mensajes: 50
Antigüedad: 12 años, 2 meses
Puntos: 6
Respuesta: Filas Repetidas php y MYSQL

Tal vez necesitas un UNIQUE KEY en la base de datos, en el campo "grupo".

Otra forma es, traer todos los datos y analizarlos en PHP:

Código PHP:
Ver original
  1. $grupos=array();
  2.  
  3. while($row = mysql_fetch_assoc($result)) {
  4.  
  5.     // comprobar que el grupo no exista dentro del array, si existe tirar error, si no existe, agregar al array.    
  6.  
  7. }
__________________
"El que nada duda nada sabe"
Ser Programador
  #10 (permalink)  
Antiguo 22/11/2013, 13:01
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Filas Repetidas php y MYSQL

Cita:
Iniciado por famjaes Ver Mensaje
Ahora me inserta todos los valores aun estando repetidos XD
Bueno, a mi no se me ocurriría ejecutar las inserciones sino hasta probar que realmente la idea funciona...

Creo que tienes un serio problema de estructura de datos, y un error en el concepto de validaciones.
¿Por qué no posteas la estructura de las tablas que tienes y sus relaciones? Por allí la cosa falla ya en ese nivel.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: filas
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 09:20.