Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/01/2011, 14:54
Pury
 
Fecha de Ingreso: julio-2010
Mensajes: 47
Antigüedad: 14 años, 3 meses
Puntos: 1
Pregunta buscar por categoria

Hola, explico:
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">&nbsp;</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>";  

?>
¿Alguien me puede dar una solucion?