Hola a todos, soy nuevo aqui, antes de nada os dire que soy muy novato en esto de PHP, y que mi duda la intentare expresar de la mejor forma para que me entendais.
Por cierto si este no es el lugar donde deberia poner este post ruego lo muevan al lugar adecuado, gracias
He realizado una web, aun no esta subida a internet, trabajo en localhost. Trata sobre restaurantes.
1º He creado una base de datos con los restaurantes en phpAdmin hasta bien.
2º He creado un formulario de busqueda en la pagina index.html con el siguiente codigo:
<form id="buscador" name="buscador" method="get" action="buscador.php">
<label><span class="buscar">Buscar restaurantes en la web</span>
<input name="Busqueda" type="text" id="Busqueda" size="40" />
</label>
<label>
<input type="submit" name="button" id="button" value="Buscar Ahora" /> </label></form>
3º He creado una pagina php llamada "buscador.php" y aparte del diseño y de la conexion Mysql que funciona perfectamente, en lo relativo al diseño inserte una tabla con varias filas y columnas, en cada "celda" arrastre desde panel de vinculaciones en dreamweaver los campos de la base de datos que queria mostrar en la busqueda, de la base de datos.
Este es script de la pagina "buscador.php":
<?php require_once('Connections/miconexion.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
$maxRows_busqueda = 10;
$pageNum_busqueda = 0;
if (isset($_GET['pageNum_busqueda'])) {
$pageNum_busqueda = $_GET['pageNum_busqueda'];
}
$startRow_busqueda = $pageNum_busqueda * $maxRows_busqueda;
mysql_select_db($database_miconexion, $miconexion);
$query_busqueda = "SELECT * FROM restaurantes WHERE nombre LIKE '%$Busqueda%' OR localidad LIKE '%$Busqueda%' OR breve LIKE '%$Busqueda%' ORDER BY localidad";
$query_limit_busqueda = sprintf("%s LIMIT %d, %d", $query_busqueda, $startRow_busqueda, $maxRows_busqueda);
$busqueda = mysql_query($query_limit_busqueda, $miconexion) or die(mysql_error());
$row_busqueda = mysql_fetch_assoc($busqueda);
if (isset($_GET['totalRows_busqueda'])) {
$totalRows_busqueda = $_GET['totalRows_busqueda'];
} else {
$all_busqueda = mysql_query($query_busqueda);
$totalRows_busqueda = mysql_num_rows($all_busqueda);
}
$totalPages_busqueda = ceil($totalRows_busqueda/$maxRows_busqueda)-1;
?>
Aqui el codigo html y php donde arrastre desde el panel vinculaciones del juego de registro Mysql (por si hay dudas esta incluido en el archivo buscador.php:
<span class="buscar">RESULTADO DE LA BUSQUEDA</span></p>
<?php do { ?>
<table width="100%" border="0" cellspacing="0">
<tr>
<td height="16" valign="top"><span class="busqueda"><?php echo $row_busqueda['nombre']; ?></span><br /> </td>
<td valign="top"><div align="right"><span class="busqueda2"><?php echo $row_busqueda['localidad']; ?></span></div></td>
</tr>
<tr>
<td height="45" colspan="2" valign="top"><span class="brevebusqueda"><?php echo $row_busqueda['breve']; ?><span class="enlacebusqueda"><br />
<?php echo $row_busqueda['nombre']; ?></span></span></td>
</tr>
</table>
<?php } while ($row_busqueda = mysql_fetch_assoc($busqueda)); ?><p class="Estilo2"> </p></td>
Bueno perdonad por la extension pero pienso que asi es mejor que entendais mi problema.
Una vez que lo previsualizo con F12 desde el dreamweaver en localhost, voy al formulario, introduzco por ejemplo la palabra a buscar en la casilla le doy al boton "buscar ahora" y si, me sale el resultado de la busqueda, pero mi problema es que me salen todos los "restaurantes" de la base de datos y no los que yo queria que buscara conla palabra que puse, ejemplo:
si en mi base de datos tengo dos restaurantes, digamos restaurante xx y otro restaurante yy, y a la hora de buscar pongo yy, me salen tanto el restaurante yy como el xx.
¿que hago mal?
Querria agradeceros vuestra paciencia para conmigo y a ver si alguna persona me echa una mano y me dice donde esta el error y me ayuda a rectificarlo.
Gracias a todos.
firmado Jaime