Foros del Web » Programando para Internet » PHP »

id para buscador

Estas en el tema de id para buscador en el foro de PHP en Foros del Web. En mi buscador la consulta a la base de datos sale bien, pero cada uno de los titulos es un enlace donde debe de salir ...
  #1 (permalink)  
Antiguo 24/02/2005, 04:43
 
Fecha de Ingreso: junio-2004
Mensajes: 88
Antigüedad: 13 años, 5 meses
Puntos: 0
id para buscador

En mi buscador la consulta a la base de datos sale bien, pero cada uno de los titulos es un enlace donde debe de salir la ficha concreta. El problema es que no se como hacer para que me pille la id porque no lo hace.
Este es el codigo de resultados del buscador:
<?php
include("config.php");
if($enviar) {//comprobamos que se haya pulsado el botón enviar
$resp = mysql_query("select titulo from biblioteca where titulo LIKE '%".$_POST[titulo]."%' order by id" ) or die (mysql_error());//realizamos la consulta
if(mysql_num_rows($resp) == "0") {//comprobamos si hay respuestas
echo ("
<table>
<tr>
<td class='letrageneral'>No hay resultados
</td></tr></table>");

}
else
{
echo ("
<table>
<tr>
<td class='introbuscador'>
Estos son los resultados de la búsqueda:</td></tr></table>");
while($sql = mysql_fetch_array($resp)) {//imprimimos las respuestas
echo
("<table class='tablabuscador'>
<tr>
<td class='letraresul'><a href='titbiblioconcre.php?id=$sql[id]' class='letraresul'>
-.$sql[titulo].
(no se como poner este cacho)</a></td></tr></table>
")
;

}
echo ("
<table>
<tr>
<td class='letranomas'>Ya no hay más resultados</td></tr></table>");
}
}
?>

Y esto lo que tampoco se como poner en la pagina de los titulos concretos:
<?php
include("config.php");
$link=mysql_connect($maquina,$user,$password);
$sql="select * from biblioteca where (id='$id')";
$result=mysql_db_query($acicae,$sql,$link);
while($row=mysql_fetch_array($result))
{
echo(" ec etc
Muchas gracias
  #2 (permalink)  
Antiguo 24/02/2005, 05:24
 
Fecha de Ingreso: enero-2005
Mensajes: 89
Antigüedad: 12 años, 10 meses
Puntos: 0
Hola!!

fijate que en la primer consulta deberias tambien agregar el campo "id".
Donde tenes asi:

select titulo from biblioteca where titulo LIKE...

deberias poner:

select id, titulo from biblioteca where titulo LIKE...

para que te tome el "id", ya que solo estabas pidiendo el titulo.

en la segunda parte, no entiendo bien que es lo que dices que no puedes hacer. Lo que veo y no estoy seguro de si esta bien, es que si ese codigo esta en otra pagina, deberias tomar la variable "id" que pasaste por el url de esta forma $_GET["id"], vos concatenas cuando armas la consulta directamente con una variable "id" que no definis en ninguna parte, por lo que supongo que ese id es el que tomas cuando venis de la pagina de resultados.
Si no tenes activo el register_globals (que es mejor que sea asi por cuestiones de seguridad) no te va a tomar directamente la variable "id" por lo que deberas tomarlo del array $_GET[].

igualmente explica un poquito mas lo que no podes hacer con el segundo codigo para poder ayudarte mejor.

Un saludo!!!
__________________
Diegote ::.

www.mmsolutions.com.ar
  #3 (permalink)  
Antiguo 24/02/2005, 05:41
 
Fecha de Ingreso: junio-2004
Mensajes: 88
Antigüedad: 13 años, 5 meses
Puntos: 0
Bueno, pues muchiiiiiiiiisimas gracias, ya funciona todo como queria.
Una sola cosa: En la segunda página, donde sale la ficha de cada titulo, he puesto un enlace asi para volver a la pagina anterior, donde salian todos los resultados de la busqueda:
<tr><td class='recordatoriostilo'><a href='resultadostitulo.php' class='recordatoriostilo'>+ Volver a los resultados de la búsqueda</td></tr></table>
El problema es que al volver, la pagina sale vacia, no salen ya todos los enlaces de la busqueda.
Gracias otra verz
  #4 (permalink)  
Antiguo 24/02/2005, 05:51
 
Fecha de Ingreso: junio-2004
Mensajes: 88
Antigüedad: 13 años, 5 meses
Puntos: 0
y otra cosita

Uno de los campos que quiero sacar en la ficha concreta despues de hacer la busqueda es el campo prestado, donde salga si el libro esta prestado o no.
Yo los campos de la ficha los he puesto asi:
<td class='fechanoticia'>Autor:</td></tr>
<tr><td class='cuerponoticianegro'>$row[autor]</td></tr>
Y no se como pondria el campo prestado dependiendo de si en la base de datos esta con si o con no.
y gracias de nuevo
  #5 (permalink)  
Antiguo 24/02/2005, 06:02
 
Fecha de Ingreso: enero-2005
Mensajes: 89
Antigüedad: 12 años, 10 meses
Puntos: 0
lo que podes hacer es que pases por url el titulo de la busqueda anterior. Entonces podes hacer esto

<a href='titbiblioconcre.php?id=$sql[id]&titu=$_POST['titulo']' class='letraresul'>...

lo que va a generar en la pagina que te presenta el titulo en particular una variable llamada titu (puede ser un nombre mejor jaja) que va a contener el valor del titulo de la busqueda de donde vino (es decir la que te mandaron por el formulario de busqueda), a la cual accedes mediante $_GET['titu']. Despues lo que tenes que hacer es pasar ese mismo valor por url a la pagina de busqueda de la siguiente manera:

><a href='resultadostitulo.php?titu=$_GET['titu']' class='recordatoriostilo'>+ Volver a los resultados de la búsqueda...

entonces en la pagina del buscador tambien agregas una comprobacion para ver si te llega por url una variable llamada titu y con esa haces de nuevo la busqueda, por lo que al volver te va a presentar de nuevo los resultados. La comprobacion que tendrias que agregar seria:

if (isset($_GET['titu'])) {
titulo = $_GET['titu'];
}

Luego con esa variable titulo haces la busqueda, queda en vos ver como lo agregarias tu codigo, ya que en la cadena de busqueda usas directamente para generar la consulta $_POST['titulo'].
Pensa bien como lo vas a agregar, pero esa seria una forma de por lo menos hacer que te presente la misma busqueda de donde vino la pagina del resultado particular...

espero te sirva, saludos!!!
__________________
Diegote ::.

www.mmsolutions.com.ar
  #6 (permalink)  
Antiguo 24/02/2005, 06:10
 
Fecha de Ingreso: enero-2005
Mensajes: 89
Antigüedad: 12 años, 10 meses
Puntos: 0
por el tema del campo prestado depende de como lo quieras presentar, si queres que aparezca un checkbox activado o desactivado o si queres que diga en forma textual "Esta prestado" o "No esta prestado".
en el ultimo caso por ejemplo podes hacer por ejemplo:

<?php
if ($row[prestado]=="si") {
$estado = "Esta prestado";
} else{
$estado = "No esta prestado";
}
?>
<td class='fechanoticia'>Estado:</td></tr>
<tr><td class='cuerponoticianegro'>$estado</td></tr>

fijate si te sirve la otra es que de la misma forma pero para hacer un checkbox le insertes el codigo que indique si debe o no aparecer activado el checkbox modificando con codigo su propiedad checked, no recuerdo bien la sintaxis.. jeje
__________________
Diegote ::.

www.mmsolutions.com.ar
  #7 (permalink)  
Antiguo 24/02/2005, 06:27
 
Fecha de Ingreso: junio-2004
Mensajes: 88
Antigüedad: 13 años, 5 meses
Puntos: 0
Muchiiiiiiisimas gracias, me has ayudado un monton, hoy voy a dormir tranquila!!!
Y ya de verdad, la ultima pregunta: resulta que si en el buscador pongo por ejemplo, una letra, me saca resultados. Si pongo una palabra rara, si me pone que no hay resultados. Como podria arreglarlo??
Esta es la consulta:
<?php
include("config.php");
if($enviar) {//comprobamos que se haya pulsado el botón enviar
$resp = mysql_query("select id, autor, titulo from biblioteca where autor LIKE '%".$_POST[autor]."%' order by id" ) or die (mysql_error());//realizamos la consulta
if(mysql_num_rows($resp) == "0") {//comprobamos si hay respuestas
echo ("
Y gracias otra vez y ya no molesto mas....por ahora

Última edición por bonemachine; 24/02/2005 a las 06:34
  #8 (permalink)  
Antiguo 24/02/2005, 06:33
 
Fecha de Ingreso: enero-2005
Mensajes: 89
Antigüedad: 12 años, 10 meses
Puntos: 0
por nada, para eso son estos foros!! :)
ahhh y que tengas un feliz cumple el jueves que viene!!! jaja

saludos!!
__________________
Diegote ::.

www.mmsolutions.com.ar
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 12:10.