¿Cómo puedo diseñar una página web en php que contenga una búsqueda sobre una base de datos?

Estoy haciendo una página web y en esta quisiera poner una búsqueda avanzada de paginas; por ejemplo mi página principal y desde esta ir a otras páginas, hechas por mi y almacenadas en el mismo servidor; por ejemplo en la página principal poner en un recuadro pagina1 darle a buscar y que me muestre la pagina1; he estado buscando información y dicen que debo de tener una base de datos; en fin de lo perdido que estaba aun ahora estoy más perdido, las páginas ya las tengo hechas; ¿Pero cómo hago para meterlas en una base de datos?
¿Puedes ayudarme en algo?.
En la siguiente dirección hay una búsqueda simple; esta al lado derecho; la página es: www.inside-pc.net
como puedes ver allí se pone una descripción y se dirige a otra página según la descripción se le ha dado.

1 respuesta

Respuesta
1
Recibe mis cordiales saludos, te dire que para hacer lo que deseas primero debes crear una Tabla paginas donde tendra los siguientes campos id, categoria, subcategoria,nombre y descripcion y footo si deseas, de esta manera cuando tu vez que los combos son utilizados lo unico que se hace con cada uno es ir construyendo la sentencia a ejecutar, ademas esta tabla debera tener un indice FULL TEXT (http://www.mysql.com/doc/en/Fulltext_Search.html, http://www.fabio.com.ar/verpost.php?id_noticia=959) para los campos nombres y descripcion, que te permite relizar busquedas mas optimas que con LIKE, para construir la sentencia sera asi:
$query="SELECT *, MATCH(titulo, cuerpo) AGAINST ('Paleta') as Score FROM paginas WHERE";
if ($_POST['combo_categoria']<>''){
$query.="categoria ='".$_POST['combo_categoria']." AND ";
} else {
$query.=" ";
}
if ($_POST['combo_subcategoria']<>'') {
$query.="subcategoria ='".$_POST['combo_subcategoria']." AND ";
} else {
$query.=" ";
}
$query.=" MATCH(nombre, descripcion) AGAINST ('".$_POST['busqueda']."') ORDER BY Score DESC";
Hasta aquí ya esta creada la base de datos y la búsqueda, a hora te diré algo tu tienes por ejemplo productos que msotrar si son 10 bien hago 10 páginas, pero imaginate que sean 1000 hacer mil páginas es de locura, para esto php te ayuda creando una página dinámica mira ahora no tengo mucho tiempo para adaptarlo, pero te voy a dar un código donde muestro en una página con productos, esta vendrá a ser la página que te resulto de tu búsqueda ok y otra página donde hago click y me muestra los datos encima de un campo y te mostrara otra página donde tendrás todos los datos de tu
<html>
<body topmargin="0" leftmargin="0" bottommargin="0" rightmargin="0">
<table height="80%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td bgcolor="#50555B">
<form name="producto" action="" method="GET">
<div style="padding-left:15px; padding-top:13px; padding-right:10px; font-size: 12px;">
<?php
//Rellena la tabla con los resultados
require_once('Connections/Sistema.php');
mysql_select_db($database_Sistema,$Sistema);
$consulta = //Aqui pon la consulta generada arriba
$w=1;
echo "<br><table width=350 height=30 border=1 cellpadding=1 cellspacing=0 align=center>";
echo "<tr bgcolor=#0099CC>";
echo "<td align=center><strong>Categoria</strong></td>";
echo "<td align=center><strong>Subcategorias</strong></td>";
echo "<td align=center><strong>Nombre</strong></td>";
//Ademas podrias agregar la descripcion o lo que deses mostrar al cliente para que elija
echo "</tr>";
$ejecutar = mysql_query($consulta, $Sistema) or die(mysql_error());
while ($registro = mysql_fetch_array($ejecutar)){
$color = ($w%2 == 0)?'#666666':'#999999';
echo "<tr>";
for ($j=1; $j < 4; $j++){
if ($j==3) {
echo "<a href=\"dinamico.php?id=$registro[0]\" ><td><b>$registro[$j]</b></td></a>"; //el registro[0] es el id de la tabla
} else {
echo "<td><b>$registro[$j]</b></td>";
}
}
$w++;
}
echo "</table><br>";
?>
</div>
</form>
</td>
</table>
</body>
</html>
Aqui esta dinamico php, aqui vas a mostrar la pagina generada automaticamente, aqui si te pediria que me comentes como te fue porque tengo un codigo ams depurado pero no lo tengo ala mano, si te sirvio comentamelo o sino te envio el codigo en la noche o mañana amas tardar ok:
<?php
$producto = $_GET['id'];
require_once('Connections/Sistema.php');
mysql_select_db($database_Sistema,$Sistema);
$consulta = "SELECT id, categoria, subcategoria, nombre, empaque, descripcion, imagen FROM paginas WHERE id='".$id."';";
$fields = mysql_list_fields("BD",producto, $Sistema);
$columns = mysql_num_fields($fields);
$ejecutar = mysql_query($consulta, $Sistema) or die(mysql_error());
$registro = mysql_fetch_array($ejecutar);
?>
<html>
<body topmargin="0" leftmargin="0" bottommargin="0" rightmargin="0">
<tr>
<?php
$archivo = $registro[$columns-1];
$ruta = "productos/";
$ruta .= $archivo;
$size = getimagesize("$ruta");
$ancho=$size[0];
$alto=$size[1];
?>
<td bgcolor="#50555B"><div align="center" valign="center"><img src="productos/<?php echo $registro[$columns-1]; ?>" width="220" height=150" border="3" align="middle"><br>
<br>
<a href="javascript:;" onClick="MM_openBrWindow('imagen.php?imagen=<?php echo $registro[$columns-1]; ?>','productos','width=<?php echo $ancho; ?>,height=<?php echo $alto; ?>')"><strong>Ampliar</strong></a>
</div></td>
<td bgcolor="#50555B">
<form name="producto" action="" method="GET">
<div style="padding-left:15px; padding-top:13px; padding-right:10px; font-size: 12px;">
<?php
echo "<br><table width=350 height=30 border=1 cellpadding=1 cellspacing=0 align=center>";
for ($s=1; $s < $columns-1; $s++) {
$nombre = mysql_field_name($fields, $s);
echo "<tr bgcolor=#0099CC><td><strong>".strtoupper($nombre)."</strong></td></tr>";
echo "<tr rowspan=\"2\"><td> $registro[$s] <br></br></td></tr>";
}
echo "</table><br>";
?>
</div>
</form>
</td>
</table>
</body>
</html>
<script language="JavaScript">
function MM_openBrWindow(theURL,winName,features) {
window.open(theURL,winName,features);
}
</script>
Aqui va la parte de imagen.php y que es para que el usuario vea la imagen ampliada
<?php $imagen = $_GET['imagen']; ?>
<html>
<body topmargin="0" leftmargin="0" bottommargin="0" rightmargin="0">
<img src="productos/<?php echo $imagen; ?>" >
</body>
</html>
Ok disculpa que no este al 100% implementado pero se que al intentar hacer tus cambios entenderás más el código, un consejo siempre ten tu manual de php a la mano para rebizar la sintaxis de las funciones ok, cualquier consulta avisame nomas y recibiré tus consejos y resolveré tus dudas paisano y también soy de Lima...
Muchas gracias amigo por tu respuesta; aun tengo otras dudas pero te las haré en otra pregunta, esta ya la finalizare porque tienes muy bien merecido que lo haga.
Un Abrazo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas