Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: NikNitro! en 29 Diciembre 2013, 13:58 pm



Título: syntax error, unexpected T_VARIABLE al concatenar Strings
Publicado por: NikNitro! en 29 Diciembre 2013, 13:58 pm
Buenas. Llevo un par de días aprendiendo php, para ello estoy usando un servidor gratuito (podeis verlo todo aqui)
http://www.practicandoconphp.hol.es/

Bueno pues hoy me he puesto a aprender a hacer formularios y que envíen los datos a una Base de datos. Los códigos son los siguientes:

Formulario: http://www.practicandoconphp.hol.es/FormJuegos.html
Código:
<html>
<body>
<FORM method=get action="gameReg.php">
Registro de un Juego
<TABLE BORDER=0>

<TR>
<TD>Nombre</TD>
<TD>
<INPUT type=text name="name">
</TD>
</TR>

<TR>
<TD>G&eacutenero</TD>
<TD>
<INPUT type=text name="gen">
</TD>
</TR>

<TR>
<TD>Precio</TD>
<TD>
<INPUT type=text name="prize">
</TD>
</TR>

<TR>
<TD>Compa&ntilde;&iacutea</TD>
<TD>
<SELECT name="company">
<OPTION VALUE="0">Warner Bros</OPTION>
<OPTION VALUE="1">EA</OPTION>
<OPTION VALUE="2">2K</OPTION>
<OPTION VALUE="3">Square Enix</OPTION>
<OPTION VALUE="-1">Otro</OPTION>
</SELECT>
</TD>
</TR>

<TR>
<TD COLSPAN=2>
<INPUT type="submit" value="Enviar">
</TD>
</TR>

</TABLE>
</FORM>
</body>
</html>


PHP
Código:
<html>
<?php
$nombre   = $_GET['name'];
$genero   = $_GET['gen'];
$company = $_GET['company'];
$precio   = $_GET['prize'];

$link = mysql_connect("host", "user", "passss");
mysql_select_db("u217777933_game", $link);
$sql = "SELECT * FROM Juego";  // sentencia sql
$result = mysql_query($sql);
$numero = mysql_num_rows($result);

$string = "Insert Into Juego Values (".$numero.", '"$nombre."', '"$genero."', ".$precio.", ".$company.")";

mysql_query($string, $link);
mysql_close($link); // Cerramos la conexion con la base de datos
?>
</html>

Podeis probarlo vosotros, me da el error al crear el $string... Qué puede ser?

S@lu2;)


Título: Re: syntax error, unexpected T_VARIABLE al concatenar Strings
Publicado por: EFEX en 29 Diciembre 2013, 14:22 pm
De ojeda rapido.

Tenes esta linea te faltan 2 puntos, ves donde?
Código
  1. $string = "Insert Into Juego Values (".$numero.", '"$nombre."', '"$genero."', ".$precio.", ".$company.")";

Cuando utilizes INSERT tenes que especificar los nombres de las columas.
Código
  1. INSERT INTO tabla_nombre (columna1, columna2) VALUES($var, $var);

Para no tener que hacer esa primera consulta de cuantos hay ya agregados... podes agregar un campo que se valla autoincrementando el valor cuando existen nuevos registros.
https://dev.mysql.com/doc/refman/5.0/es/example-auto-increment.html

Y mysql es obsoleta, se debe utilizar mysqli
http://ar2.php.net/manual/es/book.mysqli.php