Foros del Web » Programando para Internet » PHP »

Error al comparar datos en base de datos por php

Estas en el tema de Error al comparar datos en base de datos por php en el foro de PHP en Foros del Web. Buenas tardes, Se me ha presentado un problema... quiero comparar unos datos que se encuentran en una tabla de la siguiente manera: los datos introducidos ...
  #1 (permalink)  
Antiguo 01/03/2011, 11:29
 
Fecha de Ingreso: enero-2011
Mensajes: 95
Antigüedad: 13 años, 3 meses
Puntos: 2
Pregunta Error al comparar datos en base de datos por php

Buenas tardes,

Se me ha presentado un problema... quiero comparar unos datos que se encuentran en una tabla de la siguiente manera: los datos introducidos por el administrador con los de los usuarios normales, acertados tendrán un puntaje.

Para ello utilizo la clasificación de usuarios, en mi script rank... por medio de este rank, puedo separar usuarios normales, admin, baneados y suspendidos. Ok, hasta aquí todo bien.

En el script de comparación por medio de ciclos, solicito los datos del admin y luego los de los usuarios. Por último comparo datos del admin - datos de usuarios y las opciones iguales se les da un puntaje.

El problema es, que cuando ejecuto mi script me dice que las variables no están definidas y el puntaje no se genera.

A continuación voy a colocar el fragmento de código donde puede estar el problema... espero una ayuda, gracias de antemano.

Código:
//3. Tomar los campos provenientes del formulario
		
		$valores = mysql_query("SELECT * FROM tabla WHERE rank='8'", $conexion);
		// Validar si existen resultados para la consulta
		if (@mysql_num_rows($valores) > 0)
		{
			$num = 0;
			// Ciclo para pasar por todos los renglones de los resultados
			while ($renglon = mysql_fetch_row($valores))
			{
				// Ciclo para obtener todos los campos de cada renglon de los resultados
				for ($i = 0; $i < mysql_num_fields($valores); $i++)
				{
					// Crear un array multiple: Array [ renglon ] [ campo ]
					$valores_array[$num][strtolower(mysql_field_name($valores, $i))] = $renglon[$i];
				}
				$num++;
			}
		}
		
		$usuarios = mysql_query("SELECT * FROM tabla WHERE rank='1'", $conexion);
		// Validar si existen resultados para la consulta
		if (@mysql_num_rows($usuarios) > 0)
		{
			$num = 0;
			// Ciclo para pasar por todos los renglones de los resultados
			while ($renglon = mysql_fetch_row($usuarios))
			{
				// Ciclo para obtener todos los campos de cada renglon de los resultados
				for ($i = 0; $i < mysql_num_fields($usuarios); $i++)
				{
					// Crear un array multiple: Array [ renglon ] [ campo ]
					$usuarios_array[$num][strtolower(mysql_field_name($usuarios, $i))] = $renglon[$i];
				}
				$num++;
			}
		}
		
		//definiendo variables
		
		$dato1 ='dato1';
		$dato2 = 'dato2';
		
		// Ciclo para validar los aciertos de cada usuario
		for ($i = 0; $i < count($usuarios_array); $i++)
		{
			// Iniciar el puntaje en cero para cada ciclo
			$puntaje = 0;
			
			// Validar si algun valor del usuario coincide con el administrador
			if ($valores_array[0]['dato1'] == $usuarios_array[$i]['dato1'])
			{
				// Sumarle un puntaje por cada acierto
				$puntaje += 2;
			}
			
			if ($valores_array[0] ['dato2'] == $usuarios_array[$i]['dato2'])
			{
				$puntaje += 2;	
			}
  #2 (permalink)  
Antiguo 01/03/2011, 11:52
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: Error al comparar datos en base de datos por php

Ajá, y que errores/mensajes especificos te marca y en que linea(s)?
  #3 (permalink)  
Antiguo 01/03/2011, 12:06
 
Fecha de Ingreso: enero-2011
Mensajes: 95
Antigüedad: 13 años, 3 meses
Puntos: 2
Respuesta: Error al comparar datos en base de datos por php

Gracias por responder...

Los errores son:

Notice: Undefined index: dato1 in C:\... on line 73

Notice: Undefined index: dato1 in C:\... on line 73

Notice: Undefined index: dato2 in C:\... on line 79

Notice: Undefined index: dato2 in C:\... on line 79

Las líneas 73 y 79 son las siguientes:

if ($valores_array[0]['dato1'] == $usuarios_array[$i]['dato1']) (Linea 73)

if ($valores_array[0] ['dato2'] == $usuarios_array[$i]['dato2']) (Linea 79)

Gracias de antemano.
  #4 (permalink)  
Antiguo 01/03/2011, 12:18
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: Error al comparar datos en base de datos por php

yo que creo que se sale de borde tu consulta y por eso te marca esos errores
  #5 (permalink)  
Antiguo 01/03/2011, 12:38
 
Fecha de Ingreso: enero-2011
Mensajes: 95
Antigüedad: 13 años, 3 meses
Puntos: 2
Respuesta: Error al comparar datos en base de datos por php

sale de borde? no entendí.

Serías tan amable de explicar un poco más, te lo agradezco.
  #6 (permalink)  
Antiguo 01/03/2011, 12:58
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: Error al comparar datos en base de datos por php

$usuarios_array[$i]['dato1']
$usuarios_array[$i]['dato2']

aqui usas la variable $i, quiza llega a un punto donde es mayor que el tamaño de tu array, revisa ese dato
  #7 (permalink)  
Antiguo 01/03/2011, 13:06
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 14 años, 7 meses
Puntos: 44
Respuesta: Error al comparar datos en base de datos por php

espero me haya explicado
  #8 (permalink)  
Antiguo 01/03/2011, 13:19
 
Fecha de Ingreso: enero-2011
Mensajes: 95
Antigüedad: 13 años, 3 meses
Puntos: 2
Respuesta: Error al comparar datos en base de datos por php

Posiblemente te explicaste bien, pero mis conocimientos no son muy avanzados. Estoy comenzando.

Si puedes darme una explicación un poco más extensa te lo agradecería mucho.
  #9 (permalink)  
Antiguo 01/03/2011, 15:44
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: Error al comparar datos en base de datos por php

Los campos de tu tabla se llaman dato1 y dato2 ?
Haz un print_r() de $usuarios y $valores para ver que contienen.
Y quita la @ de tus mysql_num_rows(), no es aconsejable ocultar los errores asi, es mejor depurar las consultas y manejar los posibles errores.
  #10 (permalink)  
Antiguo 01/03/2011, 15:58
 
Fecha de Ingreso: enero-2011
Mensajes: 95
Antigüedad: 13 años, 3 meses
Puntos: 2
Respuesta: Error al comparar datos en base de datos por php

Hola, gracias por responder...

No, los datos que estoy utilizando (primeramente) son MFlocal y MFvisitante.

Hice el print_r() de ambos y me arroja lo siguiente: Resource id #4Resource id #5

Y los mensajes de error siguen siendo los mismos.
  #11 (permalink)  
Antiguo 02/03/2011, 10:07
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: Error al comparar datos en base de datos por php

Me equivoque, era print_r() de $usuarios_array y $valores_array

Como sea, si tus columnas no se llaman dato1 y dato2, que esperas al intentar acceder a
$valores_array[0]['dato1'] y $valores_array[0]['dato2'] ? :/

Etiquetas: sql
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 19:45.