Problemas con enlace

Hola gulphora, quisiera hacerte una consulta, ya que llevo bastante tiempo dándole vueltas y no doy con la solución, te explico:
Tengo una web cuya base de datos es de mysql y un buscador, que es:
buscador.php:
<?
session_start();
$_SESSION['titulo']='titulo';
$tabla= $_POST['busca'] ;
$seccion = $_POST['seccion'];
$provincia = $_POST['provincia'];
$host_db = "localhost"; // Aquí pones el servidor mysql
$usuario_db = "usuario"; // Aquí el nombre de usuario de la base de datos
$pass_db = "micontraseña"; // La contraseña de la base de datos
$base_db = "mibase dedatos"; // El Nombre de la base de datos, que previamente habiamos definido
$conexion = mysql_connect($host_db, $usuario_db, $pass_db);
mysql_select_db($base_db,$conexion);
$select= "SELECT * from $tabla WHERE seccion LIKE '%$seccion%' and provincia LIKE '%$provincia%' ORDER BY id DESC";
$result = mysql_query($select,$conexion) or die(mysql_error());
$found = false; // Si el query ha devuelto algo pondrá a true esta variable
while ($row = mysql_fetch_array($result)) {
$found = true;
{
// Tenemos que mostrar todos los campos de las filas donde se haya
// encontrado la búsqueda.
if(is_int($resultado)) {
continue;
session_start();
 $_SESSION['titulo']='titulo';
}
echo"
<body bgcolor=#FFD700>
";
;echo"<center>
<table width=690 Border=1 Cellspacing=4>
";
echo "<b>";"</b>";
echo "
<tr>
<th width=140>".$row ["id"]."</th>&nbsp &nbsp &nbsp<th><A href='pagina.php'>".$row ["titulo"]."</A></th>
&nbsp &nbsp &nbsp<th><A href=otrapagina.html TARGET=principal>".$row ["empresa"]."</A> </th>&nbsp &nbsp &nbsp<th width=140>".$row ["provincia"]."</th>
</tr>
";
echo"
<p> </p>
";
echo"
<p> </p>
";
echo "
<tr>
<td width=290>".$row ["comentarios"]."</td>
";
echo"
<p> </p>
";
echo"
<hr size=7 color=green>
";
echo"
</tr>
";
echo "
<p>".$busqueda."</p>
" ;
echo"
</table>
";}
}
{
}
if(!$found)
{
echo"
<body bgcolor=#FFD700>
";
echo "<center><font size=5 color=red>";
echo"No se encontraron resultados para la búsqueda introducida";}
?>
Con el buscador no hay problemas me da bien las busquedas, pico en uno de los resultados, para que me amplie la información de ese resultado, mediante <th><A href='pagina.php'>".$row ["titulo"]."</A></th>, y ahí viene el problema ya que en lugar de darme solo ese resultado me da la información de todos, y yo solo quiero el que he picado, quiero aclararte que la búsqueda en pagina.php, tiene que ser a través del campo "titulo", que esta en la base de datos.
pagina.php:
<?
session_start();
$tabla= $_POST['busca'] ;
$seccion = $_POST['seccion'];
$provincia = $_POST['provincia'];
$titulo=$_POST['titulo'];
$host_db = "localhost"; // Aquí pones el servidor mysql
$usuario_db = "usuario"; // Aquí el nombre de usuario de la base de datos
$pass_db = "micontraseña"; // La contraseña de la base de datos
$base_db = "mibase de datos"; // El Nombre de la base de datos, que previamente habiamos definido
$conexion = mysql_connect($host_db, $usuario_db, $pass_db);
mysql_select_db($base_db,$conexion);
$select= "SELECT * from clientes WHERE titulo LIKE '%$titulo%' ";
$result = mysql_query($select,$conexion) or die(mysql_error());
// Si el query ha devuelto algo pondrá a true esta variable
while ($row = mysql_fetch_array($result)) {
{
// Tenemos que mostrar todos los campos de las filas donde se haya
// encontrado la búsqueda.
if(is_int($result))
continue;
}
echo"
<body bgcolor=#FFD700>
";
echo"<center>
<table width=450 Border=1 Cellspacing=4 align=center>
";
echo"
<tr>
<th><basefont color=#B22222 size=4>".TÍTULO."</th><th><basefont color=#000080 size=3>".$row ["titulo"]."</th>
</tr>
<tr>
<th><basefont color=#B22222 size=4>fecha de publicación:</th><th><basefont color=#000080 size=3>".$row ["fecha"]."</th>
</tr>
<tr>
<th><basefont color=#B22222 size=4>Id </th><th><basefont color=#000080 size=3>".$row ["id"]."</th>
</tr>
<th><basefont color=#B22222 size=4>".Seccion."</th><th><basefont color=#000080 size=3>".$row ["seccion"]."</th>
<tr>
<th><basefont color=#B22222 size=4>".Localidad."</th><th><basefont color=#000080 size=3>".$row ["localidad"]."</th>
</tr>
<th><basefont color=#B22222 size=4>".Provincia."</th><th width=140><basefont color=#000080 size=3>".$row ["provincia"]."</th>
</tr>
";
echo"<center>
<table width=500 Border=4 bordercolor=blue Cellspacing=4 align=center>
";
echo "<b>";"</b>";
echo"
<tr>
<th><basefont color=#B22222 size=4>DESCRIPCION</th><th><basefont color=#000080 size=3>".$row ["descripcion"]."</th>
</tr>
";
echo"<center>
<table width=450 Border=0 Cellspacing=4 align=center>
";
echo"
<tr>
<th><basefont color=#B22222 size=4>Telefono de contacto</th><th><basefont color=#000080 size=3>".$row ["telefono"]."---".$row ["movil"]."</th>
</tr>
<tr>
<th><basefont color=#B22222 size=4>E-mail:</th><th><basefont color=#000080 size=3><a href=mailto:".$row ["email"].">".$row ["email"]."</a></th>
</tr>
";
echo"<center>
<table width=450 Border=2 Cellspacing=4 align=center>
";
;"
</table>
";
echo"<center><basefont color=red size=6>";
echo"<a href=final.html><strong>finalizar</strong>";
echo"
<hr size=12 color=red width=100% align=center>
";
}
?>
Lo que quiero es que solo me salgan los datos del resultado en el que pico, mediante la búsqueda por "titulo", en página.php.
Quizás veas muchos fallos pero es que estoy empezando en este mundillo de las...

1 Respuesta

Respuesta
1
<th><A href='pagina.php'>".$row ["titulo"]."</A></th>
No entiendo muy bien tu consulta (aparte de que es un poco engorroso eso de pegar toda una página para que los expertos lo veamos; a veces hay que concretar y a mí particularmente me da mucha pereza leer más de tres párrafos...).
Creo que lo que quieres es que cuando clickes en ese resultado de arriba, te lleve a página.php y te muestre el resultado, ¿no?
Pues el enlace tendrías que hacerlo a pagina.php?id_resultado=".$row ["id_unico"]."
O si quieres que sea por titulo: pagina.php?titulo=".utf8encode($row ["titulo"])."
Y luego en página.php hacer la correspondiente búsqueda en la base de datos, a partir del id_resultado o del titulo.
Si lo vas a hacer a través del titulo, deberás hacer la consulta utilizando utf8decode.
Con utf8encode lo que haces es codificar los datos para que puedan ser pasados a través de get o post con mucha más facilidad y para que no se corrompa la cadena al ser interpretada con el navegador como otros parámetros o porquería.
Con utf8decode reviertes lo anterior y obtienes la cadena original.
Muchas gracias gulphora por tu ayuda, y perdón por mis errores, he avanzado bastante con tu ayuda, pero ¿me podías aclarar un poco como se hace la consulta a mysql utilizando utf8decode?
$sql = "select campo1, campo2 from tabla where campo1 = '.utfdecode($variable).' ";
Pero para usar utf8decode, debes usar primera utf8encode!
Si no te sale la consulta que hagas, pégame aquí el sql y miramos a ver si tiene fallos...
Me sale este error:
Fatal error: Call to undefined function utf8encode() in C:\AppServ\www\base datos\pagina.php on line 54.
La linea 54 es:
Echo "
<tr>
<th width=140>".$row ["id"]."</th>&nbsp &nbsp &nbsp<th><A href=pagina.php?titulo=".utf8encode($row ["titulo"]).">".$row ["titulo"]."</A></th>
¿Qué hago mal?
¿Hay qué modificar algo en mysql?
Gracias por tu paciencia
Fallo mío, has de colocar: utf8_encode y utf8_decode, te lo he dicho mal (sin querer, que conste).
Me sale la página en blanco¡
Cambialo por esto a ver:
<A href='pagina.php?titulo=".utf8encode($row ["titulo"])." '>".$row ["titulo"]."</A>
El href de un elemento A debería ir siempre entrecomillado, o bien comillas simples o bien dobles.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas