Foros del Web » Programando para Internet » PHP »

Problema actualizando

Estas en el tema de Problema actualizando en el foro de PHP en Foros del Web. Buenas, Tengo un script la función del cual es comprobar un campo del formulario, y si coincide con un registro de la BDD, actualiza otro ...
  #1 (permalink)  
Antiguo 22/09/2004, 09:54
 
Fecha de Ingreso: agosto-2004
Ubicación: In front of PC
Mensajes: 21
Antigüedad: 22 años, 1 mes
Puntos: 0
Problema actualizando

Buenas,

Tengo un script la función del cual es comprobar un campo del formulario, y si coincide con un registro de la BDD, actualiza otro registro.
El problema reside en que cuando pongo una respuesta correcta, no actualiza la BDD.

Aquí les dejo el script:

Código PHP:
<?php

include ("conectar.php");
include (
"reemplazar.php");

$resp = protege($_POST['resp_user']);
$id = protege($_POST['id']);
$nick = $_SESSION['nick'];
$nivel = $_SESSION['nivel'];

$consulta = mysql_query("SELECT * FROM niveles WHERE IdReto='$id'");
$fila = mysql_fetch_array($consulta);

if (
$fila)
{
    if (
$resp == $fila['RespReto'])
    {
        echo 
"CORRECTO! Has pasado el reto. Seras redirigido al prózimo Reto.";
        
        
$consulta2 = mysql_query("SELECT * FROM usuarios WHERE Nick='$nick'");
        
$fila2 = mysql_fetch_array($consulta2);
        
        if (
$fila2)
        {
            
$nivel2 = $nivel + 1;
            
$punt = $fila2['Puntos'];
            
$puntos = $punt + $fila['PuntReto'];
        
            
$consulta3 = mysql_query("UPDATE usuarios SET Nivel='$nivel2',puntos='$puntos' WHERE Nick='$nick'");

    }
    else
    {
        echo 
"RESPUESTA INCORRECTA. Sigue Buscando";
    }
}
                            
?>
Salu2
  #2 (permalink)  
Antiguo 22/09/2004, 15:25
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 24 años, 8 meses
Puntos: 129
Hay algunas cosas que puedes hacer directamente en tu consulta SQL de Upadate .. por ejemplo .. sumar una cantidad a un campo .. tan sólo:

Código PHP:
mysql_query("UPDATE usuarios SET Nivel=Nivel+1,puntos=puntos+$fila['PuntReto'] WHERE Nick='$nick'"); 
Por otro lado .. este tipo de cosas no son del todo correctas:

Código PHP:
$consulta = mysql_query("SELECT * FROM niveles WHERE IdReto='$id'"); 
$fila = mysql_fetch_array($consulta); 

if (
$fila) {
//etc ..
} 
Deberías hacer:
Código PHP:
$consulta = mysql_query("SELECT * FROM niveles WHERE IdReto='$id'"); 
// Contar los registros que arroja la consulta SQL (se espera 1 o 0 por el tipo de consulta que haces)
if (mysql_num_rows($consulta) == 1){
    
$fila = mysql_fetch_array($consulta);
   
// usas $fila['loquesea'] 
} else {
   echo 
"no hay resultados";
} 
Un saludo,
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 05:14.