Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO Error al registrar un resultado en mysql con php

Estas en el tema de Error al registrar un resultado en mysql con php en el foro de PHP en Foros del Web. Saludos Amigos. Quisiera que, me ayudaran con un problema que tengo. Lo que quiero es, insertar datos de un formulario que, tiene información de un ...
  #1 (permalink)  
Antiguo 19/06/2020, 13:50
 
Fecha de Ingreso: septiembre-2011
Mensajes: 34
Antigüedad: 9 años
Puntos: 0
Pregunta Error al registrar un resultado en mysql con php

Saludos Amigos.
Quisiera que, me ayudaran con un problema que tengo.

Lo que quiero es, insertar datos de un formulario que, tiene información de un alumno y sus notas, pero, también, quiero agregar una suma, la cual se calcula solo, es decir, toma los valores que están el los campos de texto y saca un promedio con ellos.
Bien, el tema es que, la operación la coloco dentro de este código
Código PHP:
Ver original
  1. if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  2.  
  3.          $suma = "0";
  4.      $n1 = $_POST['n1'];
  5.      $n2 = $_POST['n2'];
  6.      $n3 = $_POST['n3'];
  7.      $suma = $n1+$n2+$n3;
  8.    
  9.      include("../includes/funciones.php");
  10.    
  11.     if (chekaAsignatura($_POST["IdAsignatura"], $_POST["NumMatricula"])){  
  12.    
  13.         $mensaje = "La asignatura, ya ha sido asignada al alumno en este semestre";
  14.         echo "<script>";
  15.         echo "alert('$mensaje');";  
  16.         //header("Location:notas_edit.php");
  17.         //echo "window.location.href = 'admin/notas_edit.php?IdAsignatura=$_POST[IdAsignatura]&RecordRun=$_POST[run_alumno]&IdSem=$_POST[IdSemestre]';";
  18.         echo "</script>";  
  19.      
  20.     }else{
  21.             $insertSQL = sprintf("INSERT INTO calificacion (NumMatricula, IdAsignatura, IdSemestre, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, promedio) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
  22.                        GetSQLValueString($_POST['NumMatricula'], "int"),
  23.                        GetSQLValueString($_POST['IdAsignatura'], "int"),
  24.                        GetSQLValueString($_POST['IdSemestre'], "int"),
  25.                        GetSQLValueString($_POST['n1'], "int"),
  26.                        GetSQLValueString($_POST['n2'], "int"),
  27.                        GetSQLValueString($_POST['n3'], "int"),
  28.                        GetSQLValueString($_POST['n4'], "int"),
  29.                        GetSQLValueString($_POST['n5'], "int"),
  30.                        GetSQLValueString($_POST['n6'], "int"),
  31.                        GetSQLValueString($_POST['n7'], "int"),
  32.                        GetSQLValueString($_POST['n8'], "int"),
  33.                        GetSQLValueString($_POST['n9'], "int"),
  34.                        GetSQLValueString($_POST['n10'], "int"),
  35.                        GetSQLValueString($_POST[$suma], "decimal"));
  36.  
  37.   mysql_select_db($database_Conn, $Conn);
  38.   $Result1 = mysql_query($insertSQL, $Conn);
  39.  
  40.   $insertGoTo = "../admin/notas_lista.php?NMatricula=".$_POST["NumMatricula"]."&IdSem=".$_POST['IdSemestre']."&sum=".$suma;
  41.   if (isset($_SERVER['QUERY_STRING'])) {
  42.     $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
  43.     $insertGoTo .= $_SERVER['QUERY_STRING'];
  44.   }
  45.   header(sprintf("Location: %s", $insertGoTo));
  46. }
  47. }
realiza bien la insersión, pero, cuando veo la base de datos me muestra el valor 0,99 de la suma realizada. Algo no estoy viendo. ojalá me puedan ayudar. Gracias.
  #2 (permalink)  
Antiguo 19/06/2020, 15:03
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.096
Antigüedad: 12 años, 2 meses
Puntos: 2231
Respuesta: Error al registrar un resultado en mysql con php

¿Por qué pones tipo 'decimal' a $suma, no debería ser 'int' también?
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 19/06/2020, 16:46
 
Fecha de Ingreso: septiembre-2011
Mensajes: 34
Antigüedad: 9 años
Puntos: 0
Respuesta: Error al registrar un resultado en mysql con php

Le he puesto int, decimal, real, doble, y nada.
De hecho, cuando le pongo int, aproxima y lo cambia a 1.
Cuando hago eso mismo, pero concatento la variable $suma a $insertGoTo= en la otra página si muestra el valor de la suma.
El problema está, cuando la guarda en mysql.

Última edición por jose_fc; 19/06/2020 a las 16:53
  #4 (permalink)  
Antiguo 19/06/2020, 18:06
 
Fecha de Ingreso: septiembre-2011
Mensajes: 34
Antigüedad: 9 años
Puntos: 0
De acuerdo Respuesta: Error al registrar un resultado en mysql con php

He resuelto el problema, hice una página de funciones.php y llamé a la función.
Código PHP:
Ver original
  1. pasando resultado de la funcion a $_POST['promedio'], antes de ejecutar la query.
  2. $_POST['promedio'] = suma($_POST['n1'],$_POST['n2'],$_POST['n3']);
  3.        
  4.             $insertSQL = sprintf("INSERT INTO calificacion (NumMatricula, IdAsignatura, IdSemestre, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, promedio) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
  5.                        GetSQLValueString($_POST['NumMatricula'], "int"),
  6.                        GetSQLValueString($_POST['IdAsignatura'], "int"),
  7.                        GetSQLValueString($_POST['IdSemestre'], "int"),
  8.                        GetSQLValueString($_POST['n1'], "int"),
  9.                        GetSQLValueString($_POST['n2'], "int"),
  10.                        GetSQLValueString($_POST['n3'], "int"),
  11.                        GetSQLValueString($_POST['n4'], "int"),
  12.                        GetSQLValueString($_POST['n5'], "int"),
  13.                        GetSQLValueString($_POST['n6'], "int"),
  14.                        GetSQLValueString($_POST['n7'], "int"),
  15.                        GetSQLValueString($_POST['n8'], "int"),
  16.                        GetSQLValueString($_POST['n9'], "int"),
  17.                        GetSQLValueString($_POST['n10'], "int"),
  18.                GetSQLValueString($_POST['promedio'], "int"));
  19.  
  20. mysql_select_db($database_Conn, $Conn);
  21. $Result1 = mysql_query($insertSQL, $Conn);
  22.  
  23. $insertGoTo = "../admin/notas_lista.php?NMatricula=".$_POST["NumMatricula"]."&IdSem=".$_POST['IdSemestre']."&sum=".$suma;



La zona horaria es GMT -6. Ahora son las 02:34.