Ver Mensaje Individual
  #10 (permalink)  
Antiguo 10/04/2009, 06:55
astut
 
Fecha de Ingreso: septiembre-2005
Ubicación: Valencia
Mensajes: 738
Antigüedad: 19 años, 3 meses
Puntos: 5
Respuesta: Crear funcion para realizar sentencias sql

Bueno, lo explicare de nuevo tal vez no me haya explicado con claridad...

1º Tengo una clase que utilizo para operar con la base de datos mysql, y incluyo y declaro en todas mis funciones donde utilize mysql, y tambien en mi pagina index.php donde van a parar todas las funciones, es esta:
Código PHP:
<?php
    
/*----
        - Manejador de mysql.
        @ Version 1.0 por Zamblo.
    ----*/
    
    
class mysql
    
{
        var 
$conexion;
        var 
$conexion_servidor"localhost";
        var 
$conexion_usuario"zamblo";
        var 
$conexion_contrasena"pass";
        var 
$conexion_bd"pokemonrpg";
        
        
//Realizar conexion a la base de datos
        
function Conectar()
        {
            
$this->conexionmysql_connect($this->conexion_servidor$this->conexion_usuario$this->conexion_contrasena);
            
mysql_select_db($this->conexion_bd$this->conexion);
            
mysql_query ("SET NAMES 'utf8'");
        }
        
//Realizar consulta a la base de datos
        
function Consulta($datos)
        {
            
$resultadmysql_query($datos$this->conexion) or die(mysql_error());
            
            return 
$resultado;
        }
        
//Devolver resultado de un campo de consulta a la base de datos
        
function ResultadoConsulta($datos)
        {
            
$resultadomysql_result(mysql_query($datos), 0) or die(mysql_error());
            
            return 
$resultado;
        }
        
//Devolver array de datos de consulta a la base de datos
        
function ArrayConsulta($datos)
        {
            
$resultadomysql_fetch_array(mysql_query($datos)) or die(mysql_error());
            
            return 
$resultado;
        }
        
//Devolver numero de filas de consulta a la base de datos
        
function FilasConsulta($datos)
        {
            
$resultadomysql_num_rows(mysql_query($datos)) or die(mysql_error());
            
            return 
$resultado;
        }
    }
?>
2º Esta clase la incluyo y la defino en mi fichero index.php, y utilizo el metodo Conectar() para hacer un mysql_connect y un mysqL-select_db, por lo tanto siempre estare conectado a la bd, esta es la cabezera de mi archivo index.php:
Código PHP:
//Mysql
    
require("clases/mysql.php");
    
$mysql= new mysql;
    
$mysql->Conectar(); 
3º Mas abajo de mi archivo index.php (Despues de haber incluido, declarado una instancia y utilizado el metodo Conectar()) utilizo una funcion para hacer una comprobacion de las cookies del usuario, donde vuelvo a necesitar la clase mysql, esta es la funcion:
Código PHP:
<?php
    
/*---
        - Comprobar si el usuario esta logeado en el sistema.
        @ Version 1.0 por Zamblo.
    ---*/
    
    //Manejador de mysql
    
include_once("clases/mysql.php");
    if (!isset(
$mysql)) $mysql= new mysql;
    
    function 
ComprobarCookies()
    {
        if (isset(
$_COOKIE["pokemonrpg_jugador_id"]) and isset($_COOKIE["pokemonrpg_jugador_cuenta"]) and isset($_COOKIE["pokemonrpg_jugador_contrasena"]) and isset($_COOKIE["pokemonrpg_jugador_entrenador"]))
        {
            
$cuenta$mysql->DevolverArray("SELECT id, nombre, contrasena FROM pokemonrpg_cuenta  WHERE id='".$_COOKIE["pokemonrpg_jugador_id"]."'");
            if (
$cuenta["contrasena"]== $_COOKIE["pokemonrpg_jugador_contrasena"])
                return 
true;
            else
                return 
false;
        }
        else
            return 
false;
    }
?>
¿El problema? Cuando se ejecuta la funcion me arroja el siguiente error:
Código:
Fatal error: Call to a member function DevolverArray() on a non-object in C:\Wamp\www\Pokemonrpg\funciones\ComprobarCookies.php on line 15
La linea 15 de ComprobarCookies es:
Código PHP:
$cuenta$mysql->DevolverArray("SELECT id, nombre, contrasena FROM pokemonrpg_cuenta  WHERE id='".$_COOKIE["pokemonrpg_jugador_id"]."'"); 
¿Que hay mal aqui?

Muchas gracias!