syntax error, unexpected T_STRING

Iniciado por JammDesigner, 26 Septiembre 2008, 12:42 PM

0 Miembros y 1 Visitante están viendo este tema.

JammDesigner

Al ejecutar el código PHP en servidor me da el siguiente error>

Parse errorsyntax errorunexpected T_STRING in /mnt/web3/12/29/51668329/htdocs/LOTERIA/loteria_nacional/paleln.php on line 68

Esta es la linea 68: ¿Que esta mal?

INSERT INTO pale_loteria_nacional (primerosegundocantidadagenciaVALUES ('$primero''$segundo''$cantidad''$agencia')
"Empty Your Mind Be Forms Shapples, Like Water, You Put Water Into A Bottle And Becomes The Bottle, You Put In A Teapot And Becomes The Teapot, Water Can Flow Or It Can Crash, Be Water My Friend"

NaSaRiD15

#1
Prueba algo asi:

$sql = "INSERT INTO pale_loteria_nacional (primero, segundo, cantidad, agencia) VALUES ('$primero', '$segundo', '$cantidad', '$agencia')";
$res = mysql_query($sql, $conex);

Saludos.

P.D: Que te marque error en la linea 68 no quiere decir que este especificamente ahi, puede estar antes tambien.
Hay que tomarse un tiempo para comprender que solamente sos lo que sos, de ahi a todo lo que tu quieras ser, eso ya depende de vos...

Diabliyo

#2
Cita de: Willy.Design en 26 Septiembre 2008, 12:42 PM
Al ejecutar el código PHP en servidor me da el siguiente error>

Parse errorsyntax errorunexpected T_STRING in /mnt/web3/12/29/51668329/htdocs/LOTERIA/loteria_nacional/paleln.php on line 68

Esta es la linea 68: ¿Que esta mal?

INSERT INTO pale_loteria_nacional (primerosegundocantidadagenciaVALUES ('$primero''$segundo''$cantidad''$agencia')

El error no es la linea, el error a der ser el tipo de variables y el tipo de valor que deseas escribir !!...

Pon mas informacion, alcabo ni que por poner un poco mas de codigo te fueran a hackear :S !! (que noob si piensas eso)....

Y lo que te recomendo NaSaRiD15 es una tonteria, recuerden que la forma de realizar la consulta es lo de menos, siempre y cuando la sintaxis este bien, el codigo debe funcionar !!...

bye bye

NaSaRiD15

Muy estupido tu comentario dyablillo, si estas con ganas de agredir, busca otro lado donde hacerlo, fuera de lugar tu post completamente, no aportaste nada, y conteastaste de mal modo.

Mas alla de si me haya equivocado o no con el consejo, o si el puso o no lo suficiente, no es forma de responder, no se para que pierdo tiempo.
Hay que tomarse un tiempo para comprender que solamente sos lo que sos, de ahi a todo lo que tu quieras ser, eso ya depende de vos...

дٳŦ٭

Cita de: Diabliyo en 27 Septiembre 2008, 03:29 AM
Cita de: Willy.Design en 26 Septiembre 2008, 12:42 PM
Al ejecutar el código PHP en servidor me da el siguiente error>

Parse errorsyntax errorunexpected T_STRING in /mnt/web3/12/29/51668329/htdocs/LOTERIA/loteria_nacional/paleln.php on line 68

Esta es la linea 68: ¿Que esta mal?

INSERT INTO pale_loteria_nacional (primerosegundocantidadagenciaVALUES ('$primero''$segundo''$cantidad''$agencia')

El error no es la linea, el error a der ser el tipo de variables y el tipo de valor que deseas escribir !!...

Pon mas informacion, alcabo ni que por poner un poco mas de codigo te fueran a hackear :S !! (que noob si piensas eso)....

Y lo que te recomendo NaSaRiD15 es una tonteria, recuerden que la forma de realizar la consulta es lo de menos, siempre y cuando la sintaxis este bien, el codigo debe funcionar !!...

bye bye

Otro comentario asi y pido tu baneo.


Con sangre andaluza :)


WHK

#5
Citarsyntax error, unexpected T_STRING
Ese error te está diciendo que hay una linea sin terminar, por ejemplo puede que le falte el ";" al final o que no hayas cerrado un parentesis o algo por el estilo.

Por lo que escribiste veo dos fallas, uno que le falta el ";" al final y lo otro que para hacer una consulta hacia la base de datos debes utilizar funciones y no escribirlo directamente sobre el código php, por ejemplo como te dijeron mas arriba:

Código (php) [Seleccionar]

$sql = "
INSERT INTO pale_loteria_nacional (primero, segundo, cantidad, agencia)
VALUES ('$primero', '$segundo', '$cantidad', '$agencia');
";


Con eso estarías definiendo la consulta que vas a hacer, ahora debes realizar la consulta con
mysql_pconnect()
mysql_select_db()
mysql_query(,)
mysql_fetch_row()
mysql_free_result()
mysql_close()

Te recomiendo que leas un poco para que puedas tener la idea un poco mas clara:
http://cl2.php.net/mysql

Sin mas que decir te recomioendo que no expongas las variables directamente sobre la consulta mysql o tendrás graves problemas de seguridad, lee también sobre injección sql:
http://es.wikipedia.org/wiki/Inyecci%C3%B3n_SQL

Para evitar estas cosas lee sobre la función mysql_real_escape_string() y set_magic_quotes_runtime()

Código (php) [Seleccionar]

<?php
/*  .. ..  */

set_magic_quotes_runtime(0);
error_reporting(0);

$servidor_bd 'Localhost';
$basededatos 'nombre de la base de datos';
$usuario_bd  'usuario de la base de datos';
$pass_bd 'contraseña del usuario de la base de datos';

if(!
$conectar_sql mysql_pconnect($servidor_bd$usuario_bd$pass_bd)){
 echo 
"No se puede conectar a la base de datos";
 exit(
1);
}else{
 if(!
mysql_select_db($basededatos,$conectar_sql)){
  echo 
"No existe la base de datos seleccionada";
  exit(
1);
 }
}

$sql "
INSERT INTO pale_loteria_nacional (primero, segundo, cantidad, agencia) 
VALUES ('"
.
mysql_real_escape_string($primero)."', '".
mysql_real_escape_string($segundo)."', '".
(int)
$cantidad."', '".
mysql_real_escape_string($agencia)."');
"
;

if(
mysql_query($sql,$conectar_sql)){
 echo 
"Datos insertados dentro de la base de datos.";
}else{
 echo 
"No se pudo establecer los valores dentro de la base de datos.";
}

/*  .. ..  */
?>



http://cl2.php.net/manual/es/function.mysql-real-escape-string.php
http://cl2.php.net/manual/es/function.set-magic-quotes-runtime.php

Si después de todo esto todavía tienes preguntas puedes volver a hacerlas acá mismo.

JammDesigner

#6
Muchas gracias...para que me ayuden mejor aquí esta el código completo, pero he cambiado el script por otro pero tampoco me funciona pero no me da error, pero no me añade la información a la base de datos:

<html>
<
head>
<
title>Pal&eacute; | Loteria Nacional</title>
</
head>

<
body  bgcolor="#FFFFFF" onLoad='window.print();'>
<
table width="100%" border="0" cellspacing="0" cellpadding="0">
<
tr>
    <
td><?

$primero$_POST["primero"];
$segundo$_POST["segundo"];
$cantidad$_POST["cantidad"];
$ganancia123$cantidad*1000;
$ganancia23$cantidad*100;
$agencia$_POST["agencia"];

if (
$primero == $segundo)
{
echo 
"No puedes jugar un PALÉ con los 2 números iguales. Comprueba los datos, por favor.";
exit;
}

echo 
date ("H:i ");
echo 
"del dia ";
echo 
date ("j ");
echo 
"de ";
echo 
date ("F ");
echo 
"del año ";
echo 
date ("Y ");
echo 
"<br>";
echo 
"<p>Su <b>PALÉ</b> es el siguiente:</p>";
	
echo 
$primero." <b>-</b> ";
	
echo 
$segundo." <b></b>";
	
echo 
"<br>";
	
	
echo 
$cantidad." €<b> de cantidad apostada.</b><br>";
echo 
$ganancia123." €<b> de ganancia (1º-2º o 1º-3º).</b><br>";
echo 
$ganancia23." €<b> de ganancia (2º-3º).</b><br>";
echo 
"<center><b>Fácil Envíos, S.A.</b></center>";
	
	
echo 
$agencia."";

//Conectar con BD y enviar información

if (!$primero || !$segundo || !$cantidad || !$agencia)
{
	
echo 
"No has introducido todos los detalles requeridos.<br>"
	
	
.
"Por favor vuelve e intentélo de nuevo.";
	
	
exit;
	
	
}
	
	
$primero = ($primero);
	
	
$segundo = ($segundo);
	
	
$cantidad = ($cantidad);
	
	
$agencia = ($agencia);
	
	

	
	
$db mysql_pconnect("SERVIDOR""USUARIO""CONTRASEÑA");
	
	

	
	
if (!
$db)
	
	
{
	
	
	
echo 
"Error: No se puede conectar a la base de datos. Por favor inténtelo de nuevo.";
	
	
	
exit;
	
	
}
	
mysql_select_db("BASE DE DATOS");
	
$query "insert into pale_loteria_nacional ('".$primero."', '".$segundo."', '".$cantidad."', '".$agencia."',)";
	
$result mysql_query($query);
	
if (
$result)
	
echo 
mysql_affected_rows()." dato introducido.";
	
	

?></td>
  </tr>
</table>
</body>
</html>

"Empty Your Mind Be Forms Shapples, Like Water, You Put Water Into A Bottle And Becomes The Bottle, You Put In A Teapot And Becomes The Teapot, Water Can Flow Or It Can Crash, Be Water My Friend"

alone-in-the-chat



$query = "insert into pale_loteria_nacional ('".$primero."', '".$segundo."', '".$cantidad."', '".$agencia."',)";


Cambia por


$query = "insert into pale_loteria_nacional ('".$primero."', '".$segundo."', '".$cantidad."', '".$agencia."' )";

date cuenta que se te esta pasando una ","

:-\

de verdad revisaste el codigo ??

el error salta a la vista

Saludos¡¡¡
Because maybe
You're gonna be the one that saves me
And after all
You're my wonderwall
d[n_n]b

WHK

Mira, lo que yo siempre hago para ver algún error de sitnaxis en SQL imprimo en pantalla la query de la siguiente manera:

Código (php) [Seleccionar]
<?php
/* .. .. */
$query "
insert into pale_loteria_nacional ('
"
.$primero."', '".$segundo."', '".$cantidad."', '".$agencia."
',)"
;

echo 
$query; exit(0);
/* .. .. */
?>


Después copio lo que me aparezca y lo pego en el phpmyadmin y al dar ejecutar este me dirá cual es el error detalladamente y en que linea se produjo, una forma eficaz para personas que saben lo básico sobre bases de datos MySQL.

JammDesigner

Muchas gracias a todos por su ayuda, ya he logrado que me añada la información en el servidor pero lo he hecho llevandome del consejo de WHK:

Después copio lo que me aparezca y lo pego en el phpmyadmin y al dar ejecutar este me dirá cual es el error detalladamente y en que linea se produjo, una forma eficaz para personas que saben lo básico sobre bases de datos MySQL.

He añadido una linea a la tabla y el PHPMyAdmin me ha dado el codigo de la consulta SQL y he copiado el codigo y he modificado los datos y me ha funcionado, es algo asi:

<html>
<
head>
<
title>Pal&eacute; | Loteria Nacional</title>
</
head>

<
body  bgcolor="#FFFFFF" onLoad='window.print();'>
<
table width="100%" border="0" cellspacing="0" cellpadding="0">
<
tr>
    <
td><?

$primero$_POST["primero"];
$segundo$_POST["segundo"];
$cantidad$_POST["cantidad"];
$ganancia123$cantidad*1000;
$ganancia23$cantidad*100;
$agencia$_POST["agencia"];

if (
$primero == $segundo)
{
echo 
"No puedes jugar un PALÉ con los 2 números iguales. Comprueba los datos, por favor.";
exit;
}

echo 
date ("H:i ");
echo 
"del dia ";
echo 
date ("j ");
echo 
"de ";
echo 
date ("F ");
echo 
"del año ";
echo 
date ("Y ");
echo 
"<br>";
echo 
"<p>Su <b>PALÉ</b> es el siguiente:</p>";
echo 
$primero." <b>-</b> ";
echo 
$segundo."";
echo 
"<br>";
echo 
$cantidad." €<b> de cantidad apostada.</b><br>";
echo 
$ganancia123." €<b> de ganancia (1º-2º o 1º-3º).</b><br>";
echo 
$ganancia23." €<b> de ganancia (2º-3º).</b><br>";
echo 
"<br>";
echo 
"<center><b>Fácil Envíos, S.A.</b></center>";

	
	
echo 
$agencia."";
//Conectar con BD y enviar información
	
	
$primero = ($primero);
	
	
$segundo = ($segundo);
	
	
$cantidad = ($cantidad);
	
	
$agencia = ($agencia);
	
	

	
	
$db mysql_pconnect("SERVIDOR""USUARIO""CONTRASEÑA");
	
	

	
	
if (!
$db)
	
	
{
	
	
	
echo 
"Error: No se puede conectar a la base de datos. Por favor inténtelo de nuevo.";
	
	
	
exit;
	
	
}
	
mysql_select_db("BASE DATOS");
	
$query "INSERT INTO `pale_loteria_nacional` ( `ClienteID` , `primero` , `segundo` , `cantidad` , `agencia` , `fecha` )
VALUES ('', '
$primero', '$segundo', '$cantidad', '$agencia', '');";
	
$result mysql_query($query);
?></td>
  </tr>
</table>
</body>
</html>


Lo unico que me queda una duda es al añadir la FECHA...es mejor que añada un capo nuevo al FORMULARIO y que el codigo PHP lo añada a la tabla o existe algun script que lo haga automicamente tomando la fecha del equipo?

Un saludo y muchas gracias
"Empty Your Mind Be Forms Shapples, Like Water, You Put Water Into A Bottle And Becomes The Bottle, You Put In A Teapot And Becomes The Teapot, Water Can Flow Or It Can Crash, Be Water My Friend"