Problemas con consulta a la base de datos

Hola tengo dos tablas con la siguiente estructura
Tabla books
Campos (titulo, autor, precio, edición, páginas, editid)
Tabla editorial
campos (editid, nomeditorial)
Tengo armado un buscador en el cual recibe la información a buscar a través de un formulario, en el cual selecciono por medio de un grupo de opciones en que campo quiero buscar y a través de un campo de texto ingreso el valor de la búsqueda.
Acá va el código
<form action="buscador.php" method="post">
<input name="tipobusqueda" type="radio" value="titulo" checked="checked" />
<input type="radio" name="tipobusqueda" value="autor" />
<input type="radio" name="tipobusqueda" value="edicion" />
<input type="radio" name="tipobusqueda" value="nomeditorial" />
<input name="terminobusqueda" type=text size="50" /></td>
<input name="submit" type=submit value="Buscar" />
</form>
$consulta = "select * from books where ".$tipobusqueda." like '%".$terminobusqueda."%'";
$resultado = mysql_query($consulta);
$num_resultados = mysql_num_rows($resultado);
echo "Número de libros encontrados: ".$num_resultados.";
Al realizar la búsqueda mientras seleccione en el formulario algunas de las siguientes opciones (titulo, autor, edición) me devuelve la cantidad de libros que encontró y por medio de código php muestro los valores correspondientes, pero cuando selecciono la opción nomeditorial, se produce un error y me devuelve el siguiente mensaje
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource
Lo que necesito es que me devuelva también un valor de la búsqueda, para poder mostrar los detalles de la misma aun seleccionando la opción nomeditorial del formulario.
Desde ya Gracias

1 Respuesta

Respuesta
1
El problema esta en que el nombre de la editorial no está en la tabla book y si en la tabla editorial, a tu select le falta un JOIN, yo haría lo siguiente
--------------------------------- COPIA Y PEGA ------------------------------
if ($tipobusqueda == 'nomeditorial)
{
$tipobusqueda = "editorial.nomeditorial";
}else{
$tipobusqueda = "books.".$tipobusqueda;
}
$consulta = "select * from books LEFT JOIN editorial ON books.editid = editorial.editid where ".$tipobusqueda." like '%".$terminobusqueda."%'";
--------------------------------- COPIA Y PEGA ------------------------------
Más o menos, te he respondido a botepronto.
Un Saludo.
http://www.minutebox.com/profiles/ppardo
Excelente, Muchísimas gracias, y menos que la respuesta fue a botepronto, porque ni quiero imaginar si te hubieras puesto a pensar en la solución... Muy bueno amigo, ya te estoy agregando como mi experto favorito. Gracias nuevamente

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas