Foros del Web » Programando para Internet » PHP »

Parse error sin especifiaciones

Estas en el tema de Parse error sin especifiaciones en el foro de PHP en Foros del Web. Bueno, yo estoy programando en PHP desde hace unos meses y nunca se me presentó un problema como el que les voy a comentar ahora. ...
  #1 (permalink)  
Antiguo 21/09/2005, 16:24
 
Fecha de Ingreso: septiembre-2005
Mensajes: 3
Antigüedad: 18 años, 6 meses
Puntos: 0
Parse error sin especifiaciones

Bueno, yo estoy programando en PHP desde hace unos meses y nunca se me presentó un problema como el que les voy a comentar ahora. Yo me encuentro programando un juego ( www.argentinomanager.com.ar ) y ahora estoy haciendo un script, que lo que hace es sumar puntos, actualizar el ranking y cambiar de división si alguien desciende y/o asciende. Ahora, no se por qué en la query del "update" hay algo mal:


"Parse error on line 222 " Nada más que eso me dice.

El código a continuación contiene las líneas: 221 a 236

Código PHP:
if($nuevacat != '') {
        if(
mysql_query("UPDATE usuarios SET cat='$nuevacat',presupuesto='$nuevo_presupuesto',rank='$ranking' WHERE nick='$datos[nick]'")) {
            echo 
"<br>Se ha bonificado y actualizado, la categoría y el presupuesto de ".$nick."<br>";
        } else {
            echo 
"<br>Por algún motivo no se pudo actualizar el perfil de ".$nick."<br>";
        }

    } else {

        if(
mysql_query("UPDATE usuarios SET presupuesto='$nuevo_presupuesto',rank='$ranking' WHERE nick='$nick'")) {
            echo 
"<br>Se ha bonificado y actualizado, la categoría y el presupuesto de ".$nick."<br>";
        }else{
            echo 
"<br>Por algún motivo no se pudo actualizar el perfil de ".$nick."<br>";
        }

    } 
Saludos y espero que puedan ayudarme!
Santiago

Última edición por Cluster; 21/09/2005 a las 19:40 Razón: Con la opción "PHP" el código sale coloreado .. ideal para detectar errores de "parser".
  #2 (permalink)  
Antiguo 21/09/2005, 16:54
Avatar de davidangel  
Fecha de Ingreso: abril-2005
Mensajes: 124
Antigüedad: 18 años, 11 meses
Puntos: 0
pon esto al inicio y chequea el mensaje

ini_set('display_errors','1');
  #3 (permalink)  
Antiguo 21/09/2005, 16:57
 
Fecha de Ingreso: septiembre-2005
Mensajes: 3
Antigüedad: 18 años, 6 meses
Puntos: 0
no pasa nada si pongo eso :S
  #4 (permalink)  
Antiguo 21/09/2005, 19:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
La mayoría de veces .. un error de "parser" se arrastra de arriba del código de donde realmente "explota" y marca el error .. a veces puede ser una línea arriba .. otras muchas más .. por eso, sería necesario ver -todo- el script en su contexto para ir siguiendo el código y ver donde vas usando comillas .. concatenando .. cerrando instrucciones (;) .. etc.

De momento .. para ver el código más claro en cualquier editor (como hace la función de coloreado del código "PHP" (en lugar de "code") ..) se vé más claro donde tienes variables si concatenas de la siguiente manera:

Código PHP:
if(mysql_query("UPDATE usuarios SET cat='".$nuevacat."',presupuesto='".$nuevo_presupuesto."',rank='".$ranking."' WHERE nick='".$datos['nick']."'")) { 
            echo 
"<br>Se ha bonificado y actualizado, la categoría y el presupuesto de ".$nick."<br>"
        } else { 
            echo 
"<br>Por algún motivo no se pudo actualizar el perfil de ".$nick."<br>"
        } 
No quiere decir que esto sea el problema .. pero si que te ayudará a identificar tu código mejor.

Un saludo,
  #5 (permalink)  
Antiguo 22/09/2005, 12:11
 
Fecha de Ingreso: septiembre-2005
Mensajes: 3
Antigüedad: 18 años, 6 meses
Puntos: 0
Acá está todo el código... ya lo arreglé, faltaba una comilla a la 1º query. Bueno, ahora lo que me pasa es que actualiza todo, pero cambia de categoría a equipos sin que deban ser cambiados, por ejemplo, el que salió 2º en la primera división, pasa a la segunda división, cosa que no tendría que pasar, pero revisé bien esta vez y no encuentro la falla de por qué pasa esto.


Código PHP:
if($_POST[bonificar]) {


    $a = mysql_query("SELECT nick FROM usuarios ORDER BY id ASC"); //Acá saco todos los nicks
     
    while(list($nick) = mysql_fetch_array($a)) {

        $b = mysql_query("SELECT * FROM usuarios WHERE nick='$nick'"); //Acá tengo todos los datos de nick
        $datos = mysql_fetch_array($b);
/*Primero saco la categoría */
    if ($datos[cat] == 'A') {
    $cat ='A';    
    }elseif($datos[cat] == 'B') {
    $cat='B';
    }elseif($datos[cat] == 'C') {
    $cat='C';
    }elseif($datos[cat] == 'D') {
    $cat='D';
    }

         if ($datos[pos] == '1') {
        //Si la posicion es 1
            if($cat =='A') {
                $nuevo_presupuesto = intval($datos[presupuesto]) + 1200;
                $ranking=intval($datos[rank]) + 250;
            }elseif($cat=='B') {
                $nuevo_presupuesto = intval($datos[presupuesto]) + 600;
                $ranking=intval($datos[rank]) + 125;
                //Ascendio
                $nuevacat='A';
            }elseif($cat=='C') {
                $nuevo_presupuesto = intval($datos[presupuesto]) + 300;
                $ranking=intval($datos[rank]) + 63;
                //Ascendio
                $nuevacat='B';
            }elseif($cat=='D') {
                $nuevo_presupuesto = intval($datos[presupuesto]) + 200;
                $ranking=intval($datos[rank]) + 32;
                //Ascendio
                $nuevacat='C';
            }
        }elseif ($datos[pos] == '2') {
        //Si la posicion es 2
            if($cat =='A') {
                $nuevo_presupuesto = intval($datos[presupuesto]) + 900;
                $ranking=intval($datos[rank]) + 200;
            }elseif($cat=='B') {
                $nuevo_presupuesto = intval($datos[presupuesto]) + 450;
                $ranking=intval($datos[rank]) + 100;
                //Ascendio
                $nuevacat='A';
            }elseif($cat=='C') {
                $nuevo_presupuesto = intval($datos[presupuesto]) + 225;
                $ranking=intval($datos[rank]) + 50;
                //Ascendio
                $nuevacat='B';
            }elseif($cat=='D') {
                $nuevo_presupuesto = intval($datos[presupuesto]) + 150;
                $ranking=intval($datos[rank]) + 25;
                //Ascendio
                $nuevacat='C';
            }
        }elseif ($datos[pos] == '3') {
        //Si la posicion es 3
            if($cat =='A') {
                $nuevo_presupuesto = intval($datos[presupuesto]) + 700;
                $ranking=intval($datos[rank]) + 170;
            }elseif($cat=='B') {
                $nuevo_presupuesto = intval($datos[presupuesto]) + 350;
                $ranking=intval($datos[rank]) + 85;
            }elseif($cat=='C') {
                $nuevo_presupuesto = intval($datos[presupuesto]) + 175;
                $ranking=intval($datos[rank]) + 43;
            }elseif($cat=='D') {
                $nuevo_presupuesto = intval($datos[presupuesto]) + 100;
                $ranking=intval($datos[rank]) + 22;
            }
        }elseif ($datos[pos] == '4') {
        //Si la posicion es 4
            if($cat =='A') {
                $nuevo_presupuesto = intval($datos[presupuesto]) + 500;
                $ranking=intval($datos[rank]) + 140;
            }elseif($cat=='B') {
                $nuevo_presupuesto = intval($datos[presupuesto]) + 250;
                $ranking=intval($datos[rank]) + 70;
            }elseif($cat=='C') {
                $nuevo_presupuesto = intval($datos[presupuesto]) + 125;
                $ranking=intval($datos[rank]) + 35;
            }elseif($cat=='D') {
                $nuevo_presupuesto = intval($datos[presupuesto]) + 75;
                $ranking=intval($datos[rank]) + 18;
            }
        }elseif($datos[pos] == '5') {
        //Si la posicion es 5
            if($cat =='A') {
                $nuevo_presupuesto = intval($datos[presupuesto]) + 350;
                $ranking=intval($datos[rank]) + 90;
            }elseif($cat=='B') {
                $nuevo_presupuesto = intval($datos[presupuesto]) + 175;
                $ranking=intval($datos[rank]) + 45;
            }elseif($cat=='C') {
                $nuevo_presupuesto = intval($datos[presupuesto]) + 75;
                $ranking=intval($datos[rank]) + 23;
            }elseif($cat=='D') {
                $nuevo_presupuesto = intval($datos[presupuesto]) + 50;
                $ranking=intval($datos[rank]) + 12;
            }
        }elseif ($datos[pos] == '6') {
        //Si la posicion es 6
            if($cat =='A') {
                $nuevo_presupuesto = intval($datos[presupuesto]) + 250;
                $ranking=intval($datos[rank]) + 50;
            }elseif($cat=='B') {
                $nuevo_presupuesto = intval($datos[presupuesto]) + 100;
                $ranking=intval($datos[rank]) + 25;
            }elseif($cat=='C') {
                $nuevo_presupuesto = intval($datos[presupuesto]) + 50;
                $ranking=intval($datos[rank]) + 13;
            }elseif($cat=='D') {
                $nuevo_presupuesto = intval($datos[presupuesto]) + 25;
                $ranking=intval($datos[rank]) + 7;
            }
        }elseif ($datos[pos] == '7') {
        //Si la posicion es 7
            if($cat =='A') {
                $nuevo_presupuesto = intval($datos[presupuesto]) + 100;
                $ranking=intval($datos[rank]) + 30;
            }elseif($cat=='B') {
                $nuevo_presupuesto = intval($datos[presupuesto]) + 50;
                $ranking=intval($datos[rank]) + 15;
            }elseif($cat=='C') {
                $nuevo_presupuesto = intval($datos[presupuesto]) + 10;
                $ranking=intval($datos[rank]) + 8;
            }elseif($cat=='D') {
            $ranking=intval($datos[rank]) + 4;
            }
        }elseif ($datos[pos] == '8') {
        //Si la posicion es 8
            if($cat =='A') { 
                $ranking=intval($datos[rank]) + 15;
            }elseif($cat=='B') {
                $ranking=intval($datos[rank]) + 8;
            }elseif($cat=='C') {
                $ranking=intval($datos[rank]) + 4;
            }elseif($cat=='D') {
                $ranking=intval($datos[rank]) + 2;
            }
        }elseif ($datos[pos] == '9') {
        //Si la posicion es 9
        //Descendió
            if($cat =='A') {
                $nuevacat='B';
                $ranking=intval($datos[rank]) + 7;
            }elseif($cat=='B') {
                $nuevacat='C';    
                $ranking=intval($datos[rank]) + 4;
            }elseif($cat=='C') {
                $nuevacat='D';
                $ranking=intval($datos[rank]) + 2;
            }elseif($cat=='D') {
                $ranking=intval($datos[rank]) + 1;
            }
        }elseif ($datos[pos] == '10') {
        //Si la posicion es 10
        //Descendió
            if($cat =='A') {
                $nuevacat='B';
                $ranking=intval($datos[rank]) + 1;
            }elseif($cat=='B') {
                $nuevacat='C';    
                $ranking=intval($datos[rank]) + 1;
            }elseif($cat=='C') {
                $nuevacat='D';
                $ranking=intval($datos[rank]) + 1;
            }elseif($cat=='D') {
                $ranking=intval($datos[rank]) + 0;
            }
        }


        //Ahora procedo a guardar todos los datos que recolecte antes

if($nuevacat != '') {
        if(mysql_query("UPDATE usuarios SET cat='$nuevacat',presupuesto='$nuevo_presupuesto',rank='$ranking' WHERE nick='$datos[nick]'")) {
            echo "<br>Se ha bonificado y actualizado, la categoría y el presupuesto de ".$nick."<br>";
        } else {
            echo "<br>Por algún motivo no se pudo actualizar el perfil de ".$nick."<br>";
        }

    } else {

        if(mysql_query("UPDATE usuarios SET presupuesto='$nuevo_presupuesto',rank='$ranking' WHERE nick='$nick'")) {
            echo "<br>Se ha bonificado y actualizado el presupuesto de ".$nick."<br>";
        }else{
            echo "<br>Por algún motivo no se pudo actualizar el perfil de ".$nick."<br>";
        }

    }
    } //Acá termina el While

}else{
?>

<form name="bonificar" action="bonificar.php" method="POST">
<input type="Submit" name="bonificar" value="Bonificar" id="bonificar">
</form>
<? ?>

eso es todo el código, obviamente faltan las líneas de verificar si es un administrador y la selección del template, pero eso no es problema porque está puesto en varios archivos y el error está acá nada más.

Muchas gracias a los que respondieron y a los que piensan hacerlo ;)

Última edición por kazeman; 22/09/2005 a las 13:24 Razón: nuevo problema y nueva version del codigo
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 16:10.