Autor Tema: Error al comparar datos en base de datos por php  (Leído 1035 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado manuelitox

  • Novato
  • *
  • Mensajes: 19
  • Puntuación: 1
    • Ver Perfil
Error al comparar datos en base de datos por php
« : 01 de marzo de 2011, 03:58:56 pm »
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 ranking, 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: [Seleccionar]
//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;
}

Los mensajes de error y sus respectivas líneas, son las siguientes:

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.

Desconectado el_santo

  • Usuario Dedicado
  • ***
  • Mensajes: 192
  • Puntuación: 7
  • Sexo: Masculino
    • Ver Perfil
Re:Error al comparar datos en base de datos por php
« Respuesta #1 : 01 de marzo de 2011, 08:56:32 pm »
podrias enumerar tal cual los campos ke vienen de cada query en su recpectivo orden?
Yo hablo php........!!!

Desconectado manuelitox

  • Novato
  • *
  • Mensajes: 19
  • Puntuación: 1
    • Ver Perfil
Re:Error al comparar datos en base de datos por php
« Respuesta #2 : 01 de marzo de 2011, 09:03:09 pm »
Ambos query poseen los mismos campos.

        MFlocal
   MFvisitante
   MCuartounolocal
   MCuartounovisitante
   MCuartodoslocal
   MCuartodosvisitante
   MCuartotreslocal
   MCuartotresvisitante
   MCuartofinallocal
   MCuartofinalvisitante
   Textralocal
   Textravisitante
   MAnotador
   MReboteador
   MBloqueador
   MAsistencias
   Mfaltas
   Mfaltaslocal
   Mfaltasvisitante
   Mfaltasambos
   Mperdidas
   GmayorCClocal
   GmayorCCvisitante
   GmayorCCambos
   MporcentajeTlocal
   MporcentajeTvisitante
   MporcentajeTambos
   Emascienpuntoslocal
   Emascienpuntosvisitante
   Emascienpuntosambos
   Emascienpuntosninguno
   EmenossetentaL
   EmenossetentaV
   EmenossetentaA
   EmenossetentaN
   MPerdidasL
   MPerdidasV
   MPerdidasA
   MPerdidasN

gracias por comentar.

Desconectado el_santo

  • Usuario Dedicado
  • ***
  • Mensajes: 192
  • Puntuación: 7
  • Sexo: Masculino
    • Ver Perfil
Re:Error al comparar datos en base de datos por php
« Respuesta #3 : 02 de marzo de 2011, 08:01:59 am »
Código: [Seleccionar]
$valores_array[$num][strtolower(mysql_field_name($valores, $i))] = $renglon[$i];
esta linea lee cada nombre de cada campo de la bd y la asigna de la siguiente forma

$valores_array[$num]['nombre del campo'] // donde nombre del campo es un campo de la tabla consultada o un alias de algún campo, donde obviamente no estan los campos 'dato1' y 'dato2' listados por consiguiente en $valores_array[$num]['dato1'] no esta definido el indice 'dato1'
Yo hablo php........!!!

Desconectado manuelitox

  • Novato
  • *
  • Mensajes: 19
  • Puntuación: 1
    • Ver Perfil
[SOLUCIONADO] Error al comparar datos en base de datos por php
« Respuesta #4 : 02 de marzo de 2011, 10:30:59 am »
Hola gracias por responder, pero ya solucione el problema.

Cuando coloque dato1 y dato2 fue para hacer referencia en el post, meramente informativo. Los campos reales fue los que coloque cuando lo pediste.

El problema radicaba en que, curiosamente, el script no detectaba la variable si la colocaba con mayusculas... por ejemplo: MFlocal. En cambio, realice una prueba con mflocal y funciono a la perfección.

Según estuve leyendo hay versions de sql que no aceptan o mejor dicho no reconocen las mayusculas y ese fue mi problema.

Gracias al pana que estuvo pendiente, comentando en el post.


Desconectado el_santo

  • Usuario Dedicado
  • ***
  • Mensajes: 192
  • Puntuación: 7
  • Sexo: Masculino
    • Ver Perfil
Re:[SOLUCIONADO] Error al comparar datos en base de datos por php
« Respuesta #5 : 02 de marzo de 2011, 11:11:23 am »
Hola gracias por responder, pero ya solucione el problema.

Cuando coloque dato1 y dato2 fue para hacer referencia en el post, meramente informativo. Los campos reales fue los que coloque cuando lo pediste.

El problema radicaba en que, curiosamente, el script no detectaba la variable si la colocaba con mayusculas... por ejemplo: MFlocal. En cambio, realice una prueba con mflocal y funciono a la perfección.

Según estuve leyendo hay versions de sql que no aceptan o mejor dicho no reconocen las mayusculas y ese fue mi problema.

Gracias al pana que estuvo pendiente, comentando en el post.


Efectivamente comprueba lo ke te respondi asi como dato1 no existia MFlocal tampoco. es por ello te pedi listaras los nombres de los campos.

en futuras entregas trata de especificar esos pekeños cambios para uno tomarlos en cuenta.
Yo hablo php........!!!

PHP de Venezuela

Re:[SOLUCIONADO] Error al comparar datos en base de datos por php
« Respuesta #5 : 02 de marzo de 2011, 11:11:23 am »

 

PHP de Venezuela on Facebook