Foros del Web » Programando para Internet » PHP »

Realizar Consultas con Funciones de PHP

Estas en el tema de Realizar Consultas con Funciones de PHP en el foro de PHP en Foros del Web. Buenas pues veran tengo funciones de php (FUCTION xx () ) para usar la BD... AHora bien cree la de Conectar: Código PHP: Fuction Conexion () ...
  #1 (permalink)  
Antiguo 30/11/2009, 08:11
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 10 años, 5 meses
Puntos: 19
Pregunta Realizar Consultas con Funciones de PHP

Buenas pues veran tengo funciones de php (FUCTION xx () ) para usar la BD...

AHora bien cree la de Conectar:

Código PHP:
Fuction Conexion()
{
$VAR=(mysql_connect($servidor,$user,$pass) or die "Error de Conexion");
$VAR=(mysql_select_db($Bd,$VAR) or die "Error de seleccion de db");
return 
$VAR;
}

y el de cosultas que lo hice de esta manera:

Fuction consulta($cone,$consulta)
{
$result=(mysql_query($consulta,$cone) or die "Error en la Consulta");
Return 
$Result;

ahora bien eso es en un file, ahora en los que necesito usar la bd hago algo como:
Código PHP:
require_once("BDconection.php");
$cone=Conexion();
...
para hacer la consulta hago esto:
$query="Select * from User order by ID";
$consulta=consulta($query,$cone); 
y cuando quiero ver (osea corro el codigo) me muestra el DIE de Seleccion de la BD es decir sale:

"Error de seleccion de db"

Alguien sabe que estoy haciendo mal? gracias de antemano...

EDITADO: CAMBIE EL "VAR" PORQUE ASI LO TENGO....

Última edición por JuJoGuAl; 30/11/2009 a las 09:02
  #2 (permalink)  
Antiguo 30/11/2009, 08:22
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 13 años
Puntos: 126
Respuesta: Realizar Consultas con Funciones de PHP

Hola

PHP es sensible a las mayusculas y minusculas

$VAR=(mysql_connect($servidor,$user,$pass)
$VAR=(mysql_select_db($Bd,$var)

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;" />
  #3 (permalink)  
Antiguo 30/11/2009, 09:01
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 10 años, 5 meses
Puntos: 19
Respuesta: Realizar Consultas con Funciones de PHP

Pero eso lo tengo asi y aun asi me arroja el error, es decir yo tome en cuenta las MAYUS y las MINUS y pos aun asi obtengo el error :(
  #4 (permalink)  
Antiguo 30/11/2009, 09:21
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 9 meses
Puntos: 2534
Respuesta: Realizar Consultas con Funciones de PHP

Cita:
Iniciado por JuJoGuAl Ver Mensaje
Pero eso lo tengo asi y aun asi me arroja el error, es decir yo tome en cuenta las MAYUS y las MINUS y pos aun asi obtengo el error :(
¿¿y que error??

o esperas a que adivinemos??

NOTA que estas usando muy mal los paréntesis...
Código PHP:
// MUUY MAL
(mysql_algo(/* ... */) or die 'string');

// BIEN
mysql_algo(/* ... */) or die(mysql_error()); 
fíjate bien en como esta balanceados los paréntesis...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 30/11/2009, 09:23
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 10 años, 2 meses
Puntos: 65
Respuesta: Realizar Consultas con Funciones de PHP

Pasa que no le estas pasando ningun parametro a la funcion....

Código PHP:
<?php
fuction conexion
($servidor,$user,$pass,$db){

$conectar=mysql_connect($servidor,$user,$pass) or die ("Error de Conexion");
$seleccionar=mysql_select_db($db,$conectar) or die ("Error de seleccion de db");

#te conviene llamarlas distinto a cada variable, y ademas, usar minusculas

if($seleccionar){
return 
$conectar;
}

}
?>
Y en la otra, lo que deberias hacer cuando usas la funcion de conexion, es guardar en una variable el return: asi:

Código PHP:
$conectado=conexion("IP","usuario","clave","baseDatos"); 
Entonces al hacer la consulta

Código PHP:
<?php
fuction consulta
($cone,$consulta){

$result=mysql_query($consulta,$cone) or die ("Error en la Consulta");
return 
$result;

}  

##ejemplo de consulta

$query=consulta($conectado,"select.....");

?>
Me parece mas facil crearte una clase en la cual tengas todos estas funciones com metodos, y no necesitarias mas que definir en el constructor el nombre de la base de datos....

Última edición por jackson666; 30/11/2009 a las 09:57
  #6 (permalink)  
Antiguo 30/11/2009, 10:21
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 10 años, 5 meses
Puntos: 19
Respuesta: Realizar Consultas con Funciones de PHP

Asi esta mi codigo:

Código PHP:
<?php
   
//Variables de Coneccion
    
$servidor "localhost";
    
$usuario "root";
    
$password "";
    
$puerto "3306";
    
$db;
   
// Funcion para Abrir la Conexion.
   
function AbrirCone() 
   {  
       
$cone mysql_connect($servidor.":".$puerto$usuario$password) or die ("Error de Conexion: " .mysql_error());
       
$select=mysql_select_db("cementerio",$cone) or die ("Error del select db: ".mysql_error());
       return 
$select;
    }
   
//Funcion que Cierra la Conexion.
   
function CerrarCone() 
   {
       
mysql_close($cone);       
   }
   
// Funcion que ejecuta una consulta.
   
function Consuta($conex,$consulta)
   {
           
$result=mysql_query($conex,$consulta) or die ("Error de la Consulta: ".mysql_error());;
           return 
$result;
   }  
?>
y Cuando lo ejecuto obtengo este error:


Error del select db: Access denied for user ''@'localhost' to database 'cementerio'

Destaco que son los datos correctos, ademas que si estubiera un dato mal asignado no hiciera el connect y me arrojara error esa linea pero no lo hace...

Asi que como puedo solucionar esto??? Gracias xD
  #7 (permalink)  
Antiguo 30/11/2009, 10:32
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 9 meses
Puntos: 2534
Respuesta: Realizar Consultas con Funciones de PHP

estas usando variables que no existen en el contexto de tu función...

solo existen fuera por como las declaras, debes entender eso...

puedes usar global o mas sencillo: declara las variables dentro de la función !!!


por favor lee lo siguiente:
http://www.php.net/manual/en/languag...bles.scope.php

tu problema es por el contexto de las variables, al parecer no lo entiendes bien...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 30/11/2009, 12:04
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 10 años, 5 meses
Puntos: 19
Respuesta: Realizar Consultas con Funciones de PHP

Pero porque no me da error la linea de coneccion? porque si a eso vamos esa tambien usa las variables y no arroja error... :S esa es mi duda porque me da error en la 2da linea y no en al 1ra???
  #9 (permalink)  
Antiguo 30/11/2009, 12:12
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 9 meses
Puntos: 2534
Respuesta: Realizar Consultas con Funciones de PHP

no te salen errores, porque tienes desactivado el sistema de errores... ¿no crees??

ahora, puedes configurar bien tu php.ini
http://www.forosdelweb.com/f142/form...0/#post2416683

o bien, colocar esto al inicio de tu script
Código PHP:
ini_set('display_errors'1);
error_reporting(E_ALL); 
y descubrirás... que estas plagado de errores!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 30/11/2009, 12:16
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 10 años, 5 meses
Puntos: 19
Respuesta: Realizar Consultas con Funciones de PHP

Amigo no se si entiendes, si me salen los errores solo que la primera linea (con la que me conecto al mysql) no da error alguno ahora la siguiente linea (con la que selecciono la bd) esa si da error de usuario y passs y no entiendo el porque...
  #11 (permalink)  
Antiguo 30/11/2009, 12:31
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 10 años, 2 meses
Puntos: 65
Respuesta: Realizar Consultas con Funciones de PHP

Perdona, pero me parece que ya t respondi antes esto, si no le declaras variables en el argumento de la funcion nunca te va a dar bola. El problema lo debes tener en que le estas pasando valores cuando usas la funcion, que no te los esta tomando. A ver, tu funcion deberia ser:

Código PHP:
<?php 

   
# Funcion para Abrir la Conexion. 
   
function AbrirCone($servidor,$puerto,$usuario,$password){
   
    
$cone mysql_connect($servidor.":".$puerto$usuario$password) or die ("Error de Conexion: " .mysql_error()); 
    
$select=mysql_select_db("cementerio",$cone) or die ("Error del select db: ".mysql_error()); 
    return 
$cone

    } 

   
#Funcion que Cierra la Conexion. 
   
    
function CerrarCone(){
 
       
mysql_close($cone);        
    } 
 
  
#Funcion que ejecuta una consulta. 
   
    
function Consuta($conex,$consulta){
          
            
#aca estaba al reves!!
           
$result=mysql_query($consulta,$conex) or die ("Error de la Consulta: ".mysql_error());; 
           return 
$result
    }   
?>
Entonces, deberias usarla asi:

Código PHP:
<?php

   
#Variables de Conexion 
    
$servidor "localhost"
    
$usuario "root"
    
$password ""
    
$puerto "3306"
    
$db

$conexion=AbrirCone($servidor,$puerto,$usuario,$password); #aca obtenes el valor del return de esta funcion

#haces una consulta

$query=Consuta($conexion,"select* from......");


?>
  #12 (permalink)  
Antiguo 30/11/2009, 12:46
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 10 años, 5 meses
Puntos: 19
Respuesta: Realizar Consultas con Funciones de PHP

Bueno asi esta el code:

Código PHP:
<?php
   
//Variables de Coneccion
    
$servidor "localhost";
    
$usuario "root";
    
$password "";
    
$puerto "3306";
    
$db;
   
// Funcion para Abrir la Conexion.
   
function AbrirCone($servidor,$usuario,$password,$puerto
   {  
       
$cone mysql_connect($servidor.":".$puerto$usuario$password) or die ("Error de Conexion: " .mysql_error());
       
$select=mysql_select_db('cementerio',$cone) or die ("Error del select db: ".mysql_error());
       return 
$cone;
    }
   
//Funcion que Cierra la Conexion.
   
function CerrarCone() 
   {
       
mysql_close($cone);       
   }
   
// Funcion que ejecuta una consulta.
   
function Consuta($conex,$consulta)
   {
           
$result=mysql_query($conex,$consulta) or die ("Error de la Consulta: ".mysql_error());;
           return 
$result;
   }  
?>
Error del select db: Access denied for user ''@'localhost' to database 'cementerio'

y Sigue sin Funcionar...
  #13 (permalink)  
Antiguo 30/11/2009, 12:57
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 10 años, 2 meses
Puntos: 65
Respuesta: Realizar Consultas con Funciones de PHP

Lo acabo de probar y anda bien lo que te pase....
Fijate de estar pasandole bien todos los parametros: nombre de usuario, chequea si no tenes clave, etc etc
Chequea que cementerio sea una base de datos y no una tabla dentro de una base de datos....
  #14 (permalink)  
Antiguo 30/11/2009, 14:16
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 9 meses
Puntos: 2534
Respuesta: Realizar Consultas con Funciones de PHP

JuJoGuAl, y se puede saber como ejecutas la función que conecta??

Cita:
Access denied for user ''@'localhost' to database 'cementerio'
porque es evidente que ahí hace falta el nombre del usuario...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #15 (permalink)  
Antiguo 30/11/2009, 14:28
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 10 años, 5 meses
Puntos: 19
Respuesta: Realizar Consultas con Funciones de PHP

dentro del archivo (BUSCAR.php) tengo una linea que dice:

Código PHP:
$conectado=AbrirCone();

Pero ya solucione ese problema.. tube que poner global las var asi:

global 
$servidor..... 
Ahora bien cuando quiero ejecutar la consulta con la funcion que arriba ven no puedo la consuta la llamo asi:

Código PHP:
$query=Consulta($conectado,$consulta); 
consulta ya tiene un valor pero no hace nada ni error muestra....
  #16 (permalink)  
Antiguo 30/11/2009, 14:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 9 meses
Puntos: 2534
Respuesta: Realizar Consultas con Funciones de PHP

pues según el ultimo código que has posteado... la función se llama Consuta() y no Consulta()??

¿porque no activas el reporte de errores como te comenté??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #17 (permalink)  
Antiguo 01/12/2009, 08:13
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 10 años, 5 meses
Puntos: 19
Respuesta: Realizar Consultas con Funciones de PHP

Pues asi tengo la funcion creada
BD_Config
Código PHP:

function abrircone()
{
$cone=mysql_connect("localhost","root","") or die ("Error de Coneccion");
$select=mysql_select_db("cementerio",$cone) or die ("Error en la Seleccion de DB");
return 
$cone;
}

function 
Consulta ($conex,$consulta)
{
$result=mysql_query($conex,$consulta) or die ("Error en la consulta");
return 
$result;

Luego en buscar según una condición cargo una consulta dentro de una variable llamada $consulta...

Entonces en buscar tengo algo como:
Código PHP:
include_once("bd_config.php");
$conectado=abrircone();

hago un switch donde cargo una consulta segun lo que se desea buscar...

algo como
$consulta
="select * from usuarios where Name=$name"

Luego al final hago esto:
$query=consulta($conectado,$consulta); 
Pero no hace nada... Alguna idea de como hacerlo bien???

Última edición por JuJoGuAl; 01/12/2009 a las 09:18
  #18 (permalink)  
Antiguo 01/12/2009, 09:00
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 9 meses
Puntos: 2534
Respuesta: Realizar Consultas con Funciones de PHP

¿y sigues con el reporte de errores desactivado??

porque seguramente tienes un error y no lo podemos saber...
(o eres de los que piensa que en el foro todo se sabe y hasta adivinos somos?)


además, los argumentos para mysql_query() están completamente al revés

por favor, consulta el manual de PHP
http://php.net/mysql_query

primero va la consulta, luego el link
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #19 (permalink)  
Antiguo 01/12/2009, 09:10
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 10 años, 5 meses
Puntos: 19
OK estoy colocando mi php.ini identico al que tienes en el post que me pasastes de como configurar el php.ini..

Y estoy viendo lo del query y te aviso...

Amigo probe lo que tu has sugerido...

Código PHP:

function abrircone()
{
$cone=mysql_connect("localhost","root","") or die ("Error de Coneccion");
$select=mysql_select_db("cementerio",$cone) or die ("Error en la Seleccion de DB");
return 
$cone;
}

function 
Consulta ($conex,$consulta)
{
$result=mysql_query[COLOR="Red"]($consulta,$conex)[/COLOR] or die ("Error en la consulta");
return 
$result;

y donde busco:
Código PHP:
include_once("bd_config.php");
$conectado=abrircone();

hago un switch donde cargo una consulta segun lo que se desea buscar...

algo como
$consulta
="select * from usuarios where Name=$name"

Luego al final hago esto:
[
COLOR="red"]$query=consulta($consulta,$conectado);[/COLOR
y e activado las variables en el php.ini que as solicitado y de igual manera no hace nada no me hace nada ni un error muestra :S

Última edición por GatorV; 01/12/2009 a las 10:12
  #20 (permalink)  
Antiguo 01/12/2009, 09:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 9 meses
Puntos: 2534
Respuesta: Realizar Consultas con Funciones de PHP

yo pienso que antes de continuar con tu problema de PHP, veamos el reporte de errores...

bien, si... ya lo configuraste pero ¿ya reiniciaste el servidor??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #21 (permalink)  
Antiguo 01/12/2009, 09:44
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 10 años, 5 meses
Puntos: 19
Respuesta: Realizar Consultas con Funciones de PHP

reinicie la pc y probe y lo mismo como veo el reporte de errores???
  #22 (permalink)  
Antiguo 01/12/2009, 09:52
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 9 meses
Puntos: 2534
Respuesta: Realizar Consultas con Funciones de PHP

bien, puedes hacerlo también desde el script...

coloca esto al comienzo de todos tus .php
Código PHP:
ini_set('display_errors'1);
error_reporting(E_ALL); 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #23 (permalink)  
Antiguo 01/12/2009, 10:39
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 10 años, 5 meses
Puntos: 19
Respuesta: Realizar Consultas con Funciones de PHP

YA lo hice y sale esto:

Warning: mysql_query() expects parameter 1 to be string resource give in C:...BD_Conections.php on line 25

Error de la consulta
(Ese es el DIE que tengo en la Function Consulta...

ahora que e hecho mal? xD
  #24 (permalink)  
Antiguo 01/12/2009, 13:43
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 9 meses
Puntos: 2534
Respuesta: Realizar Consultas con Funciones de PHP

lo que sucede es que sigues confundiendo los parámetros...

mysql_query() esta bien...

pero aún así te enredas con tu propia función, solo eso, suerte!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
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 21:28.