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: 20 años, 3 meses
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: 22 años, 10 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 14:08.