Foros del Web » Programando para Internet » PHP »

PHP OO Problema con consulta PHP+SQL

Estas en el tema de Problema con consulta PHP+SQL en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 14/09/2015, 19:26
 
Fecha de Ingreso: febrero-2015
Mensajes: 6
Antigüedad: 9 años, 2 meses
Puntos: 0
Problema con consulta PHP+SQL

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

Etiquetas: mysql, php+, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:43.