Tengo una pagina en la cual subo articulos y selecciono la categoria del mismo.
El problema es que al usar un buscador para buscar el articulo X en X categoria, me aparece el articulo bien pero al hacerle click me manda a otro articulo diferente.
Me he dado cuenta que el ID del articulo es el 1 y el de la categoria correspondiente es el 5, y me muestra el titulo del articulo 1 pero al hacerle click se abre el articulo 5.
las tablas son:
Articulo
id
titulo
id_categ
Categoria
id
nombre
cuando subo un articulo, al seleccionar la categoria del mismo, en id_categoria se guarda el numero del id de la categoria correspondiente, ya que hay un enlace entre el desplegable con las categorias y la bdd. el problema es que en vez de tomarme el id de Articulo me toma el id_categoria de Articulo y me abre el articulo con el id igual a ese numero.
Ejemplo
Articulo
id: 1
titulo:
id_categ: 5
Categoria
id: 5
Pan nombre: Comida
Y cuando busco Pan en la categoria Comida, el link para mostrarme el articulo se ve asi:
articulo.php?id=5
Cuando en realidad se tendria que ver asi:
articulo.php?id=1
Este es el codigo:
Código PHP:
<?php
$sql = "SELECT * FROM Articulos, Categorias WHERE Articulos.Id_categ = Categorias.Id ";
if (isset($_POST['txtBusqueda'])) {
$sql .= " AND Articulos.Titulo LIKE '%" . $_POST['txtBusqueda'] . "%' ";
if (intval($_POST['selCategorias']) > 0) {
$sql .= " AND Articulos.Id_categ = '" . intval($_POST['selCategorias']) . "'";
}
}
$sql .= " ORDER BY Articulos.Id ASC";
$tabla = mysql_query($sql);
while ($registro = mysql_fetch_array($tabla)) {
?>
<tr>
<td width="334"> </td>
</tr>
<?php
}
mysql_free_result($tabla);
?>
<?php
$buscar = $_POST['txtBusqueda'];
$result = mysql_query($sql);
$total = mysql_num_rows($result);
// Imprimimos los resultados
if ($row = mysql_fetch_array($result)){
echo "Resultados para: <b>$buscar</b>";
do {
?>
<p><b><a href="articulo.php?Id=<?=$row['Id'];?>">
<?=$row['Titulo'];?>
</a></b></p>
<?
} while ($row = mysql_fetch_array($result));
echo "<p>Resultados: $total</p>";
} else {
// En caso de no encontrar resultados
echo "No se encontraron resultados para: <b>$buscar</b>";
}
?>