Hola a todos.
Tengo un problema: Tengo una mini aplicación web, que hace o DEBERÍA HACER, es mostrar una lista de recetas disponibles con los alimentos que tengo en mi despensa:
el codigo PHP es:
Código:
<?
//Iniciar Sesion Usuario
session_start();
require('class/clases.class.php');
$cpl=new clases;
//Validar si Usurio Incio Sesion
if(($_SESSION)==true) {
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>App Cocina</title>
<link href='http://fonts.googleapis.com/css?family=Open+Sans:400italic,400,300,600,700' rel='stylesheet' type='text/css'>
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet">
<link href="css/fotorama.css" rel="stylesheet" type="text/css"/>
<link href="css/jquery.navgoco.css" rel="stylesheet" type="text/css"/>
<link href="css/superfish.css" rel="stylesheet" type="text/css"/>
<link href="css/jquery.poptrox.css" rel="stylesheet" type="text/css"/>
<link href="css/animate.css" rel="stylesheet" type="text/css"/>
<link href="css/hover.css" rel="stylesheet" type="text/css"/>
<link href="style.css" rel="stylesheet" type="text/css"/>
</head>
<!-- end: head of site-->
<body class="e_blog">
<!-- begin: .e_site_container-->
<div class="e_site_container clearfix">
<!-- begin: header#e_site_header (style 01)-->
<header id="e_site_header" class="e_style_01">
<div class="e_top">
<!-- begin: .e_container-->
<div class="e_container clearfix container">
<div class="row">
<div class="col-md-8 col-sm-7 col-xs-12 e_left">
</div>
<div class="col-md-4 col-sm-5 col-xs-12 e_right">
<a href="#" class="e_button e_icon e_login hvr-overline-from-center">
<i class="e_icon e_before fa fa-user"></i><? echo $_SESSION['nombre'];?>
</a>
<a href="index.php" class="e_button e_icon e_cart e_last hvr-overline-from-center">
<i class="e_icon e_before fa fa-shopping-cart"></i>Cerrar Sesion
</a>
</div>
</div>
</div>
<!-- end: .e_container-->
</div>
</header>
<!-- end: header#e_site_header (style 01)-->
<div id="e_site_body" class="clearfix">
<!-- end: .e_section breadcrumb-->
<section class="e_section e_custom_section_03">
<!-- begin: .e_container-->
<div class="e_container clearfix container">
<div class="row e_row">
<!-- IZQ --> <div class="col-xs-1 col-sm-1 col-md-1 col-lg-1 "></div>
<div class="col-xs-10 col-sm-10 col-md-10 col-lg-10">
<!-- begin: .e_widget_posts_blog (blog list - style 02)-->
<div class="widget e_widget_posts_blog e_style_02 e_custom_widget_01">
<div itemscope itemtype="http://schema.org/LiveBlogPosting" class="widget-content">
<!-- ######################################################################## -->
<p class="e_meta">Mi Lista en la Despensa:
<?
$despensa=$cpl->despensa($_SESSION['id']);
$p2=mysql_fetch_array($despensa);
while($lista_despensa=mysql_fetch_array($despensa)){
//SABER LISTA
$traducir_numero=$cpl->mostrar_alimento($lista_despensa[0]);
while($res1=mysql_fetch_array($traducir_numero)){
?>
<p class="tagBlue"><? echo $res1[0]; ?></p>
<?}}?>
</p>
<?
//SELECCIONAR DESPENSA USUARIO
//$despensa=$cpl->despensa($_SESSION['id']);
//$lista_despensa=mysql_fetch_array($despensa);
$receta=$cpl->receta($_SESSION['id']);
while ($lista_receta=mysql_fetch_array($receta)) {
//$pre3=$cpl->receta();
//while ($res3=mysql_fetch_array($pre3)) {
?>
<article itemprop="liveBlogUpdate" itemscope="itemscope" itemtype="" class="e_item e_other e_small clearfix">
<div class="row">
<div class="col-md-5 e_left">
<div class="entry-thumb">
<figure class="e_effect_zz">
<img src="img/<? echo $lista_receta[0]; ?>.jpg" itemprop="image" alt="your image" title="Computers are useless. They can only give you answers" class="img-responsive"/>
<figcaption>
<a href="#" title="">
<span class="e_caption hidden"></span>
</a><i class="fa fa-link"></i>
</figcaption>
</figure>
</div>
</div>
<div class="col-md-7 e_right">
<div class="e_meta e_line_2 clearfix">
<h4 itemprop="headline" class="entry-title">
<a href="#" title=""><? echo $lista_receta['rec_descripcion']; ?></a>
</h4>
<p class="e_meta">
<?
$pre1=$cpl->ingredientes($lista_receta[0]);
while ($a1=mysql_fetch_array($pre1)) {
?>
<p class="tagBlue"><?echo $a1['ing_alimento'];?></p>
<?}?>
</p>
</div>
</div>
</div>
</article>
<?
}
?>
<!-- ####################################################################### -->
</div>
</div>
<!-- end: .e_widget_posts_blog (blog list - style 02) -->
</div>
<!-- DER --> <div class="col-xs-1 col-sm-1 col-md-1 col-lg-1"></div>
</div>
</div>
<!-- end: .e_container-->
</section>
</div>
<!-- begin: load all javascript-->
<script src="js/enliven.custom.js"></script>
<script src="js/jquery-1.11.3.js"></script>
<script src="js/modernizr.js"></script>
<script src="js/fotorama.js"></script>
<script src="js/hoverIntent.js"></script>
<script src="js/jquery.fitvids.js"></script>
<script src="js/jquery.navgoco.js"></script>
<script src="js/owl.carousel.js"></script>
<script src="js/superfish.js"></script>
<script src="js/jquery.poptrox.js"></script>
<script src="js/jquery.vegas.js"></script>
<script src="js/enliven.init.js"></script>
<!-- end: load all javascript-->
</div>
<!-- end: .e_site_container-->
</body>
</html>
<?
//Si no inicio sesion Mandar mensaje o enviar a index
}else{
header("Location: index.php");
exit;
}
?>
LAS RESPECTIVAS CONSULTAS QUE TENGO SON:
Código PHP:
//DESPENSA
function despensa($datos){
if($this->con->abrir()==true)
return mysql_query("SELECT d.des_alimento, a.ali_descripcion
FROM despensa d, alimentos a
WHERE des_user = '".$datos."'
AND d.des_alimento = a.ali_id");
}
//INGREDIENTES
function ingredientes($datos){
if($this->con->abrir()==true)
return mysql_query("SELECT a.ali_descripcion, i.ing_codigo, r.rec_descripcion, i.ing_alimento
FROM alimentos a, receta_ingrediente ri, recetas r, despensa d
INNER JOIN ingredientes i ON d.des_alimento = i.ing_alimento
WHERE a.ali_id = d.des_alimento
AND ri.rec_id = r.rec_id
AND ri.ing_id = i.ing_codigo
AND i.ing_codigo='".$datos."'");
}
//VER NOMBRE DE LA RECETA
function receta($datos){
if($this->con->abrir()==true)
return mysql_query("SELECT i.ing_codigo, r.rec_descripcion
FROM despensa d, ingredientes i, recetas r, receta_ingrediente ri
WHERE i.ing_alimento = d.des_alimento
AND ri.rec_id = r.rec_id
AND ri.ing_id = i.ing_codigo
AND d.des_user = '".$datos."'
GROUP BY i.ing_codigo");
}
El problemas es que quiero que me muestre las recetas que puedo cocinar: si tengo todos los ingredientes de una receta XXXX mostrar la receta, sino, no (obvio xD), asi sucesivamente, es decir si tengo ingredientes en mi despensa para 3,4,5... recetas que me las muestre, pero no me funciona. AYUDA PLISSS
PD. adjunto las tablas:
Código:
usuario
user_id | user_user | user_pass | user_level
1 user1 123 user
2 user2 123 user
despensa
des_id | des_alimento | des_user
1 Arroz 1
2 Aceite 1
3 Sal 1
4 Vienesa 1
5 .... 1
... .... ....
recetas
rec_id | rec_descripcion
1 Arroz con Pollo
2 Arroz con Vienesa
3 Fideos con Salsa
... .....
ingredientes
ing_id | ing_codigo | ing_alimento
1 1 Arroz
2 1 Vienesa
3 1 Aceite
4 1 Sal
... .... .....
La relacion esta en (Tabla) usuario->user_id (Tabla)despensa->des_user
(Tabla) recetas->rec_id(Tabla)ingredientes->ing_codigo