Foros del Web » Programando para Internet » PHP »

Operacion aritmetica mal hecha??

Estas en el tema de Operacion aritmetica mal hecha?? en el foro de PHP en Foros del Web. Tengo la siguiente pagina de edicion de la base de datos Código PHP: <?php  require_once( 'Connections/Apuesta.php' ); function  GetSQLValueString ( $theValue ,  $theType ,  $theDefinedValue  ...
  #1 (permalink)  
Antiguo 26/09/2008, 10:31
 
Fecha de Ingreso: agosto-2006
Mensajes: 173
Antigüedad: 17 años, 8 meses
Puntos: 1
Operacion aritmetica mal hecha??

Tengo la siguiente pagina de edicion de la base de datos

Código PHP:
<?php require_once('Connections/Apuesta.php');
function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? "'" doubleval($theValue) . "'" "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}

$editFormAction $_SERVER['PHP_SELF'];
if (isset(
$_SERVER['QUERY_STRING'])) {
  
$editFormAction .= "?" htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset(
$_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
  
$updateSQL sprintf("UPDATE apuestas SET fecha=%s, hora=%s, evento=%s, deporte=%s, usuario=%s, cuota=%s, seleccion=%s, resultado=%s, comentario=%s WHERE id=%s",
                       
GetSQLValueString($_POST['fecha'], "date"),
                       
GetSQLValueString($_POST['hora'], "text"),
                       
GetSQLValueString($_POST['evento'], "text"),
                       
GetSQLValueString($_POST['deporte'], "text"),
                       
GetSQLValueString($_POST['usuario'], "text"),
                       
GetSQLValueString($_POST['cuota'], "text"),
                       
GetSQLValueString($_POST['seleccion'], "text"),
                       
GetSQLValueString($_POST['resultado'], "text"),
                       
GetSQLValueString($_POST['comentario'], "text"),
                       
GetSQLValueString($_POST['id'], "int"));

  
mysql_select_db($database_Apuesta$Apuesta);
  
$Result1 mysql_query($updateSQL$Apuesta) or die(mysql_error());

  
$updateGoTo "Edicionpicks.php";
  if (isset(
$_SERVER['QUERY_STRING'])) {
    
$updateGoTo .= (strpos($updateGoTo'?')) ? "&" "?";
    
$updateGoTo .= $_SERVER['QUERY_STRING'];
  }
  
header(sprintf("Location: %s"$updateGoTo));
}

$colname_Recordset1 "-1";
if (isset(
$_GET['recordID'])) {
  
$colname_Recordset1 = (get_magic_quotes_gpc()) ? $_GET['recordID'] : addslashes($_GET['recordID']);
}
mysql_select_db($database_Apuesta$Apuesta);
$query_Recordset1 sprintf("SELECT * FROM apuestas WHERE id = %s ORDER BY id DESC"$colname_Recordset1);
$Recordset1 mysql_query($query_Recordset1$Apuesta) or die(mysql_error());
$row_Recordset1 mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 mysql_num_rows($Recordset1);
$maxRows_DetailRS1 50;
$pageNum_DetailRS1 0;
if (isset(
$_GET['pageNum_DetailRS1'])) {
  
$pageNum_DetailRS1 $_GET['pageNum_DetailRS1'];
}
$startRow_DetailRS1 $pageNum_DetailRS1 $maxRows_DetailRS1;

mysql_select_db($database_Apuesta$Apuesta);
$recordID $_GET['recordID'];
$query_DetailRS1 "SELECT * FROM apuestas WHERE id = $recordID ORDER BY id DESC";
$query_limit_DetailRS1 sprintf("%s LIMIT %d, %d"$query_DetailRS1$startRow_DetailRS1$maxRows_DetailRS1);
$DetailRS1 mysql_query($query_limit_DetailRS1$Apuesta) or die(mysql_error());
$row_DetailRS1 mysql_fetch_assoc($DetailRS1);

if (isset(
$_GET['totalRows_DetailRS1'])) {
  
$totalRows_DetailRS1 $_GET['totalRows_DetailRS1'];
} else {
  
$all_DetailRS1 mysql_query($query_DetailRS1);
  
$totalRows_DetailRS1 mysql_num_rows($all_DetailRS1);
}
$totalPages_DetailRS1 ceil($totalRows_DetailRS1/$maxRows_DetailRS1)-1;
$usuario=$row_DetailRS1['usuario'];
mysql_select_db($database_Apuesta$Apuesta);
$query_Recordset2 "SELECT * FROM concursantes WHERE usuario = '$usuario' AND puntuacion";
$Recordset2 mysql_query($query_Recordset2$Apuesta) or die(mysql_error());
$row_Recordset2 mysql_fetch_assoc($Recordset2);
$totalRows_Recordset2 mysql_num_rows($Recordset2);
?>
Operaciones aritmeticas

Código PHP:
<select name='resultado'>
                  <option value='<?php echo $row_DetailRS1['resultado']; ?>'><?php echo $row_DetailRS1['resultado']; ?></option>

          <option value='ACERTADO''<?php
$puntos
=$row_Recordset2['puntuacion'];
$cuota=$row_Recordset1['cuota'];          
$variable_a_sumar=($cuota/10);
$suma=$row_Recordset2['puntuacion']+$variable_a_sumar;
mysql_query("UPDATE concursantes SET puntuacion=$suma WHERE usuario = '$usuario' AND puntuacion=$puntos"); 
 
?>'>ACERTADO </option>
          <option value='FALLADO''<?php
$puntos
=$row_Recordset2['puntuacion'];
$cuota=$row_Recordset1['cuota'];              
$variable_a_sumar=($cuota/10);
$suma=(($row_Recordset2['puntuacion'])-($variable_a_sumar));
mysql_query("UPDATE concursantes SET puntuacion=$suma WHERE usuario = '$usuario' AND puntuacion=$puntos"); 
 
?>'>Fallado </option>
          <option value='ANULADO'>Anulado </option>
                    <option value='PENDIENTE'>Pendiente</option>
        </select>
Estoy teniendo los siguientes problemas, cuando entro en la página desde la página de edicion, enlazando con GetSQLValueString($_POST['id'], "int"), automaticamente me hace la operacion aritmetica

Código PHP:
 <option value='ACERTADO''<?php
$puntos
=$row_Recordset2['puntuacion'];
$cuota=$row_Recordset1['cuota'];          
$variable_a_sumar=($cuota/10);
$suma=$row_Recordset2['puntuacion']+$variable_a_sumar;
mysql_query("UPDATE concursantes SET puntuacion=$suma WHERE usuario = '$usuario' AND puntuacion=$puntos"); 
 
?>'>ACERTADO </option>
Despues si pongo la opcion ACERTADO del formulario no me la vuelve a hacer, pero me la hace antes de ponerlo

Si intento restar no me deja, aplico la siguiente formula

Código PHP:
          <option value='FALLADO''<?php
$puntos
=$row_Recordset2['puntuacion'];
$cuota=$row_Recordset1['cuota'];              
$variable_a_sumar=($cuota/10);
$suma=(($row_Recordset2['puntuacion'])-($variable_a_sumar));
mysql_query("UPDATE concursantes SET puntuacion=$suma WHERE usuario = '$usuario' AND puntuacion=$puntos"); 
 
?>'>Fallado </option>
Por cierto el formulario se encabeza asi

Código PHP:
<form method="post" name="form1" action="<?php echo $editFormAction?>">
Me podeis hechar una mano, lo que pretendo es que al poner en el select del formulario ACERTADO me haga una operacion aritmetica y me la envie a otra tabla, que seria la consulta Recordset2 y poder restar tambien si pongo FALLADO, pero solo cuando le de al boton actualizar registro.

Se que no va aqui, pero aprovecho, en Mysql el campo puntuacion lo tengo como float y con atributo UNSIGNED, como tengo que ponerlos para que acepte decimales hasta tres cifras y que pueda ser un numero en negativo

Muchas gracias por vuestra ayuda, haber si me entero que llevo toda la tarde con la cabeza loca con esto
  #2 (permalink)  
Antiguo 26/09/2008, 13:04
 
Fecha de Ingreso: agosto-2006
Mensajes: 173
Antigüedad: 17 años, 8 meses
Puntos: 1
Respuesta: Operacion aritmetica mal hecha??

Voy a intentar simplificar un poco la pregunta.

Tengo un formulario, dentro de ese formulario tengo un select

Código PHP:
 <select name='resultado'>
                  <option value='<?php echo $row_DetailRS1['resultado']; ?>'><?php echo $row_DetailRS1['resultado']; ?></option>

           <option value='ACERTADO''<?php
$puntos
=$row_Recordset2['puntuacion'];
$cuota=$row_Recordset1['cuota'];          
$variable_a_sumar=($cuota/10);
$suma=$row_Recordset2['puntuacion']+$variable_a_sumar;
mysql_query("UPDATE concursantes SET puntuacion=$suma WHERE usuario = '$usuario' AND puntuacion=$puntos"); 
 
?>'>ACERTADO </option>
  <option value='FALLADO''<?php
$puntos
=$row_Recordset2['puntuacion'];
$cuota=$row_Recordset1['cuota'];              
$variable_a_sumar=($cuota/10);
$suma=(($row_Recordset2['puntuacion'])-($variable_a_sumar));
mysql_query("UPDATE concursantes SET puntuacion=$suma WHERE usuario = '$usuario' AND puntuacion=$puntos"); 
 
?>'>Fallado </option>
          <option value='ANULADO'>Anulado </option>
                    <option value='PENDIENTE'>Pendiente</option>
        </select>
El select tiene cuatro opciones, ACERTADO, FALLADO, ANULADO y PENDIENTE.

Lo que pretendo es que cuando seleccione ACERTADO al darle al boton submit, me haga la operación de sumar a un campo de la db, si selecciono FALLADO al darle al boton submit, me haga una operacion de restar.

Problemas

Cuando entro en la página donde esta el formulario, directamente me suma como si ya hubiese seleccionado ACERTADO y lo hubiese enviado, una vez hago la operacion no me lo suma, si seleccion FALLADO no me hace la operacion.

No se si las operaciones hay que hacerlas donde las tengo puestas, pero me lleva toda con calenton de cabeza

¿Alguien me puede ayudar?, muchas gracias por interesarse en el problema
  #3 (permalink)  
Antiguo 26/09/2008, 15:18
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 18 años
Puntos: 50
Respuesta: Operacion aritmetica mal hecha??

yo haria algo asi como esto:
"Si quiere que sea apenas se selecciona el valro de la lsita sin necesidad de pulsar el boton le toca hacer el submit en una funcion javascript y llamarla en el evento onchange de la lista"

Código PHP:
<?
$VarCalcular 
$_REQUEST['Calcular']; 
if (isset(
$VarCalcular))
{
$VarOperacion $_POST['Operacion'];
if (
$VarOperacion == 1)
{
      
// realiza un calculo
}
else if (
$VarOperacion == 2)
{
     
// realzia otro calculo o lo que sea
}
}
?>
<form method='post'>
<select name='Operacion' id='Operacion'>
<option value='1'>Aceptado</option>
<option value='2'>Cancelado</option>
</select>
<input type='submit' name='Calcular' id='Calcular' value='Calcular'>
</form>
  #4 (permalink)  
Antiguo 27/09/2008, 05:45
 
Fecha de Ingreso: agosto-2006
Mensajes: 173
Antigüedad: 17 años, 8 meses
Puntos: 1
Respuesta: Operacion aritmetica mal hecha??

Yo apenas he tocado Javasript, me podrías indicar como hacerlo, muchas gracias por tu ayuda
  #5 (permalink)  
Antiguo 27/09/2008, 06:09
 
Fecha de Ingreso: agosto-2006
Mensajes: 173
Antigüedad: 17 años, 8 meses
Puntos: 1
Respuesta: Operacion aritmetica mal hecha??

Mira lo he hecho tal que así, pego el formulario entero

Código PHP:
<?
$VarCalcular 
$_REQUEST['Actualizar']; 
if (isset(
$VarCalcular))
{
$VarOperacion $_POST['resultado'];
if (
$VarOperacion == 1)
{
$puntos=$row_Recordset2['puntuacion'];
$cuota=$row_Recordset1['cuota'];          
$variable_a_sumar=($cuota/10);
$suma=$row_Recordset2['puntuacion']+$variable_a_sumar;
mysql_query("UPDATE concursantes SET puntuacion=$suma WHERE usuario = '$usuario' AND puntuacion=$puntos");  
}
else if (
$VarOperacion == 2)
{
$puntos=$row_Recordset2['puntuacion'];
$cuota=$row_Recordset1['cuota'];              
$variable_a_sumar=($cuota/10);
$suma=(($row_Recordset2['puntuacion'])-($variable_a_sumar));
mysql_query("UPDATE concursantes SET puntuacion=$suma WHERE usuario = '$usuario' AND puntuacion=$puntos");  
}
}
?> 
<form method="post" name="form1" action="<?php echo $editFormAction?>">
  <table align="center">
    <tr valign="baseline">
      <td bgcolor="#000066"><div align="center"><strong><span class="Estilo6">ID</span></strong></div></td>
      <td bgcolor="#E9E9E9"><div align="center"><span class="Estilo15"><?php echo $row_Recordset1['id']; ?></span></div></td>
    </tr>
    <tr valign="baseline">
      <td bgcolor="#000066"><span class="Estilo11">Fecha</span></td>
      <td bgcolor="#E9E9E9"><input name="fecha" type="text" value="<?php echo $row_DetailRS1['fecha']; ?>" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td bgcolor="#000066"><span class="Estilo11">Hora</span></td>
      <td bgcolor="#E9E9E9"><input name="hora" type="text" value="<?php echo $row_DetailRS1['hora']; ?>" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td bgcolor="#000066"><span class="Estilo11">Evento</span></td>
      <td bgcolor="#E9E9E9"><input name="evento" type="text" value="<?php echo $row_Recordset1['evento']; ?>" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td bgcolor="#000066"><span class="Estilo11">Usuario</span></td>
      <td bgcolor="#E9E9E9"><input name="usuario" type="text" value="<?php echo $row_Recordset1['usuario']; ?>" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td bgcolor="#000066"><span class="Estilo11">Deporte</span></td>
      <td bgcolor="#E9E9E9"><span class="Estilo14">
        <select name='deporte'>
         <option value='<?php echo $row_DetailRS1['deporte']; ?>'><?php echo $row_DetailRS1['deporte']; ?></option>
          <option value='futbol.gif'>Futbol </option>
          <option value='baloncesto.gif'>Baloncesto </option>
          <option value='balonmano.gif'>Balonmano </option>
          <option value='Beisbol.gif'>Beisbol </option>
          <option value='Deportes.gif'>Deportes </option>
          <option value='formula1.gif'>Formula 1 </option>
          <option value='motociclismo.gif'>Motociclismo </option>
          <option value='rugby.gif'>Rugby </option>
          <option value='hockey.gif'>Hockey </option>
          <option value='tenis.gif'>Tenis </option>
        </select>
      </span></td>
    </tr>
    <tr valign="baseline">
      <td bgcolor="#000066"><span class="Estilo11">Cuota</span></td>
      <td bgcolor="#E9E9E9"><input name="cuota" type="text" value="<?php echo $row_DetailRS1['cuota']; ?>" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td bgcolor="#000066"><span class="Estilo11">Seleccion</span></td>
      <td bgcolor="#E9E9E9"><span class="Estilo14">
        <select name='seleccion'>
        <option value='<?php echo $row_DetailRS1['seleccion']; ?>'><?php echo $row_DetailRS1['seleccion']; ?> </option>
          <option value='1'>1 </option>
          <option value='X'>X </option>
          <option value='2'>2 </option>
        </select>
      </span></td>
    </tr>
    <tr valign="baseline">
      <td bgcolor="#000066"><span class="Estilo11">Resultado</span></td>
      <td bgcolor="#E9E9E9"><span class="Estilo14">
      
<select name='resultado' id='resultado'>
<option value='1'>ACERTADO</option>
<option value='2'>FALLADO</option>
<option value='3'>ANULADO</option>
</select>   

      </span></td>
    </tr>
    <tr valign="baseline">
      <td bgcolor="#000066"><span class="Estilo11">Comentario</span></td>
      <td bgcolor="#E9E9E9"><span class="Estilo14">
        <textarea name="comentario" cols="32"><?php echo $row_DetailRS1['comentario']; ?></textarea>
      </span></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">&nbsp;</td>
      <td><input type='submit' name='Actualizar' id='Actualizar' value='Actualizar'> </td>
    </tr>
  </table>
  <input type="hidden" name="MM_update" value="form1">
  <input type="hidden" name="id" value="<?php echo $row_DetailRS1['id']; ?>">
</form>
Y no me da el resultado deseado, no me actualiza el campo resultado y tampoco me suma o me resta la puntuacion en el campo puntuacion.

El campo resultado esta en la tabla apuestas y el campo puntuacion esta en la tabla concursantes.

¿Alguna ayuda?, muchas gracias
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 23:07.