Foros del Web » Programando para Internet » PHP »

error de sintaxis

Estas en el tema de error de sintaxis en el foro de PHP en Foros del Web. Hola a todo, tengo un problema con el siguiente código: <?php ... echo '<ul class="imagelist">'; while($row=mysql_fetch_array($rs)){ echo '<li class="first index">'; echo "<h2>" .$row['alpha'] ."</h2>"; echo ...
  #1 (permalink)  
Antiguo 30/05/2009, 11:05
 
Fecha de Ingreso: abril-2009
Mensajes: 43
Antigüedad: 15 años
Puntos: 0
error de sintaxis

Hola a todo,

tengo un problema con el siguiente código:

<?php
...
echo '<ul class="imagelist">';
while($row=mysql_fetch_array($rs)){
echo '<li class="first index">';
echo "<h2>" .$row['alpha'] ."</h2>";
echo '<div class="glossary-term">';
echo '<a href="javascript:paginas('paginas/diccionario.php?term=$row[term].','contenidor')">$row['term']</a>';

echo'</div>';
echo '</li>';
}
echo '</ul>';
?>

pues me da el siguiente error :

Parse error: parse error, expecting `','' or `';'' in C: para la linea en negrita.
No sé porqué.
Gracias.
  #2 (permalink)  
Antiguo 30/05/2009, 11:09
Avatar de Kenichi  
Fecha de Ingreso: enero-2009
Ubicación: Rosario, Argentina
Mensajes: 160
Antigüedad: 15 años, 3 meses
Puntos: 6
Respuesta: error de sintaxis

Código PHP:
<?php
//...
echo '<ul class="imagelist">';
while(
$row=mysql_fetch_array($rs)){
echo 
'<li class="first index">';
echo 
"<h2>" .$row['alpha'] ."</h2>";
echo 
'<div class="glossary-term">';
echo 
'<a href="javascript:paginas(\'paginas/diccionario.php?term='.$row[term].'\',\'contenidor\')">'.$row['term'].'</a>';

echo
'</div>';
echo 
'</li>';
}
echo 
'</ul>';
?>
Prueba asi, el error que tienes es que pusiste algunas comillas simples ' sin la contrabarra \, es decir, la funcion echo termina en esa comilla, si quieres que no termine y tienes que escribir la comilla, pon adelante la contrabarra para que quede asi: \' Eso es para escapar la comilla. Espero que te sirva, saludos
  #3 (permalink)  
Antiguo 30/05/2009, 11:20
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: error de sintaxis

siempre es bueno leer las recomendaciones!
http://www.forosdelweb.com/f18/como-...1/#post2414268
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 30/05/2009, 11:25
 
Fecha de Ingreso: abril-2009
Mensajes: 43
Antigüedad: 15 años
Puntos: 0
Respuesta: error de sintaxis

Mchas gracias Kenichi, lo probé antes de postear y el resultado fue el mismo.
También hice múltiples combinaciones de comillas simples por dobles por desespero...pero siempre el mismo error.
Si hubiese otra forma de incluir la función paginas(...)? la utilizo para hacer una carga de otra mediante ajax pasándole un valor por url.
Saludos.
  #5 (permalink)  
Antiguo 30/05/2009, 11:30
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: error de sintaxis

no se trata de intentar e intentar combinaciones, en el enlace que coloque dice muy claramente como deben usarse las comillas para cada caso...

que al final podría ser así
Código PHP:
echo sprintf('<a href="javascript:foo(\'candy/bar.php?does=%s\', \'contenedor\')">%s</a>'$row['term'], $row['term']); 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 30/05/2009, 11:55
 
Fecha de Ingreso: abril-2009
Mensajes: 43
Antigüedad: 15 años
Puntos: 0
Respuesta: error de sintaxis

francamente interesante y útil.
funcionó.
Gracias.
  #7 (permalink)  
Antiguo 30/05/2009, 19:00
 
Fecha de Ingreso: abril-2009
Mensajes: 43
Antigüedad: 15 años
Puntos: 0
Respuesta: error de sintaxis

Hola de nuevo, después de solucionar el error continué programando mi sitio web y al substituir el código en negrita:
...
while ($row = mysql_fetch_array ($result))
{
echo '<TR>';
echo'<td>';
print ("<TD><li><a href='ejercicios/testgeneral.php?codigo=$row[cod_test]'>$row[nom_test]</a></li></TD>\n");


por este otro siguiendo los consejos de pateketrueke :
...

echo sprintf('<li><a href="javascript:paginas(\'ejercicios/testgeneral.php?codigo=%c\',\'cos\')">%n</a></li>',$row['cod_test'],$row['nom_test']);

me encuentro con que si en apariencia son equivalentes, el primero conseguia mostrar tres enlaces en la página y el segundo muestra la página en blanco.
Cómo es posible?
Gracias de antemano.
  #8 (permalink)  
Antiguo 30/05/2009, 19:49
 
Fecha de Ingreso: abril-2009
Mensajes: 43
Antigüedad: 15 años
Puntos: 0
Respuesta: error de sintaxis

Di con el error.
No puse el tipo de indicador correcto.
Aquí pongo la chuleta para quien le pueda ser útil.
Saludos.

"
...
Un indicador de tipo que especifica el tipo bajo el que deben tratarse los datos del argumento. Los posibles tipos son:


% - un caracter de porcentaje literal. No requiere argumento.
b - el argumento es tratado como un entero, presentado como un número binario.
c - el argumento es tratado como un entero, y presentado como el caracter con ese valor ASCII.
d - el argumento es tratado como un entero, y presentado como un número decimal (con signo).
e - el argumento es tratado como notación científica (p.ej. 1.2e+2).
u - el argumento es tratado como un entero, y presentado como un número decimal sin signo.
f - el argumento es tratado como un flotante, y presentado como un número de punto flotante (teniendo en cuenta la localidad).
F - el argumento es tratado como un flotante, y presentado como un número de punto flotante (no tiene en cuenta la localidad). Disponible desde PHP 4.3.10 y PHP 5.0.3.
o - el argumento es tratado como un entero, y presentado como un número octal.
s - el argumento es tratado y presentado como una cadena.
x - el argumento es tratado como un entero y presentado como un número hexadecimal (con letras minúsculas).
X - el argumento es tratado como un entero y presentado como un número hexadecimal (con letras mayúsculas). ... "
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 10:54.