Foros del Web » Programando para Internet » PHP »

No funciona una consulta mysql dentro de una funcion php

Estas en el tema de No funciona una consulta mysql dentro de una funcion php en el foro de PHP en Foros del Web. Esta funcion no me funciona En realidad no sale nada de nada... alguien me puede aclarar el por qué? muchas gracias a todos. Código PHP: ...
  #1 (permalink)  
Antiguo 05/05/2012, 17:59
 
Fecha de Ingreso: agosto-2008
Ubicación: Canarias, España - París, Francia
Mensajes: 105
Antigüedad: 16 años, 3 meses
Puntos: 3
No funciona una consulta mysql dentro de una funcion php

Esta funcion no me funciona En realidad no sale nada de nada... alguien me puede aclarar el por qué? muchas gracias a todos.
Código PHP:
function ofertas()
  {
    
$sql mysql_query ("SELECT * FROM productos, fotos 
                          WHERE 
                          estado ='oferta' 
                          and 
                          productos.referencia = fotos.referencia"
); 
                          
     
      return 
$sql;
      
          while(
$res mysql_fetch_array($sql))
            {        
                  echo 
"Hay esto";
               if(
$ofertas 0
                {
                  echo 
"Hay ".$ofertas." ofertas";
                  echo 
"<img src=".$res['nombrefoto']."/>";
                  echo 
"Marca: ".$res['marca'];
                } 
                  else
                {
                  echo 
"No hay ofertas";
                }
             }
          return 
$res;   
  } 
  #2 (permalink)  
Antiguo 05/05/2012, 18:09
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 9 meses
Puntos: 53
Respuesta: No funciona una consulta mysql dentro de una funcion php

prueba si tu consulta se peude ejecutar en tu base de datos
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #3 (permalink)  
Antiguo 05/05/2012, 18:50
 
Fecha de Ingreso: agosto-2011
Ubicación: Santo Domingo
Mensajes: 487
Antigüedad: 13 años, 3 meses
Puntos: 31
Respuesta: No funciona una consulta mysql dentro de una funcion php

te falta comillas en esta linea

and
productos.referencia = 'fotos.referencia'");

y otra cosa amigo de donde estas tomando la variable oferta y fotos.referencia
  #4 (permalink)  
Antiguo 05/05/2012, 19:15
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 16 años, 3 meses
Puntos: 103
Respuesta: No funciona una consulta mysql dentro de una funcion php

ese return $sql; esta de mas, ademas, el return $res de el final no se para que te sirve, $res creo que te devolveria la ultima linea obtenida, creo que no sabes para que sirve return, no es para eliminar variables, las variables se eliminan solas despues de ejecutar una función, es para devolver una respuesta de la variable, por ejemplo
Código PHP:
Ver original
  1. function WeLoveFood(){
  2. return " amo las papas fritas :D";
  3. }
  4. echo "yo".WeLoveFood();

saludos
  #5 (permalink)  
Antiguo 06/05/2012, 06:36
 
Fecha de Ingreso: agosto-2008
Ubicación: Canarias, España - París, Francia
Mensajes: 105
Antigüedad: 16 años, 3 meses
Puntos: 3
Respuesta: No funciona una consulta mysql dentro de una funcion php

Cita:
Iniciado por PIRRUMAN Ver Mensaje
prueba si tu consulta se peude ejecutar en tu base de datos
Sí, se ejecuta desde mysql y devuelve resultados.
  #6 (permalink)  
Antiguo 06/05/2012, 06:38
 
Fecha de Ingreso: agosto-2008
Ubicación: Canarias, España - París, Francia
Mensajes: 105
Antigüedad: 16 años, 3 meses
Puntos: 3
Respuesta: No funciona una consulta mysql dentro de una funcion php

Cita:
Iniciado por chwc Ver Mensaje
ese return $sql; esta de mas, ademas, el return $res de el final no se para que te sirve, $res creo que te devolveria la ultima linea obtenida, creo que no sabes para que sirve return, no es para eliminar variables, las variables se eliminan solas despues de ejecutar una función, es para devolver una respuesta de la variable, por ejemplo
Código PHP:
Ver original
  1. function WeLoveFood(){
  2. return " amo las papas fritas :D";
  3. }
  4. echo "yo".WeLoveFood();

saludos
Muchas gracias. Es verdad, no se muy bien para que sirve return. El segundo: return $res, lo puse por desesperación a ver si salía algo.
Si no pongo el primer return, me da un error.
  #7 (permalink)  
Antiguo 06/05/2012, 06:43
 
Fecha de Ingreso: agosto-2008
Ubicación: Canarias, España - París, Francia
Mensajes: 105
Antigüedad: 16 años, 3 meses
Puntos: 3
Respuesta: No funciona una consulta mysql dentro de una funcion php

Y poniendo el ejemplo de una consulta mysql dentro de la función, como sería?? Ahora lo he dejado así:
Código PHP:
Ver original
  1. function ofertas()
  2.   {
  3.     $sql = mysql_query ("SELECT * FROM productos,fotos
  4.                          WHERE
  5.                          productos.estado ='oferta'
  6.                      and productos.referencia = 'fotos.referencia'");
  7.                          
  8.      
  9.       //return $sql;
  10.      
  11.           while($res = mysql_fetch_array($sql))
  12.             {        
  13.                   echo "Hay esto";
  14.                if($ofertas > 0)
  15.                 {
  16.                   echo "Hay ".$ofertas." ofertas";
  17.                   echo "<img src=".$res['nombrefoto']."/>";
  18.                   echo "Marca: ".$res['marca'];
  19.                 }
  20.                   else
  21.                 {
  22.                   echo "No hay ofertas";
  23.                 }
  24.              }
  25.              
  26.   }
  27. ofertas();
  #8 (permalink)  
Antiguo 06/05/2012, 06:45
 
Fecha de Ingreso: agosto-2008
Ubicación: Canarias, España - París, Francia
Mensajes: 105
Antigüedad: 16 años, 3 meses
Puntos: 3
Respuesta: No funciona una consulta mysql dentro de una funcion php

Hay una tabla con productos, que tiene un campo llamado referencia y hay otra tabla llamada fotos que tiene otro campo llamado referencia y son comunes. Así puedo hacer una consulta y que me extraiga datos de los dos campos de forma asociada.
  #9 (permalink)  
Antiguo 06/05/2012, 07:09
 
Fecha de Ingreso: agosto-2011
Ubicación: Santo Domingo
Mensajes: 487
Antigüedad: 13 años, 3 meses
Puntos: 31
Respuesta: No funciona una consulta mysql dentro de una funcion php

Cita:
Iniciado por rutame Ver Mensaje
Hay una tabla con productos, que tiene un campo llamado referencia y hay otra tabla llamada fotos que tiene otro campo llamado referencia y son comunes. Así puedo hacer una consulta y que me extraiga datos de los dos campos de forma asociada.
Bno espero te sirva la solucion que te ofreci....
  #10 (permalink)  
Antiguo 06/05/2012, 07:12
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 16 años, 3 meses
Puntos: 139
Respuesta: No funciona una consulta mysql dentro de una funcion php

Hola @rutame, te dejo aqui mi aporte para lo que buscas hacer.
hice uso de la funcion mysql_num_rows tienes que estudiarla un poco.

Código PHP:
Ver original
  1. function ofertas()
  2. {
  3.      # Aqui pon tu consulta, el or die quiere decir que si pasa un error durante la consulta entonces finalice el código y muestre el error
  4.    $sql = mysql_query()or die(mysql_error());
  5.      
  6.      
  7.      # Le cambie el nombre a la variable oferta para evitar confuciones futuras.
  8.      # Con la funcion mysql_num_rows() de terminas la cantidad de ofertas que tienes en tu tabla                    
  9.    $total_ofertas = mysql_num_rows($sql);
  10.        
  11.             # Verificas si tienes algunas ofertas
  12.           if ($total_ofertas > 0){
  13.        
  14.            
  15.             while ($res = mysql_fetch_array($sql)){        
  16.                
  17.                 # Aqui pones el codigo que quieras imprimir.
  18.                
  19.             }
  20.              
  21.           } else {
  22.                
  23.                   echo "No hay ofertas";
  24.             }    
  25.   }
  26.  
  27.  
  28. ofertas();

Saludos.
  #11 (permalink)  
Antiguo 06/05/2012, 08:34
 
Fecha de Ingreso: agosto-2008
Ubicación: Canarias, España - París, Francia
Mensajes: 105
Antigüedad: 16 años, 3 meses
Puntos: 3
Respuesta: No funciona una consulta mysql dentro de una funcion php

Muchas gracias GJX2. Ya está funcionando. La verdad es que cuando uno no está centrado le es bastante dificil darse cuenta de errores tonto y tenía varios :)

Un saludo y gracias a todo
  #12 (permalink)  
Antiguo 06/05/2012, 08:36
 
Fecha de Ingreso: agosto-2008
Ubicación: Canarias, España - París, Francia
Mensajes: 105
Antigüedad: 16 años, 3 meses
Puntos: 3
Respuesta: No funciona una consulta mysql dentro de una funcion php

La cosa quedó así:
Código PHP:
Ver original
  1. function ofertas()
  2.   {
  3.   global $ruta_mini;
  4.     $sql = mysql_query ("SELECT * FROM fotos,productos WHERE productos.estado='oferta' AND productos.referencia = fotos.referencia LIMIT 3");
  5.       $ofertas = mysql_num_rows($sql);
  6.         if($ofertas > 0)
  7.                 {
  8.            
  9.             while($res = mysql_fetch_array($sql))
  10.                 {  
  11.              
  12.               ?>      
  13.                   <div class="contenido">
  14.                   <?php echo "<h5>".$res['marca']." ".$res['modelo']."</h5>";?>
  15.                   <div class="oferta"><?php echo $res['pvp']."€";?></div>
  16.                <img src="<?php echo $ruta_mini.$res['nombrefoto'];?>">
  17.                </div>
  18.                 <?php  
  19.              
  20.                 }
  21.                  
  22.              }  else
  23.                 {
  24.                   echo "No hay ofertas";
  25.                 }
  26.   }

Etiquetas: consulta-mysql, funcion
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 06:24.