Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO ( ! ) Parse error: syntax error, unexpected ';' in C:\wamp\www\Productos\ver.php on l

Estas en el tema de ( ! ) Parse error: syntax error, unexpected ';' in C:\wamp\www\Productos\ver.php on l en el foro de PHP en Foros del Web. Hola, estoy haciendo un catalogo de productos y estoy en la parte en la que se ven los detalles de cada producto, el problema es ...
  #1 (permalink)  
Antiguo 26/12/2013, 11:12
 
Fecha de Ingreso: diciembre-2013
Mensajes: 21
Antigüedad: 10 años, 10 meses
Puntos: 0
Sonrisa ( ! ) Parse error: syntax error, unexpected ';' in C:\wamp\www\Productos\ver.php on l

Hola, estoy haciendo un catalogo de productos y estoy en la parte en la que se ven los detalles de cada producto, el problema es que me aparece el siguiente error:
( ! ) Parse error: syntax error, unexpected ';' in C:\wamp\www\Productos\ver.php on line 14

Este es el codigo php del ver.php:

<?php
include ('connection/web.php');
$consulta = mysql_query("SELECT * FROM productos WHERE prod-id =".$_get['id']."") or die(mysql_error());
while ($registro = mysql_fetch_array($consulta))
?>
<html>
<head>

</head>
<body>
<div class="contenedor">
<?php
while($files=mysql_fetch_array($con…
$id=$files['prod-id'];
$imagen=$files['prod-id'];
$nombre=$files['titulo'];
$color1=$files['color1'];
$color2=$files['color2'];
$color3=$files['color3'];
$color4=$files['color4'];
$tamaño=$files['tamano'];
)
?>
<div class="cajaSola">
<h2> "<?php echo $nombre ?>"</h2>
<img src="imagenes/<?php echo $imagen ?>.jpg" />

</div>


</body>













</html>


y este es el codigo del web.php:

<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$host= "localhost";
$db = "productos";
$user = "root";
$pass = "";
$web = mysql_pconnect($host, $user, $pass, $db) or trigger_error(mysql_error(),E_USER_ERROR…
?>
  #2 (permalink)  
Antiguo 26/12/2013, 11:19
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años, 5 meses
Puntos: 127
Respuesta: ( ! ) Parse error: syntax error, unexpected ';' in C:\wamp\www\Productos\v

que es ese while?????????????????????????????
Código PHP:
Ver original
  1. while($files=mysql_fetch_array($con...

antes de postear, espera, analiza, verifica.
  #3 (permalink)  
Antiguo 26/12/2013, 11:26
 
Fecha de Ingreso: diciembre-2013
Mensajes: 21
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: ( ! ) Parse error: syntax error, unexpected ';' in C:\wamp\www\Productos\v

es que ese era el problema, me aparecia ese error y no se como solucionarlo.
es que no se nada de php
  #4 (permalink)  
Antiguo 26/12/2013, 11:28
 
Fecha de Ingreso: diciembre-2013
Mensajes: 21
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: ( ! ) Parse error: syntax error, unexpected ';' in C:\wamp\www\Productos\v

ademas no se porque quedo asi, en realidad es asi:
Código PHP:
Ver original
  1. <?php
  2.             while($files=mysql_fetch_array($consulta))(
  3.                 $id=$files['prod-id'];
  4.                 $imagen=$files['prod-id'];
  5.                 $nombre=$files['titulo'];
  6.                 $color1=$files['color1'];
  7.                 $color2=$files['color2'];
  8.                 $color3=$files['color3'];
  9.                 $color4=$files['color4'];
  10.                 $tamaño=$files['tamano'];
  11.                 )
  12.             ?>
  #5 (permalink)  
Antiguo 26/12/2013, 11:59
Avatar de moriorGames  
Fecha de Ingreso: diciembre-2013
Ubicación: Barcelona
Mensajes: 37
Antigüedad: 10 años, 10 meses
Puntos: 3
Respuesta: ( ! ) Parse error: syntax error, unexpected ';' in C:\wamp\www\Productos\v

El caso es que estás cerrando mal el while.

While es un loop que tiene la estructura siguiente:

while ( condicion ) {
// Tu código aqui
}

Hola, esto debería funcionarte:

Código PHP:
<?php
include ('connection/web.php');
$consulta mysql_query("SELECT * FROM productos WHERE prod-id =".$_get['id']."") or die(mysql_error());
?>
<html>
<head>
</head>
    <body>
    <div class="contenedor">
    <?php
    
while($files=mysql_fetch_array($consulta)) {
        
$id=$files['prod-id'];
        
$imagen=$files['prod-id'];
        
$nombre=$files['titulo'];
        
$color1=$files['color1'];
        
$color2=$files['color2'];
        
$color3=$files['color3'];
        
$color4=$files['color4'];
        
$tamaño=$files['tamano'];
    }
    
?>
    <div class="cajaSola">
    <h2> "<?php echo $nombre ?>"</h2>
    <img src="imagenes/<?php echo $imagen ?>.jpg" />

    </div>


    </body>
</html>
__________________
Mi juego de estrategia medieval si lo entras hazme llegar tu opinión por favor, siempre la tengo en cuenta.
  #6 (permalink)  
Antiguo 26/12/2013, 12:08
 
Fecha de Ingreso: diciembre-2013
Mensajes: 21
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: ( ! ) Parse error: syntax error, unexpected ';' in C:\wamp\www\Productos\v

ahora aparecen estos errores

( ! ) Warning: mysql_pconnect() expects parameter 4 to be long, string given in C:\wamp\www\Productos\connection\web.php on line 9
Call Stack
# Time Memory Function Location
1 0.0787 371032 {main}( ) ..\ver.php:0
2 0.0803 374752 include( 'C:\wamp\www\Productos\connection\web.php' ) ..\ver.php:2
3 0.0803 375184 mysql_pconnect ( ) ..\web.php:9

( ! ) Fatal error: in C:\wamp\www\Productos\connection\web.php on line 9
Call Stack
# Time Memory Function Location
1 0.0787 371032 {main}( ) ..\ver.php:0
2 0.0803 374752 include( 'C:\wamp\www\Productos\connection\web.php' ) ..\ver.php:2
3 0.0806 375488 trigger_error ( ) ..\web.php:9
  #7 (permalink)  
Antiguo 26/12/2013, 17:27
 
Fecha de Ingreso: diciembre-2013
Mensajes: 21
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: ( ! ) Parse error: syntax error, unexpected ';' in C:\wamp\www\Productos\v

Arregle eso
pero aparece este error
Código SQL:
Ver original
  1. "
  2. ( ! ) Notice: Undefined variable: nombre in C:\wamp\www\Productos\ver.php on line 23
  3. Call Stack
  4. #   Time    Memory  Function    Location
  5. 1   0.0006  371376  {main}( )   ..\ver.php:0
  6. "
  7.  
  8. ( ! ) Notice: Undefined variable: imagen IN C:\wamp\www\Productos\ver.php ON line 24 CALL Stack #TimeMemoryFunctionLocation 10.0006371376{main}( )..\ver.php:0 .jpg" />
  #8 (permalink)  
Antiguo 26/12/2013, 17:28
 
Fecha de Ingreso: diciembre-2013
Mensajes: 21
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: ( ! ) Parse error: syntax error, unexpected ';' in C:\wamp\www\Productos\v

este es el nuevo codigo de web.php

Código PHP:
Ver original
  1. <?php
  2. # FileName="Connection_php_mysql.htm"
  3. # Type="MYSQL"
  4. # HTTP="true"
  5. $host= "localhost";
  6. $db = "productos";
  7. $user = "root";
  8. $pass = "";
  9. mysql_connect($host, $user, $pass);
  10. ?>

y este otro el de ver.php
Código PHP:
Ver original
  1. <?php
  2. include ('connection/web.php');
  3. $consulta = mysql_query("SELECT * FROM productos WHERE 'prod-id' =".$_GET['id']."") or die(mysql_error());
  4. ?>
  5. <html>
  6. <head>
  7. </head>
  8.     <body>
  9.     <div class="contenedor">
  10.     <?php
  11.     while($files = mysql_fetch_array($consulta)) {
  12.         $id = $files['prod-id'];
  13.         $imagen = $files['prod-id'];
  14.         $nombre = $files['titulo'];
  15.         $color1 = $files['color1'];
  16.         $color2 = $files['color2'];
  17.         $color3 = $files['color3'];
  18.         $color4 = $files['color4'];
  19.         $tamaño = $files['tamano'];
  20.     }
  21.     ?>
  22.     <div class="cajaSola">
  23.     <h2> "<?php echo $nombre ?>"</h2>
  24.     <img src="imagenes/<?php echo $imagen ?>.jpg" />
  25.  
  26.     </div>
  27.  
  28.  
  29.     </body>
  30. </html>
  31.    
  32.    
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43. </html>
  #9 (permalink)  
Antiguo 26/12/2013, 18:47
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: ( ! ) Parse error: syntax error, unexpected ';' in C:\wamp\www\Productos\v

Esto está mal:
Código PHP:
$consulta mysql_query("SELECT * FROM productos WHERE 'prod-id' =".$_GET['id']."") or die(mysql_error()); 
Tienes que tener en cuenta que PHP y SQL tienen sus propias reglas sintácticas, y cada uno en su entorno tiene que respetarlas.
No es lo mismo para SQL que uses apóstrofos (') que acentos agudos (`).
En MySQL los apóstrofos se usan para cadenas de texto y los acentos agudos se usan para los nombres de bases, tablas, columnas y todo objeto de bases de datos, y son obligatorios cuando metes la pata poniendo como nombres palabras reservadas, o signos incorrectos como "-", o bien espacios en blanco. Eso es un error de los catastróficos.
No se hace.

En definitiva, no puedes poner el campo "prod-id" entre apóstrofos porque eso no es el nombre del campo sino una cadena de texto que dice "prod-id"
Código PHP:
$consulta mysql_query("SELECT * FROM productos WHERE `prod-id` =".$_GET['id']) or die(mysql_error()); 
Por otro lado, como podrás ver, el último '.""' es irrelevante. No pongas cosas que no afecten la query.
Además de eso es muy mala práctica poner a crear la query dentro de la funcion de ejecución mysql_query(), es mucho mejor, por limpieza de código y para poner hacer ulteriores verificaciones de sintaxis, que la cargues en una variable:
Código PHP:
$qry "SELECT * FROM productos WHERE `prod-id` =".$_GET['id'];
$consulta mysql_query($qry) or die(mysql_error()); 

No uses jamás en los nombres de objetos de base de datos símbolos aritméticos, lógicos, espacios o palabras reservadas. Y tampoco palabras en inglés simples o vocales acentuadas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 26/12/2013, 20:17
 
Fecha de Ingreso: diciembre-2013
Mensajes: 21
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: ( ! ) Parse error: syntax error, unexpected ';' in C:\wamp\www\Productos\v

Gracias por tu ayuda, pero igual el problema continua:

Código SQL:
Ver original
  1. "
  2. ( ! ) Notice: Undefined variable: nombre in C:\wamp\www\Productos\ver.php on line 24
  3. Call Stack
  4. #   Time    Memory  Function    Location
  5. 1   1.3467  371472  {main}( )   ..\ver.php:0
  6. "
  7.  
  8. ( ! ) Notice: Undefined variable: imagen IN C:\wamp\www\Productos\ver.php ON line 25 CALL Stack #TimeMemoryFunctionLocation 11.3467371472{main}( )..\ver.php:0 .jpg" />
  #11 (permalink)  
Antiguo 26/12/2013, 22:09
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: ( ! ) Parse error: syntax error, unexpected ';' in C:\wamp\www\Productos\v

La variable $nombre no existe en el momento de usarse en la línea indicada.
Yo veo dos posibilidades: O bien el entorno de existencia no es el mismo, o bien el registro buscado no existe y por tanto no entra jamás al while, y por ende la variable no existe.
En cualquier caso tu problema es que estás haciendo una mezcla espantosa entre HTML, PHP y SQL, con un código sucio y my mal construido.
Yo te sugeriría que separes mejor las cosas, de un modo más coherente.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #12 (permalink)  
Antiguo 27/12/2013, 07:06
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años, 5 meses
Puntos: 127
Respuesta: ( ! ) Parse error: syntax error, unexpected ';' in C:\wamp\www\Productos\v

Cita:
Iniciado por gnzsoloyo Ver Mensaje
En cualquier caso tu problema es que estás haciendo una mezcla espantosa entre HTML, PHP y SQL, con un código sucio y my mal construido.
Yo te sugeriría que separes mejor las cosas, de un modo más coherente.
lamentablemente debo decir que facugu1998 es nuevo y su codigo es correcto no encuentro ninguna mesclarara, de todos modos la programacion web es una mescla de HTML, CSS, JavaScript, PHP, SQL, etc... viendolo de manera clara.

si vemos este ejemplo
Código PHP:
<?php
include ('connection/web.php');
$consulta mysql_query("SELECT * FROM productos WHERE prod-id =".$_get['id']."") or die(mysql_error());
?>
<html>
<head>
</head>
    <body>
    <div class="contenedor">
    <?php
    
while($files=mysql_fetch_array($consulta)) {
        
$id=$files['prod-id'];
        
$imagen=$files['prod-id'];
        
$nombre=$files['titulo'];
        
$color1=$files['color1'];
        
$color2=$files['color2'];
        
$color3=$files['color3'];
        
$color4=$files['color4'];
        
$tamaño=$files['tamano'];
    }
    
?>
    <div class="cajaSola">
    <h2> "<?php echo $nombre ?>"</h2>
    <img src="imagenes/<?php echo $imagen ?>.jpg" />

    </div>


    </body>
</html>
esta mucho mejor que otros que hacen esto

Código PHP:
<?php
include ('connection/web.php');
$consulta mysql_query("SELECT * FROM productos WHERE prod-id =".$_get['id']."") or die(mysql_error());
echo 
'<html>
<head>
</head>
    <body>
    <div class="contenedor">'
;
    while(
$files=mysql_fetch_array($consulta)) {
        
$id=$files['prod-id'];
        
$imagen=$files['prod-id'];
        
$nombre=$files['titulo'];
        
$color1=$files['color1'];
        
$color2=$files['color2'];
        
$color3=$files['color3'];
        
$color4=$files['color4'];
        
$tamaño=$files['tamano'];
    }
echo 
'
    <div class="cajaSola">
    <h2> "'
.$nombre.'"</h2>
    <img src="imagenes/'
.$imagen.'.jpg" />
    </div>
    </body>
</html>'
;
esta otra forma recarga el bufer de salida del php y trabaja innecesariamente
esta claro que no hay POO pero es nuevo que mas quieres?
  #13 (permalink)  
Antiguo 27/12/2013, 08:06
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: ( ! ) Parse error: syntax error, unexpected ';' in C:\wamp\www\Productos\v

Cita:
esta claro que no hay POO pero es nuevo que mas quieres?
Que se meta a fondo, porque uno de los problema que se producen por le modo desordenado de construir el código es que se esconden los errores de proramación. No son visibles a simple vista.
Sé que es nuevo. Lo que digo es que está demasiado entremezclado todo y termina dificultando la depuración.
El código ordenado no significa solamente que sea "bonito", sino que sea mantenible.
Le llevará tiempo, pero aprenderá.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #14 (permalink)  
Antiguo 27/12/2013, 08:06
Avatar de rflorez  
Fecha de Ingreso: diciembre-2013
Ubicación: Argentina
Mensajes: 14
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: ( ! ) Parse error: syntax error, unexpected ';' in C:\wamp\www\Productos\v

Verifica que valor esta trayendo $_get['id'].
  #15 (permalink)  
Antiguo 27/12/2013, 09:52
 
Fecha de Ingreso: diciembre-2013
Mensajes: 21
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: ( ! ) Parse error: syntax error, unexpected ';' in C:\wamp\www\Productos\v

Gracias a todos por la ayuda ya lo pude arreglar

Etiquetas: Ninguno
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 21:12.