Comunidad de diseño web y desarrollo en internet online

Consulta para mostrar datos de una tabla mediante un campo de la otra

Citar            
MensajeEscrito el 23 Ago 2012 02:03 am
tengo estas dos tablas

CREATE TABLE `menu` (
`id` int(11) NOT NULL auto_increment,
`categoria` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

CREATE TABLE `submenu` (
`id` int(11) NOT NULL auto_increment,
`categoria` text NOT NULL,
`subcategoria` text NOT NULL,
`descripcion` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Tengo un menú el cual cargo por la base de datos de la siguiente forma
---------------------------------------------------------------------------------
<ul id="menu-main" class="menu">
<?
require("conexion.php");
$selecionar=mysql_query("SELECT *FROM menu limit 6")or die("Error al seleccionar");
$impresos=0;
while($fila=mysql_fetch_array($selecionar))
{$impresos++;
echo "<li><a href='index.php?modulo1=contenido.php&ID=$fila[id]'>".$fila[categoria]."</a></li>";
}
?>
</ul>
---------------------------------------------------------------------------------

el menu contiene como primer li "Tratamientos"
y quiero que cuando haga clic en esa opcion valla a la pagina donde se muestra todo el contenido de la web pasando el parametro por id y me muestre las terapias ej: "homeopatia, feng shui, etc" cargandolo por otra tabla.

esta es la programacion de la pagina contenido.php, donde carga todo el contenido de la web, o al menos el que se refiere al menu.
---------------------------------------------------------------------------------
<?
require("conexion.php");
$select=mysql_query("SELECT *FROM menu,submenu USING menu INNER JOIN submenu USING (categoria) WHERE menu.id = '$ID'");
$fila=mysql_fetch_array($select);
?>
<table>
<tr><td><? echo $fila[subcategoria]; ?></td></tr>
<tr><td><? echo $fila[descripcion]; ?></td></tr>
</table>
---------------------------------------------------------------------------------

Pero me da el siguiente error al presionar tratamientos

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\Sitios\MN\contenido.php on line 4

y la linea 4 es

$fila=mysql_fetch_array($select);

en fin, quiero que el muestre los datos campos de la tabla submenu que tienen por "categoria" el nombre de "tratamientos" ya que categoria es el campo que se enlaza con "categoria" de la tabla menu.


Les agradezco de antemano que me ayuden a resolver el problema tan grande que hace rato intento resolver.

Por lisettealvarez6

25 de clabLevel



Genero:Femenino  

Informatica Web

chrome
Citar            
MensajeEscrito el 23 Ago 2012 12:33 pm
Acá tenés un error con las comillas en el id:

Código :

$select=mysql_query("SELECT *FROM menu,submenu USING menu INNER JOIN submenu USING (categoria) WHERE menu.id = '$ID'");

Seria así

Código :

$select=mysql_query("SELECT * FROM menu, submenu WHERE `menu.categoria` = `submenu.cateoria` AND `menu.id` = '".$ID."'");

Igual, te falta un campo en submenu que sea clave foranea de menu.
Saludos

Por SinSemilla

Claber

336 de clabLevel



Genero:Masculino  

i am that i am...

firefox
Citar            
MensajeEscrito el 23 Ago 2012 12:37 pm
En la tabla submenu te falta un campo que almacene el id en la tabla menú al cual está relacionado ese submenú. En otras palabras te falta la clave foránea. O poner tu base de datos en la segunda forma normal.

Por DriverOp

Claber

2510 de clabLevel



 

opera

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.