Foros del Web » Programando para Internet » PHP »

Problema al usar funciones

Estas en el tema de Problema al usar funciones en el foro de PHP en Foros del Web. Hola, tengo el siguiente problema: tengo3 archivos, uno llamado consultas.php, donde hago todas las consultas y "trabajo sucio", la interacción de la BD y obtengo ...
  #1 (permalink)  
Antiguo 23/07/2010, 20:37
Avatar de cotopaxi  
Fecha de Ingreso: noviembre-2009
Ubicación: Guadalajara, Jalisco
Mensajes: 20
Antigüedad: 14 años, 5 meses
Puntos: 1
Problema al usar funciones

Hola, tengo el siguiente problema: tengo3 archivos, uno llamado consultas.php, donde hago todas las consultas y "trabajo sucio", la interacción de la BD y obtengo datos; otro llamado conectar.php, donde obviamente me conecto a la BD, y por su puesto, consultas.php tiene un include con el conectar.php; Finalmente tengo un archivo llamado inicio.php, éste tiene include de consultas.php;

En el archivo consultas tengo el siguiente código:
Código PHP:
<?php
include("conectar.php");//nos conectamos a la BD, aquí no hay problema pues hago otras consultas que no involucren funciones y no presente trabas

//Ordenar por recientes

function ord_rec($orden){
$resNewArt=mysql_query("SELECT * FROM productos ORDER BY id '$orden' LIMIT 0, 3",$conex);
    if(
$resNewArt==null)die("Error al abrir la linea 1.3: ".mysql_error());    

    
$i=0;
    
    while(
$row=mysql_fetch_array($resNewArt)){
                             
$iTop[$i]= $row["id"];
                             
$nTop[$i]= $row["nombre"];
                             
$pTop[$i]= $row["precio"];
                        
$pTop[$i]= $row["descripcion"];
                             
$i++;
                              }    
            }
?>
Despues en inicio.php invoco dichas funciones:
Código PHP:
<?php
    
include("consultas.php");


ord_rec("ASC");
ord_precio("ASC",1);//es otra función que tengo en consultas, primero usaba esta pero decidí usar la otra y me marca error en la función ord_rec()
ord_precio("DESC",0);
?>
tengo el siguiente error:

Warning: mysql_query() expects parameter 2 to be resource, null given in C:\xampplite\htdocs\cafeteria\consultas.php on line 24

Que es la línea donde tengo el query de la funcion ord_rec, haciendo referencia a la variable $conex, la cual tengo bien, pues como comenté tengo otras consultas (aclaro fuera de una función) y no hay problema alguno. La verdad que soy un novato, no se si sea un error muy simple pero he buscado y pues la verdad nada que corrija mi error. Saludos!
  #2 (permalink)  
Antiguo 24/07/2010, 03:40
 
Fecha de Ingreso: julio-2010
Ubicación: Marbella
Mensajes: 2
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Problema al usar funciones

Código PHP:
$resNewArt=mysql_query("SELECT * FROM productos ORDER BY id $orden LIMIT 0, 3",$conex); 
Prueba a quitar las comillas simples en $order
  #3 (permalink)  
Antiguo 24/07/2010, 07:24
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 3 meses
Puntos: 126
Respuesta: Problema al usar funciones

Hola

La sentencia no es inherente a ningún lenguage del servidor (asp, asp.net, php,..). Entoces has de hacer una concatenación
Código SQL:
Ver original
  1. $resNewArt=mysql_query("SELECT * FROM productos ORDER BY id ". $orden. " LIMIT 0, 3",$conex);
Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #4 (permalink)  
Antiguo 24/07/2010, 12:49
Avatar de cotopaxi  
Fecha de Ingreso: noviembre-2009
Ubicación: Guadalajara, Jalisco
Mensajes: 20
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Problema al usar funciones

No funciona, sigue el mismo error :(
  #5 (permalink)  
Antiguo 24/07/2010, 13:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema al usar funciones

Cita:
Iniciado por cotopaxi Ver Mensaje
No funciona, sigue el mismo error :(
pues depura tu consulta...
Código PHP:
mysql_query(/* tu consulta */) or die(mysql_error()); 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 24/07/2010, 13:52
Avatar de cotopaxi  
Fecha de Ingreso: noviembre-2009
Ubicación: Guadalajara, Jalisco
Mensajes: 20
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Problema al usar funciones

Código PHP:
//Ordenar por recientes
$orden="DESC";

 
$resNewArt=mysql_query("SELECT * FROM productos ORDER BY id ".$orden." LIMIT 0, 3",$conex);  
    if(
$resNewArt==null)die("Error al abrir la linea 1.3: ".mysql_error());


function 
ord_rec($orden){
        
    
$i=0;
    
    while(
$row=mysql_fetch_array($resNewArt)){
                             
$iTop[$i]= $row["id"];
                             
$nTop[$i]= $row["nombre"];
                             
$pTop[$i]= $row["precio"];
                        
$pTop[$i]= $row["descripcion"];
                             
$i++;
                              }    
            } 
Así no provoca error pero no me guarda ningún dato, :S por eso les comente que las consultas que hacía fuera de alguna función sí funcionaban, pero como esta que quiero que sea dentro, nomás no.
  #7 (permalink)  
Antiguo 24/07/2010, 13:58
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema al usar funciones

entonces deberías aprender a usar funciones, y sobre todo estudiar sobre el contexto de las variables...

que, las variables fuera de una función no tienen el mismo alcance, debes pasarlas como argumentos, etc...

por favor, lee lo siguiente:
http://www.php.net/manual/en/languag...bles.scope.php
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 24/07/2010, 14:17
Avatar de cotopaxi  
Fecha de Ingreso: noviembre-2009
Ubicación: Guadalajara, Jalisco
Mensajes: 20
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Problema al usar funciones

Mmm no sabía el contexto de las variables, y sabes, era $conex debería declararla global dentro de la función y ese error desaparece. Gracias

Etiquetas: funciones
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 20:49.