Foros del Web » Programando para Internet » PHP »

Busqueda en base de datos

Estas en el tema de Busqueda en base de datos en el foro de PHP en Foros del Web. Hola como estan? amigos tengo una base de datos en la que almaceno datos de libros. En una primera busqueda tengo que mostrar los datos ...
  #1 (permalink)  
Antiguo 08/09/2008, 09:45
 
Fecha de Ingreso: septiembre-2007
Mensajes: 120
Antigüedad: 16 años, 7 meses
Puntos: 0
Busqueda en base de datos

Hola como estan? amigos tengo una base de datos en la que almaceno datos de libros. En una primera busqueda tengo que mostrar los datos mas basicos "TITULO Y AUTOR". Los resultados los estoy mostrando dentro de una tabla pero necesito que en los resultados el campo TITULO tenga un link para mostrar todos los campos de ese registro es decir, me muestre el registro completo.

Les pido ayuda porque la verdad, no tengo idea de como hacerlo. Mi codigo es el siguiente
Código PHP:
<?php 
include "conexion.php";
$sql "select * from tblibros where titulo='$_REQUEST[buscar]' OR autor='$_REQUEST[buscar]' ORDER BY id ASC";

include_once 
'PHPPaging.lib.php';
$paging = new PHPPaging;  //clase utilizada para la paginacion de resultados

$paging->agregarConsulta($sql);   

$consulta mysql_query($sql,$conexion) or die( mysql_error() );

//Configuracion de script
$paging->ejecutar();
//fin configuracion

//gener tabla para disponer resultados
echo "<br />"
echo 
"<table border=\"1\" width=\"70%\">";  
echo 
"<tr>";  
echo 
"<td align=center bgcolor=#C0C0C0><b>ID</b></td>";  
echo 
"<td align=center bgcolor=#C0C0C0><b>Titulo</b></td>";  
echo 
"<td align=center bgcolor=#C0C0C0><b>Autor</b></td>";  
echo 
"</tr>";  

//ubicar valores de la tabla
while($datos $paging->fetchResultado()) {  
    echo 
"<tr>";  
    
$error=print "<td align=center>$datos[id]</td>";  
    echo 
"<td align=center>$datos[titulo]</td>";  
    echo 
"<td align=center>$datos[autor]</td>";  
    echo 
"</tr>";  

}  

if (!
$error) { print "no se encontro"; }
else { 
"ingrese su busqueda"; }

echo 
"</table>";  
echo 
"<br />"

echo 
"<b>Página </b>".$paging->numEstaPagina()."<b> de </b>".$paging->numTotalPaginas();
echo 
"<br>Registros del ".$primer_elemento $paging->numPrimerRegistro()." al ".$ultimo_elemento $paging->numUltimoRegistro()." de un total de ".$total_registros $paging->numTotalRegistros(); 
echo 
"<br>Numero de registros mostrados: ".$paging->numRegistrosMostrados(); 

mysql_close($conexion);
?>
Gracias por su ayuda
  #2 (permalink)  
Antiguo 08/09/2008, 09:56
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 16 años, 11 meses
Puntos: 6
Respuesta: Busqueda en base de datos

Hola,


A esta linea echo "<td align=center>$datos[titulo]</td>";

cambiala de esta forma :

Código:
 echo "<td align=center><a href="enlace.php?titulo=$datos[titulo]">$datos[titulo]</a></td>";
Y lo recojes con GET a donde lo mandes: $titulo=$_GET['titulo'];

saludos!!!
__________________
"Eres grande por que caminas entre gigantes"

Última edición por ferbux; 08/09/2008 a las 10:04
  #3 (permalink)  
Antiguo 08/09/2008, 09:56
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 15 años, 11 meses
Puntos: 43
Respuesta: Busqueda en base de datos

en el link podrias enviar el id del libro y en la pagina siguiente lo retomas y haces la consulta nuevamente, esta ves de manera select *

Saludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #4 (permalink)  
Antiguo 08/09/2008, 10:00
 
Fecha de Ingreso: septiembre-2007
Mensajes: 120
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Busqueda en base de datos

Gracias Ferbux y thewebsaint, lo logico seria cargar el link titulo para pasar a otra llamada en php pero lo que no se es como mantener el valor de ese registro porque mi query lo tengo de la siguiente manera
Código PHP:
$sql "select * from tblibros where titulo='$_REQUEST[buscar]' OR autor='$_REQUEST[buscar]' ORDER BY id ASC"
pero al hacer ese link, como mantengo el valor de id (lo tengo definido como campo clave) para mostrar ese registro especificamente??
  #5 (permalink)  
Antiguo 08/09/2008, 10:04
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 15 años, 11 meses
Puntos: 43
Respuesta: Busqueda en base de datos

colocas por ejemplo

<a href="mostrarDatos.php?id=<php echo $id; ?>">Mostrar datos</a>

esto lo envias por la url y la retomas con get
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #6 (permalink)  
Antiguo 08/09/2008, 10:08
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 16 años, 11 meses
Puntos: 6
Respuesta: Busqueda en base de datos

Si pones el contenido de tus tablas de esta forma:

...
echo "<td align=center><a href="tupagina.php?titulo=$datos[titulo]">$datos[titulo]</a></td>";
echo "<td align=center><a href="tupagina.php?autor=$datos[autor]">$datos[autor]</a></td>";
....

Puedes tener tu consulta de esta forma:


Código:
$sql = "select * from tblibros where titulo=$_GET['titulo'] OR autor=$_GET['autor'] ORDER BY id ASC";
__________________
"Eres grande por que caminas entre gigantes"
  #7 (permalink)  
Antiguo 08/09/2008, 10:36
 
Fecha de Ingreso: septiembre-2007
Mensajes: 120
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Busqueda en base de datos

amigos intente hacerlo de esta manera

Código PHP:

echo "<td align=center><a href=mostrarDatos.php?id=".<?php echo $id;?>.">$datos[titulo]</a></td>";
pero me da un error porque el cierre del ?> me lo esta tomando para el cierre del codigo completo y aun no doy con la solucion para pasar al registro completo
  #8 (permalink)  
Antiguo 08/09/2008, 10:41
 
Fecha de Ingreso: septiembre-2007
Mensajes: 120
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Busqueda en base de datos

ferbux, estoy intentado con tu sugerencia, solo que le puse comillas simples para la definicion del link y funciona mostrando ese campo como link para el archivo que se indica

Código PHP:
echo "<td align=center><a href="tupagina.php?titulo=$datos[titulo]">$datos[titulo]</a></td>"
la cosa es, que dentro de este archivo deberia mostrarme por defecto los datos completos de ese registro, como hago para llamarlos dentro de lo que seria tupagina.php?? disculpa tanta molestia
  #9 (permalink)  
Antiguo 08/09/2008, 10:44
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 15 años, 11 meses
Puntos: 43
Respuesta: Busqueda en base de datos

Cita:
echo '<td align=center><a href="tupagina.php?titulo='.$datos['titulo'].'">'.$datos['titulo'].'</a></td>';
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #10 (permalink)  
Antiguo 08/09/2008, 10:52
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 16 años, 11 meses
Puntos: 6
Respuesta: Busqueda en base de datos

tu pagina es el nombre de tu codigo php en donde estas ejecutando las tablas y todo, y lo que debes hacer es direccionar el href algo como esto:

Código:
<?php  
include "conexion.php"; 
//$sql = "select * from tblibros where titulo='$_REQUEST[buscar]' OR autor='$_REQUEST[buscar]' ORDER BY id ASC"; 

include_once 'PHPPaging.lib.php'; 
$paging = new PHPPaging;  //clase utilizada para la paginacion de resultados 

$paging->agregarConsulta($sql);    

$consulta = mysql_query($sql,$conexion) or die( mysql_error() ); 

//Configuracion de script 
$paging->ejecutar(); 
//fin configuracion 

//gener tabla para disponer resultados 
echo "<br />";  
echo "<table border=\"1\" width=\"70%\">";   
echo "<tr>";   
echo "<td align=center bgcolor=#C0C0C0><b>ID</b></td>";   
echo "<td align=center bgcolor=#C0C0C0><b>Titulo</b></td>";   
echo "<td align=center bgcolor=#C0C0C0><b>Autor</b></td>";   
echo "</tr>";   

//ubicar valores de la tabla 
while($datos = $paging->fetchResultado()) {   
    echo "<tr>";   
    $error=print "<td align=center>$datos[id]</td>";   
    echo "<td align=center><a href=\"Elnombredeestapagina.php?action=mostrar&titulo=$datos[titulo]\">$datos[titulo]</a></td>";   
    echo "<td align=center><a href=\"Elnombredeestapagina.php?action=mostrar&autor=$datos[autor]\">$datos[autor]</a></td>";   
    echo "</tr>";   

}   

if (!$error) { print "no se encontro"; } 
else { "ingrese su busqueda"; } 

echo "</table>";   
echo "<br />";  

echo "<b>Página </b>".$paging->numEstaPagina()."<b> de </b>".$paging->numTotalPaginas(); 
echo "<br>Registros del ".$primer_elemento = $paging->numPrimerRegistro()." al ".$ultimo_elemento = $paging->numUltimoRegistro()." de un total de ".$total_registros = $paging->numTotalRegistros();  
echo "<br>Numero de registros mostrados: ".$paging->numRegistrosMostrados();  

 if($_GET["action"] == "mostrar"){
     
	  $sql = "select * from tblibros where titulo=$_GET['titulo'] OR autor=$_GET['autor'] ORDER BY id ASC";
	  $result=mysql_query($sql) or die('Consulta fallida: ' . mysql_error()); 
	  $row=mysql_fetch_array($result);
	  echo $row;
	  //y ya los puedes mostrar tal vez en otra tabla.
     
 
 }


mysql_close($conexion); 
?>
__________________
"Eres grande por que caminas entre gigantes"
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 21:18.