Foros del Web » Programando para Internet » PHP »

Verificar que no se repitan los campos

Estas en el tema de Verificar que no se repitan los campos en el foro de PHP en Foros del Web. Buenas gente estoy tratando de hacer un script en php que valide si hay campos repetidos. Paso a mostrarles mi caso concreto: Tengo unas noticias ...
  #1 (permalink)  
Antiguo 09/05/2009, 19:25
 
Fecha de Ingreso: marzo-2009
Mensajes: 17
Antigüedad: 15 años
Puntos: 0
Verificar que no se repitan los campos

Buenas gente

estoy tratando de hacer un script en php que valide si hay campos repetidos. Paso a mostrarles mi caso concreto:

Tengo unas noticias que deben ordenarse, pero los campos (que completa el usuario) no deben repetirse. Les dejo la imagen para que entiendan mejor:

www . facudipierro. com .ar/prueba/test/posiciones.png (pongo asi el enlace pq no me dejan incluir links, obviamente quitenle los espacios)

El código que necesito tendría que chequear lo siguiente:
si:
1=2
1=3
1=4
2=3
2=4
3=4

ahi estaríamos preguntando si algun campo es igual a otro.

esa es la primera parte.

La 2da parte es que no siempre las noticias son 4, estas pueden ser 5,6,7, etc.

Mi primer codigo para verificar que no se repitan fue este:

Código PHP:
//$posicionesg es la canitdad de noticias que hay para ordenar. Yo le pongo uno menos porque tiene que preguntar 3 veces, pq se compara el 1 con el 2, el 2 con el 3 y el 3 con el 4.

for ($i=1$i<=$posicionesg-1$i++){
  if (
$_POST['pos_grande_'.$i]==$_POST['pos_grande_'.($i+1)]){
   
$cont++;
  }
}

//el $cont++ lo uso para despues preguntar if $cont!=0 entonces mostrar cartel de error 
pero el error de este codigo es que solo contempla que no se repita la siguiente, o sea esta incompleto. Lo unico que verifica es esta parte:

1=2
2=3
3=4

Lo que necesito seria poder chequear todas las posibilidades:
1=2
1=3
1=4
2=3
2=4
3=4

Bueno, espero que se haya entendido, sino pregunten!

Si alguien tiene alguna solución en javascript bienvenida sea!

Saludos y gracias de antemanoo!

Última edición por dedodream; 09/05/2009 a las 19:36
  #2 (permalink)  
Antiguo 09/05/2009, 23:32
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Verificar que no se repitan los campos

Puedes usar array_unique() para borrar los duplicados (si deseas saber si hay duplicados, obteniendo la longitud del array resultado usando count() y comparándolo con la longitud del array original sabrás si hubo duplicados o no).
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 10/05/2009, 10:24
 
Fecha de Ingreso: marzo-2009
Mensajes: 17
Antigüedad: 15 años
Puntos: 0
Respuesta: Verificar que no se repitan los campos

Gracias david! el tema es que no se como crear el contenido de un array de manera dinamica.

el array me tendría que quedar asi:
Código PHP:
$array=array(campo1,campo2,campo3,campo4); 
pero mis campos los recibo asi:
Código PHP:
for ($i=1$i<=$posicionesg$i++){
  
$_POST['campo'.$i]; 

trate de crear el array con un for pero no me anduvo: (porque ahi no le estoy agragando elementos al array, sino que se los estoy cambiando todo el tiempo)
Código PHP:
for ($i=1$i<=$posicionesg$i++){
  
$array=array($_POST['campo'.$i])

Gracias!
  #4 (permalink)  
Antiguo 10/05/2009, 10:40
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Verificar que no se repitan los campos

cambia el for asi:

for ($i=1; $i<=$posicionesg; $i++){
$array[]=$_POST['campo'.$i];
}
  #5 (permalink)  
Antiguo 10/05/2009, 10:42
 
Fecha de Ingreso: marzo-2009
Mensajes: 17
Antigüedad: 15 años
Puntos: 0
Respuesta: Verificar que no se repitan los campos

Gracias by_george pero no me anduvo.

También probé esto que tampoco me funciona:
Código PHP:
for($i=1$i <=posicionesg$i++){
    
$entrada[$i]=array($_POST['pos_grande_'.$i]);


echo 
$entrada[3]; 
  #6 (permalink)  
Antiguo 10/05/2009, 10:52
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Verificar que no se repitan los campos

pues entonces asi; no le pongas array( $variable).

hazlo asi:

for ($i=1; $i<=$posicionesg; $i++){
$array[$i]=$_POST['campo'.$i];//y solo el valor de la variable y no asi array( $variable)
}
  #7 (permalink)  
Antiguo 10/05/2009, 11:47
 
Fecha de Ingreso: marzo-2009
Mensajes: 17
Antigüedad: 15 años
Puntos: 0
Respuesta: Verificar que no se repitan los campos

Gracias, ya lo habia probado asi pero tampoco anda.

Código PHP:
for($i=1$i <=posicionesg$i++){
    
$entrada[$i]=$_POST['pos_grande_'.$i];


echo 
$entrada[1].'<br />'// no me devuelve nada 
  #8 (permalink)  
Antiguo 10/05/2009, 12:03
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Verificar que no se repitan los campos

en ese ultimo codigo tu tienes "posicionesg" y eso no es una variable asi que no te puede hacer nada le falta el igno de moneda "$posicionesg", ya checaste que esa variable tenga valor o qu no sea cero??? ya intentast ver que los valores que reciben no esten en blanco???
  #9 (permalink)  
Antiguo 10/05/2009, 12:17
 
Fecha de Ingreso: marzo-2009
Mensajes: 17
Antigüedad: 15 años
Puntos: 0
Respuesta: Verificar que no se repitan los campos

Ahora si!

gracias by_george! q verguenza, el error estaba en un error de tipeo...

bueno, ahora me falta aplicar lo q me dijo david_el_grande. Lo aplico así pero no me anda:
Código PHP:
for($i=1$i <=$posicionesg$i++){
    
$entrada[$i]=$_POST['pos_grande_'.$i];


$resultado=array_unique($entrada);
echo 
$resultado.'<br />'//me devuelve esto: Array 
se supone que me tendria q devolver:

1,3,4
porque los datos del array son:
1,1,3,4
  #10 (permalink)  
Antiguo 10/05/2009, 12:41
 
Fecha de Ingreso: marzo-2009
Mensajes: 17
Antigüedad: 15 años
Puntos: 0
Respuesta: Verificar que no se repitan los campos

Perdon, estaba haceindo mal el echo, le puse print_r y me mostro los datos correctamente.
  #11 (permalink)  
Antiguo 10/05/2009, 12:59
 
Fecha de Ingreso: marzo-2009
Mensajes: 17
Antigüedad: 15 años
Puntos: 0
Respuesta: Verificar que no se repitan los campos

Listo!

ya termine el script q necesitaba! tema cerrado!

Muchas a gracias by_george por el seguimiento instantaneo y gracias a david pq me sirvio mucho esa funcion q no conocia

Saludos!!!
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 22:06.