Foros del Web » Programando para Internet » PHP »

Error en sintaxis

Estas en el tema de Error en sintaxis en el foro de PHP en Foros del Web. Hola gente, a ver si m puedn ayudar no encuentro el siguiente error en mi codigo.. Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or ...
  #1 (permalink)  
Antiguo 17/10/2011, 17:10
 
Fecha de Ingreso: agosto-2011
Mensajes: 15
Antigüedad: 13 años, 2 meses
Puntos: 0
Pregunta Error en sintaxis

Hola gente, a ver si m puedn ayudar no encuentro el siguiente error en mi codigo..

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\xampp\htdocs\tarjetas\cal_viaje.php on line 18



<?php
include("conexion.php");
$localidad=$_POST["sltLoc"];
?>
<html>
<head>
<title>Calculando</title>
</head>
<body>
<?php

$consulta="SELECT tit_tarjeta, tit_documento, tit_nombre, tit_localidad FROM titulares WHERE tit_localidad=$localidad";
$res=mysql_query($consulta);
$comp=0;
$pago=0;
while($row=mysql_fetch_array($res))
{
$consulta2="SELECT com_fecha, com_cupon, com_importe FROM compras ORDER BY com_fecha WHERE tit_tarjeta=$row['tit_tarjeta']";
$consulta3="SELECT pag_fecha, pag_comprobante, pag_importe FROM pagos ORDER BY pag_fecha WHERE tit_tarjeta=$row['tit_tarjeta']";
echo "Titular: '".$row["tit_nombre"]."' Tarjeta: '".$row["tit_tarjeta"]."'"; //mostrar todos los datos

while($row1=mysql_fetch_array($consulta2))
{
$comp = $comp + $row["com_importe"];
}

while($row2=mysql_fetch_array($consulta3))
{
$pago = $pago + $row["pag_importe"];
}


}
?>
</body>
</html>
  #2 (permalink)  
Antiguo 17/10/2011, 17:13
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Error en sintaxis

Tienes problemas al combinar variables con comillas, lee lo siguiente:
http://www.forosdelweb.com/f18/como-...s-bien-588701/
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 17/10/2011, 17:35
 
Fecha de Ingreso: agosto-2011
Mensajes: 15
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Error en sintaxis

Lei tu aporte, el tema es que me tira error en la consulta q esta dentro del WHILE.. antes d concatenar las variables q muesto. No se que puede ser..
  #4 (permalink)  
Antiguo 17/10/2011, 17:45
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Error en sintaxis

Pues si, exactamente te mande a leer porque ahí está el problema:
Código PHP:
// MAL
$consulta2="SELECT com_fecha, com_cupon, com_importe FROM compras ORDER BY com_fecha WHERE tit_tarjeta=$row['tit_tarjeta']";

// BIEN
$consulta2="SELECT com_fecha, com_cupon, com_importe FROM compras ORDER BY com_fecha WHERE tit_tarjeta={$row['tit_tarjeta']}";

// O TAMBIEN (concatenando)
$consulta2="SELECT com_fecha, com_cupon, com_importe FROM compras ORDER BY com_fecha WHERE tit_tarjeta=" $row['tit_tarjeta']; 
No creas que no conozco el error.

¿De verdad estás poniendo atención?

Tal vez me equivoque con lo de concatenar, pues el término correcto es interpolar: el error lo cometes al interpolar las variables dentro de tu cadena de consulta.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 17/10/2011, 17:49
 
Fecha de Ingreso: agosto-2011
Mensajes: 15
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Error en sintaxis

Gracias, ya lo solucione!
  #6 (permalink)  
Antiguo 17/10/2011, 18:03
 
Fecha de Ingreso: agosto-2011
Mensajes: 15
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Error en sintaxis

Ahora me tira esto en el Array.. no se que hacer.. :s


Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\tarjetas\cal_viaje.php on line 16
  #7 (permalink)  
Antiguo 17/10/2011, 18:06
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Error en sintaxis

Posiblemente tu consulta tenga un error, prueba imprimiendo el valor de mysql_error() para ver que anda mal.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 17/10/2011, 19:54
 
Fecha de Ingreso: agosto-2011
Mensajes: 15
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Error en sintaxis

Solucione todo el tema anterior, y cambie un par d cosas en mi codigo, ahora me tira este error, no se si puede ser algo de incompatibilidad, no lo puedo solucionar..

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\tarjetas\cal_viaje.php on line 23
1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE tit_tarjeta=2147483647' at line 1





<?php
include("conexion.php");
$localidad=$_POST["sltLoc"];
?>
<html>
<head>
<title>Calculando</title>
</head>
<body>
<?php

$consulta="SELECT tit_tarjeta, tit_documento, tit_nombre, tit_localidad FROM titulares WHERE tit_localidad='$localidad'";
$res=mysql_query($consulta);
$comp=0;
$pago=0;
if($row=mysql_fetch_array($res))
{
$consulta2="SELECT com_fecha, com_cupon, com_importe FROM compras ORDER BY com_fecha WHERE tit_tarjeta=".$row['tit_tarjeta'];
//$consulta3="SELECT pag_fecha, pag_comprobante, pag_importe FROM pagos ORDER BY pag_fecha WHERE tit_tarjeta=". $row['tit_tarjeta'];
//echo "Titular: ".$row['tit_nombre']." \x1F \x1F \x1F \x1F \x1F Tarjeta: ".$row['tit_tarjeta'].""; //mostrar todos los datos
$res1=mysql_query($consulta2);

while($row1=mysql_fetch_array($res1))
{
//$comp = $comp + $row['com_importe'];
}



//while($row2=mysql_fetch_array($consulta3))
//{
//$pago = $pago + $row['pag_importe'];
//}


}
echo mysql_errno();
echo mysql_error();

?>
</body>
</html>
  #9 (permalink)  
Antiguo 17/10/2011, 20:04
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: Error en sintaxis

pues tu problema se soluciona con SQL básico, has visto la sintaxis de mysql para un SELECT?? fijate donde esta el ORDER BY y donde esta la condición, y veras cual es tu problema saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #10 (permalink)  
Antiguo 17/10/2011, 20:22
 
Fecha de Ingreso: agosto-2011
Mensajes: 15
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Error en sintaxis

Gracias, pero como agrego el ORDER BY detas d la condicion?, eh probado y no puedo :S..
  #11 (permalink)  
Antiguo 17/10/2011, 20:29
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: Error en sintaxis

viste la estructura del SELECT??
Cita:
Iniciado por manual MySQL
SELECT
[ALL | DISTINCT | DISTINCTROW ]
[HIGH_PRIORITY]
[STRAIGHT_JOIN]
[SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
[SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]select_expr, ...
[INTO OUTFILE 'file_name' export_options
| INTO DUMPFILE 'file_name']
[FROM table_references
[WHERE where_definition]
[GROUP BY {col_name | expr | position}
[ASC | DESC], ... [WITH ROLLUP]]
[HAVING where_definition]
[ORDER BY {col_name | expr | position}
[ASC | DESC] , ...]
[LIMIT {[offset,] row_count | row_count OFFSET offset}]
[PROCEDURE procedure_name(argument_list)]
[FOR UPDATE | LOCK IN SHARE MODE]]
si te fijasen una consulta simple primero va el select, luego los campos luego la(s) tabla(s) que vas a utilizar, luego viene el condicional es decir WHERE y luego vienen las clapsulas como ORDER BY, GROU BY, etc, entonces tu consulta deberia de ser
Código MySQL:
Ver original
  1. SELECT campo, campo1,... FROM tabla WHERE campo='loque sea' ORDER BY campo
has la consulta y nos comentas si te funciono, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #12 (permalink)  
Antiguo 17/10/2011, 20:40
 
Fecha de Ingreso: agosto-2011
Mensajes: 15
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Error en sintaxis

Lo puse de varias maneras y no me funciona x ejemplo asi: $consulta2="SELECT com_fecha, com_cupon, com_importe FROM compras WHERE tit_tarjeta=".$row['tit_tarjeta'] ORDER BY com_fecha;
  #13 (permalink)  
Antiguo 17/10/2011, 20:41
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: Error en sintaxis

Cita:
Iniciado por SrIkea Ver Mensaje
Lo puse de varias maneras y no me funciona x ejemplo asi: $consulta2="SELECT com_fecha, com_cupon, com_importe FROM compras WHERE tit_tarjeta=".$row['tit_tarjeta'] ORDER BY com_fecha;
y cual error te da el mysql_error()???
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #14 (permalink)  
Antiguo 17/10/2011, 20:49
 
Fecha de Ingreso: agosto-2011
Mensajes: 15
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Error en sintaxis

Me da error en esa linea, a lo mejor es un problema de comillas, no lo se, este es el error, Parse error: syntax error, unexpected T_STRING in C:\xampp\htdocs\tarjetas\cal_viaje.php on line 18
  #15 (permalink)  
Antiguo 17/10/2011, 20:51
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años, 7 meses
Puntos: 461
Respuesta: Error en sintaxis

aca
Cita:
$consulta2="SELECT com_fecha, com_cupon, com_importe FROM compras WHERE tit_tarjeta=".$row['tit_tarjeta'] ORDER BY com_fecha;
es completamente un problema de comillas, fijate que no concatenastes el ORDER BY luego de la variable deberia de quedar
Código PHP:
Ver original
  1. $consulta2="SELECT com_fecha, com_cupon, com_importe FROM compras WHERE tit_tarjeta=" . $row['tit_tarjeta'] . " ORDER BY com_fecha;";
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #16 (permalink)  
Antiguo 17/10/2011, 20:53
Avatar de Rodrhigo  
Fecha de Ingreso: septiembre-2011
Ubicación: Temuco-Valdivia-Osorno
Mensajes: 254
Antigüedad: 13 años, 2 meses
Puntos: 48
Respuesta: Error en sintaxis

Cita:
Iniciado por SrIkea Ver Mensaje
$consulta2="SELECT com_fecha, com_cupon, com_importe FROM compras WHERE tit_tarjeta=".$row['tit_tarjeta'] ORDER BY com_fecha;
te faltan las comillas y concatenarlo.Asi:
SELECT com_fecha, com_cupon, com_importe FROM compras WHERE tit_tarjeta=".$row['tit_tarjeta']." ORDER BY com_fecha";
  #17 (permalink)  
Antiguo 17/10/2011, 20:56
 
Fecha de Ingreso: agosto-2011
Mensajes: 15
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Error en sintaxis

Ahi lo corregi, gracias!!

Etiquetas: erro, parse
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 09:59.