Foros del Web » Programando para Internet » PHP »

Error de sintáxis

Estas en el tema de Error de sintáxis en el foro de PHP en Foros del Web. Hola a todos. Me inicio en el mundo del PHP, he leído varios manuales sobre el mismo y estoy dando mis primeros pasos en él. ...
  #1 (permalink)  
Antiguo 21/04/2008, 13:51
 
Fecha de Ingreso: agosto-2005
Mensajes: 152
Antigüedad: 18 años, 7 meses
Puntos: 0
Pregunta Error de sintáxis

Hola a todos. Me inicio en el mundo del PHP, he leído varios manuales sobre el mismo y estoy dando mis primeros pasos en él. Tengo el siguiente problema.
Estoy leyendo un manual el cual he seguido paso a paso cuidadosamente sin saltarme ninguna de las secciones del mismo. Estoy en la parte del trabajo con base de datos y como recuperar registros de la misma.
En el manual que estoy leyendo hay un ejemplo de búsqueda el cual he copiado para ver como funciona. Cree la base de datos. Cree el formulario html para introducir el criterio de búsqueda y por último cree el fichero php para procesar los datos introducidos en el formulario contra la base de datos y ahí está el problema.
El código del libro del ejemplo es el siguiente:

<html>
<head>
<title>Resultados de la Búsqueda</title>
</head>
<body>
<?php
//Nombre de las variables
$searchtype=$HTTP_POST_VARS['searchtype'];
$searchterm=$HTTP_POST_VARS['searchterm'];

$searchterm = trim($searchterm);

if (!$searchtype || !$searchterm)
{
echo "Usted no ha introducido criterios de búsqueda. Por favor inténtelo nuevamente.";
exit;
}
@ $db = mysql_pconnect('localhost', 'efelix', 'mychildren');

if (!$db)
{
echo "Error: No se puede conectar a la base de datos. Por favor intente más tarde.";
exit;
}

mysql_select_db('books');
$query = "select * from books where ".$searchtype." like '%".$searchterm."%'";
$num_results = mysql_num_rows($result);

echo '<p>Número de libros encontrados: '.$num_results.'</p>;

for ($i=0; $i <$num_results; $i++)
{
$row = mysql_fetch_array($result);
echo '<p><strong>'.($i+1).'.Titulo: ';
echo htmlspecialchars (stripslashes($row['title']));
echo '</strong><br/>Autor: ';
echo stripslashes ($row['author']);
echo '<br/>ISBN: ';
echo stripslashes ($row['isbn']);
echo '<br/>Price: ';
echo stripslashes ($row['price']);
echo '</p>';
}
?>
</body>
</html>
Cuando llamo al formulario y escribo en el textbox el texto a buscar me sale el siguiente error:
Parse error: syntax error, unexpected '>' in C:\AppServ\www\biblioteca\results.php on line 35
La linea 35 es: echo '<p><strong>'.($i+1).'.Titulo: ';
Haora cuando pongo comillas en vez de apotrofes entonces el error es el siguiente:
Parse error: syntax error, unexpected $end in
He leído en algunos lugares he incluso en este mismo foro que este error obedece a la falta de una llave de cierre, sinceramente no creo que esa sea el caso por que he chequeado el código y solamente hay tres bloques de llaves habiertos y cerrados cada uno de ellos.
Estoy realmente desesperado con esto espero me puedan ayudar. Desde ya muchas gracias.
  #2 (permalink)  
Antiguo 21/04/2008, 13:57
 
Fecha de Ingreso: febrero-2006
Mensajes: 858
Antigüedad: 18 años, 1 mes
Puntos: 4
Re: Error de sintáxis

si dices que esto es tu error:

Código PHP:
echo '<p><strong>'.($i+1).'.Titulo: '
escribelo asi:
Código PHP:
echo "<p><strong>".($i+1).".Titulo: "
saludos
__________________
*La amistad se multiplica cuando se divide*
  #3 (permalink)  
Antiguo 21/04/2008, 14:15
 
Fecha de Ingreso: agosto-2005
Mensajes: 152
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: Error de sintáxis

Muchas gracias por tu pronta respuesta.
Que sucede que cuando hago lo que tu me dices, que ya lo había probado anteriormente entonces el error me salta en la siguiente linea de código, el error que me genera es:
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in on line 36.
  #4 (permalink)  
Antiguo 21/04/2008, 14:20
 
Fecha de Ingreso: febrero-2006
Mensajes: 858
Antigüedad: 18 años, 1 mes
Puntos: 4
Re: Error de sintáxis

prueba remplazando todo por esto:

Código PHP:
<html>
<head>
<title>Resultados de la Búsqueda</title>
</head>
<body>
<?php
//Nombre de las variables
$searchtype=$HTTP_POST_VARS['searchtype'];
$searchterm=$HTTP_POST_VARS['searchterm'];

$searchterm trim($searchterm);

if (!
$searchtype || !$searchterm)
{
echo 
"Usted no ha introducido criterios de búsqueda. Por favor inténtelo nuevamente.";
exit;
}
$db mysql_pconnect('localhost''efelix''mychildren');

if (!
$db)
{
echo 
"Error: No se puede conectar a la base de datos. Por favor intente más tarde.";
exit;
}

mysql_select_db('books');
$query "select * from books where ".$searchtype." like '%".$searchterm."%'";
$num_results mysql_num_rows($result);

echo 
"<p>Número de libros encontrados: ".$num_results."</p>";

for (
$i=0$i <$num_results$i++)
{
$row mysql_fetch_array($result);
echo 
"<p><strong>".($i+1).".Titulo: ";
echo 
htmlspecialchars (stripslashes($row["title"]));
echo 
"</strong><br/>Autor: ";
echo 
stripslashes ($row["author"]);
echo 
"<br/>ISBN: ";
echo 
stripslashes ($row["isbn"]);
echo 
"<br/>Price: ";
echo 
stripslashes ($row["price"]);
echo 
"</p>";

?>
</body>
</html>
tus problemas son las comillas
__________________
*La amistad se multiplica cuando se divide*
  #5 (permalink)  
Antiguo 21/04/2008, 14:46
 
Fecha de Ingreso: agosto-2005
Mensajes: 152
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: Error de sintáxis

Hermano muchas gracias por tu respuesta, ya lo probé y no me da error, muy agradecido. No sabes cuanto aprecio tu ayuda.
  #6 (permalink)  
Antiguo 21/04/2008, 15:04
 
Fecha de Ingreso: febrero-2006
Mensajes: 858
Antigüedad: 18 años, 1 mes
Puntos: 4
Re: Error de sintáxis

de nada..
pero recuerda
al principio siempre es comillas de estas " "
por ejemplo:
Código PHP:
echo "blabla"
y ya para adentro se escriben las comillas simples
ejemplo
Código PHP:
echo "<input type='text'>"
SALUDOS!
__________________
*La amistad se multiplica cuando se divide*
  #7 (permalink)  
Antiguo 22/04/2008, 10:59
 
Fecha de Ingreso: agosto-2005
Mensajes: 152
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: Error de sintáxis

reinmonfranco saludos. Aquí otra vez disculpa si te molesto, pero tengo el siguiente problema, disculpa que te haya seleccionado a ti, pero el problema es que no quiero postear este mismo tema.
El problema es que cuando pongo le criterio de búsqueda en el textbox en el formulario se me ejecuta la misma línea, donde esta el if (!$searchtype || !$searchterm), esto me sucede ponga o no ponga nada como criterio de búsqueda, he vuelto a releer un buen manual que tengo de php que se llama beginning php4, y esto lo interpreto como que si no he seleccionado nada entonces que me salga el texto de este if, no se si estoy en lo correcto.
De todas formas te mando el formulario para que lo veas y me digas donde puede estra el problema.

<html>
<head>
<style>
#buscador {border: 1px solid #CCCCCC;}
</style>
</head>
<body>
<div id="buscador" align="center">
<h3><marquee behavior="scroll" direction="right"><font color="#00CCFF">Catálogo de búsqueda de información</font></marquee></h3>
<form method="get" enctype="text/plain" action="results.php">
Seleccionar tipo de Búsqueda:<br/>
<select name="searchtype">
<option value="author">Autor</option>
<option value="title">Titulo</option>
<option value="isbn">ISBN</option>
</select>
<br/>
<img src="buscar.jpg" border="0"> Buscar
<br /><input type="text" name="searchterm" size="20"><br />
<input type="submit" value=" Buscar ">
</form>
</div>
</body>
</html>
Bueno el fichero php ya lo vista así que no necesito mandarlo otra vez. Disculpa. Muchas Gracias.
  #8 (permalink)  
Antiguo 22/04/2008, 16:18
 
Fecha de Ingreso: febrero-2006
Mensajes: 858
Antigüedad: 18 años, 1 mes
Puntos: 4
Re: Error de sintáxis

no te entendi mucho te refieres a que quieres que se apriete el boton para que despues haga lo demás ¿
si eso es lo que quieres tendrias que poner
if (isset($_POST['NombreBoton'])) {
todo el codigo
}

SALUDOS
__________________
*La amistad se multiplica cuando se divide*
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 07:47.