Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Mysql comparaciones

Estas en el tema de Mysql comparaciones en el foro de PHP en Foros del Web. Buenos dias, quisiera saber si me podrian ayudar a realizar una comparacion obteniendo datos de mysql, tengo las siguientes tablas y campos que me interesan. ...
  #1 (permalink)  
Antiguo 31/05/2015, 09:19
Avatar de yoyo_38tuzo  
Fecha de Ingreso: febrero-2015
Mensajes: 44
Antigüedad: 9 años, 2 meses
Puntos: 0
Mysql comparaciones

Buenos dias, quisiera saber si me podrian ayudar a realizar una comparacion obteniendo datos de mysql, tengo las siguientes tablas y campos que me interesan.

tbl_imf
-imf

tbl_emf
-emf

tbl_ima
-ima

tbl_ema
-ema

tbl_familiares
-num_ filas

Necesito mandar a traer estos valores de la base de datos y hacer una comparacion por medio de una suma, ya sumado todos los campos realizo la comparacion

0 a 5 = 1
6 a 10 = 2
11 a 15= 3
16 a 20 = 4

y almacenar el resultado en mi tbl_promedios, que es lo que podria hacer? muchas gracias
  #2 (permalink)  
Antiguo 31/05/2015, 11:35
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Mysql comparaciones

¿Podrías mostrar el código que tienes elaborado para tener un punto de partida?
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 31/05/2015, 20:18
Avatar de yoyo_38tuzo  
Fecha de Ingreso: febrero-2015
Mensajes: 44
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: Mysql comparaciones

Cita:
Iniciado por Alexis88 Ver Mensaje
¿Podrías mostrar el código que tienes elaborado para tener un punto de partida?
Lo que pasa que aun no se como realizarlo, es por eso que no puse nada o a que te refieres del codigo?
  #4 (permalink)  
Antiguo 31/05/2015, 20:30
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Mysql comparaciones

Cita:
Iniciado por yoyo_38tuzo Ver Mensaje
a que te refieres del codigo?
La que usas para tomar los datos de la base de datos ya que debes de saber que JavaScript se ejecuta en el lado del cliente y eso debes de hacerlo en el lado del servidor, con algún lenguaje como PHP, ASP o JSP o incluso Node.js que te permita realizar la consulta y devolver los resultados al lado del cliente y así los puedas manipular con JavaScript.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 31/05/2015 a las 20:37 Razón: Error gramatical
  #5 (permalink)  
Antiguo 31/05/2015, 21:44
Avatar de yoyo_38tuzo  
Fecha de Ingreso: febrero-2015
Mensajes: 44
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: Mysql comparaciones

Cita:
Iniciado por Alexis88 Ver Mensaje
La que usas para tomar los datos de la base de datos ya que debes de saber que JavaScript se ejecuta en el lado del cliente y eso debes de hacerlo en el lado del servidor, con algún lenguaje como PHP, ASP o JSP o incluso Node.js que te permita realizar la consulta y devolver los resultados al lado del cliente y así los puedas manipular con JavaScript.

Saludos
Claro aquí lo tengo, lo que pasa es que no se como almacenarlos en las cajas de texto y hacer la comparación

Código PHP:
Ver original
  1. <?php
  2.     include("conexion.php");
  3.     $con=mysql_connect($host, $user, $pass)or die("Problemas al conectar");
  4.         mysql_select_db($db, $con)or die("Problemas al conectar a la BD");
  5. $resultado = mysql_query("SELECT ema FROM tbl_ema WHERE matricula = '".$id_al."'");
  6. if (!$resultado) {
  7.     echo 'No se pudo ejecutar la consulta: ' . mysql_error();
  8.     exit;
  9. }
  10. $fila = mysql_fetch_row($resultado);
  11.  
  12. echo $fila[0];
  13. ?>

el id_al es una variable que paso por url de los formularios anteriores, me imagino que tengo que hacer las 4 consultas para obtener los datos, solo he puesto esa, ya la cale con un valor estatico y si me obtiene los datos.
  #6 (permalink)  
Antiguo 31/05/2015, 23:38
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Mysql comparaciones

¿Ese código PHP está en el mismo archivo en el que están tus cajas de texto? Porque si es así, solo tendrías que imprimir los valores en las cajas de texto como valores.

Por ejemplo:
Código PHP:
Ver original
  1. <input type = "text" value = "<?php echo $variable; ?>" />

Y ya teniendo las cajas de texto sus respectivos valores, pues invocar una función en JavaScript que hagas las comparaciones.

Por ejemplo:

Código HTML:
Ver original
  1. <input type = "text" id = "caja1" value = "<?php echo $variable1; ?>" />
  2. <input type = "text" id = "caja2" value = "<?php echo $variable2; ?>" />
  3. <button onclick = "comparar()">Comparar valores</button>

Código Javascript:
Ver original
  1. function comparar(){
  2.     if (caja1.value > caja2.value){
  3.         alert("El valor de la primera caja es mayor que el de la segunda");
  4.     }
  5.     else if (caja2.value > caja1.value){
  6.         alert("El valor de la segunda caja es mayor que el de la primera");
  7.     }
  8.     else{
  9.         alert("Ambos valores son iguales");
  10.     }
  11. }

En caso de que el código PHP esté en otro archivo, te aconsejo usar Ajax.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #7 (permalink)  
Antiguo 01/06/2015, 01:05
Avatar de yoyo_38tuzo  
Fecha de Ingreso: febrero-2015
Mensajes: 44
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: Mysql comparaciones

Cita:
Iniciado por Alexis88 Ver Mensaje
¿Ese código PHP está en el mismo archivo en el que están tus cajas de texto? Porque si es así, solo tendrías que imprimir los valores en las cajas de texto como valores.

Por ejemplo:
Código PHP:
Ver original
  1. <input type = "text" value = "<?php echo $variable; ?>" />

Y ya teniendo las cajas de texto sus respectivos valores, pues invocar una función en JavaScript que hagas las comparaciones.

Por ejemplo:

Código HTML:
Ver original
  1. <input type = "text" id = "caja1" value = "<?php echo $variable1; ?>" />
  2. <input type = "text" id = "caja2" value = "<?php echo $variable2; ?>" />
  3. <button onclick = "comparar()">Comparar valores</button>

Código Javascript:
Ver original
  1. function comparar(){
  2.     if (caja1.value > caja2.value){
  3.         alert("El valor de la primera caja es mayor que el de la segunda");
  4.     }
  5.     else if (caja2.value > caja1.value){
  6.         alert("El valor de la segunda caja es mayor que el de la primera");
  7.     }
  8.     else{
  9.         alert("Ambos valores son iguales");
  10.     }
  11. }

En caso de que el código PHP esté en otro archivo, te aconsejo usar [URL="http://www.maestrosdelweb.com/consultaajax/"]Ajax[/URL].

Saludos
Ya realice lo siguiente:

Código PHP:
Ver original
  1. <?php
  2.     include("conexion.php");
  3.     $con=mysql_connect($host, $user, $pass)or die("Problemas al conectar");
  4.         mysql_select_db($db, $con)or die("Problemas al conectar a la BD");
  5. //consulta1
  6. $resultado1 = mysql_query("SELECT imf FROM tbl_imf WHERE matricula = '".$id_al."'");
  7. if (!$resultado1) {
  8.     echo 'No se pudo ejecutar la consulta 1: ' . mysql_error();
  9.     exit;
  10. }
  11. $fila1 = mysql_fetch_row($resultado1);
  12.  
  13. echo $fila1[0];
  14. //consulta2
  15. $resultado2 = mysql_query("SELECT emf FROM tbl_emf WHERE matricula = '".$id_al."'");
  16. if (!$resultado2) {
  17.     echo 'No se pudo ejecutar la consulta 2: ' . mysql_error();
  18.     exit;
  19. }
  20. $fila2 = mysql_fetch_row($resultado2);
  21.  
  22. echo $fila2[0];
  23. //consulta3
  24. $resultado3 = mysql_query("SELECT emf FROM tbl_emf WHERE matricula = '".$id_al."'");
  25. if (!$resultado3) {
  26.     echo 'No se pudo ejecutar la consulta 3: ' . mysql_error();
  27.     exit;
  28. }
  29. $fila3 = mysql_fetch_row($resultado3);
  30.  
  31. echo $fila3[0];
  32. //consulta4
  33. $resultado4 = mysql_query("SELECT ema FROM tbl_ema WHERE matricula = '".$id_al."'");
  34. if (!$resultado4) {
  35.     echo 'No se pudo ejecutar la consulta 4: ' . mysql_error();
  36.     exit;
  37. }
  38. $fila4 = mysql_fetch_row($resultado4);
  39.  
  40. echo $fila4[0];
  41. //consulta5
  42. $resultado5 = mysql_query("SELECT num_filas FROM tbl_familiares WHERE matricula = '".$id_al."'");
  43. if (!$resultado5) {
  44.     echo 'No se pudo ejecutar la consulta 5: ' . mysql_error();
  45.     exit;
  46. }
  47. $fila5 = mysql_fetch_row($resultado5);
  48.  
  49. echo $fila5[0];
  50. ?>
  51.     <form action="<?php echo $editFormAction; ?>" method="post" name="form1" id="form1">
  52.     <tr>
  53.     <td width="231" align="center">
  54.       <p>
  55.         <label for="imf"></label>
  56.         <input type="text" name="imf" id="imf" value="<?php echo $fila1[0] ?>"/>
  57.       </p>
  58.       <p>
  59.         <label for="emf"></label>
  60.         <input type="text" name="emf" id="emf"  value="<?php echo $fila2[0] ?>"/>
  61.       </p>
  62.       <p>
  63.         <label for="ima"></label>
  64.         <input type="text" name="ima" id="ima" value="<?php echo $fila3[0] ?>"/>
  65.       </p>
  66.       <p>
  67.         <label for="ema"></label>
  68.         <input type="text" name="ema" id="ema" value="<?php echo $fila4[0] ?>"/>
  69.       </p>
  70.       <p>
  71.         <label for="num_filas"></label>
  72.         <input type="text" name="num_filas" id="num_filas" value="<?php echo $fila5[0] ?>"/>
  73.       </p>
  74.     </td>
  75.     <td width="533" align="center">
  76.     <table align="center">
  77.       <tr valign="baseline">
  78.         <td nowrap="nowrap" align="right">&nbsp;</td>
  79.         <td><input name="total" type="text" size="32" class="total_promedio"/></td>
  80.       </tr>
  81.       <tr valign="baseline">
  82.         <td nowrap="nowrap" align="right">&nbsp;</td>
  83.         <td><input name="promedio" type="hidden" size="32" class="promedio_final"/></td>
  84.       </tr>
  85.       <tr valign="baseline">
  86.         <td nowrap="nowrap" align="right">&nbsp;</td>
  87.         <td><input type="submit" value="Finalizar encuesta" onClick="suma();"/></td>
  88.       </tr>
  89.     </table>
  90.       <input type="hidden" name="MM_insert" value="form1" />
  91.       </form>
  92.       <p>&nbsp;</p></td>
  93.     <td width="228">&nbsp;</td>
  94.   </tr>
  95.   <tr>

La comparacion js:

Código ASP:
Ver original
  1. function suma(){
  2. suma=document.form1;
  3. suma.total.value=parseInt(suma.imf.value)+parseInt(suma.emf.value)+parseInt(suma.ima.value)+parseInt(suma.ema.value)+parseInt(suma.num_filas.value);
  4. var res =  get_total();
  5. $(".promedio_final").val(res);
  6. }
  7. function get_total()
  8. {
  9.   var r = 0;
  10.   var total = $(".total_promedio").val();
  11.   if (total <= 5)
  12.   {
  13.     return r = 1 ;
  14.   }
  15.   if(total >= 6 && total <= 10)
  16.   {
  17.     return r = 2;
  18.   }
  19.   if(total >= 11 && total <= 15)
  20.   {
  21.     return r = 3;
  22.   }
  23.   if (total >= 16 && total <= 20)
  24.   {
  25.     return r = 4;
  26.   }
  27.   if(total >= 21 && total <=25)
  28.   {
  29.     return r = 5;
  30.   }
  31. }

Solo me funciona la suma, pero no me hace la comparacion de los valores.
  #8 (permalink)  
Antiguo 01/06/2015, 01:50
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Mysql comparaciones

No debes de nombrar a la variable suma como la función. Usa otro nombre.

DEMO
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 01/06/2015 a las 01:56 Razón: Demo
  #9 (permalink)  
Antiguo 01/06/2015, 01:58
Avatar de yoyo_38tuzo  
Fecha de Ingreso: febrero-2015
Mensajes: 44
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: Mysql comparaciones

Cita:
Iniciado por Alexis88 Ver Mensaje
No debes de nombrar a la variable suma como la función. Usa otro nombre.

[URL="http://jsbin.com/risice/1/edit?js,output"]DEMO[/URL]
ya lo hice pero me sigue arrojando el mismo resultado:
Column 'promedio' cannot be null
  #10 (permalink)  
Antiguo 01/06/2015, 02:01
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Mysql comparaciones

Mira la manera en la que lo hice en el demo que te dejé y adáptalo. No está difícil.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #11 (permalink)  
Antiguo 01/06/2015, 02:10
Avatar de yoyo_38tuzo  
Fecha de Ingreso: febrero-2015
Mensajes: 44
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: Mysql comparaciones

Cita:
Iniciado por Alexis88 Ver Mensaje
Mira la manera en la que lo hice en el demo que te dejé y adáptalo. No está difícil.

Saludos
Disculpa, no habia visto el demo, gracias, te platico en un rato como me fue
  #12 (permalink)  
Antiguo 01/06/2015, 02:21
Avatar de yoyo_38tuzo  
Fecha de Ingreso: febrero-2015
Mensajes: 44
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: Mysql comparaciones

Lo he adaptado y no me funciona :/
  #13 (permalink)  
Antiguo 01/06/2015, 02:49
Avatar de yoyo_38tuzo  
Fecha de Ingreso: febrero-2015
Mensajes: 44
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: Mysql comparaciones

Le di muchas vueltas y despues de unir tu codigo con el mio e podido solucionar el problema, muchas gracias por ayudar... dejo el codigo:

Código Javascript:
Ver original
  1. function suma(){
  2. s=document.form1;
  3. s.total.value=parseInt(s.imf.value)+parseInt(s.emf.value)+parseInt(s.ima.value)+parseInt(s.ema.value)+parseInt(s.num_filas.value);
  4. s.promedio.value = get_total(s.total.value);
  5. }
  6. function get_total(total){
  7.   var r = 0;
  8.   if (total <= 5)
  9.   {
  10.     r = 1 ;
  11.   }
  12.   if(total >= 6 && total <= 10)
  13.   {
  14.     r = 2;
  15.   }
  16.   if(total >= 11 && total <= 15)
  17.   {
  18.     r = 3;
  19.   }
  20.   if (total >= 16 && total <= 20)
  21.   {
  22.     r = 4;
  23.   }
  24.   if(total >= 21 && total <=25)
  25.   {
  26.     r = 5;
  27.   }
  28.   return r;
  29. }

Etiquetas: comparaciones, javascript, mysql, valor
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 03:59.