Foros del Web » Programando para Internet » PHP »

crear clase conexion

Estas en el tema de crear clase conexion en el foro de PHP en Foros del Web. Quiero mostrar la informacion de la BD pero me sale este error. Nose si lo estoy haciendo del todo bien. En el segundo archivo me ...
  #1 (permalink)  
Antiguo 25/02/2014, 16:00
 
Fecha de Ingreso: marzo-2012
Mensajes: 180
Antigüedad: 12 años, 8 meses
Puntos: 2
crear clase conexion

Quiero mostrar la informacion de la BD pero me sale este error. Nose si lo estoy haciendo del todo bien.

En el segundo archivo me sale error en la linia 16

Gracias

Código PHP:
<?php
    
class connection {
        private 
$servidor;
        private 
$usuari;
        private 
$clau;
        private 
$bd;
        private 
$connectar;
        
        function 
connection($servidor,$usuari,$clau,$bd) {
            
$this->servidor $servidor;
            
$this->usuari $usuari;
            
$this->clau $clau;
            
$this->bd $bd;
            
$this->connectar();
            
$this->seleccionar();
        }
        
        private function 
connectar() {
            
$this->connectar mysql_connect($this->servidor$this->usuari$this->clau)or die(mysql_error());
        }
        
        private function 
seleccionar() {
            
mysql_select_db($this->bd)or die(mysql_error());
        }
        
        public function 
consultar($sql) {
            
$resultat mysql_query($sql$this->connectar);
            return 
$resultat;
        }
        
        public function 
numeroFiles($sql) {
            return 
mysql_num_rows($sql);
        }
        
        public function 
numeroColumnes($sql) {
            return 
mysql_num_fields($sql);
        }
        
        public function 
nomCamp($sql) {
            return 
mysql_field_name($sql$i);
        }
    }
?>
Código PHP:
<html>
    <head>
    </head>
    <body>
        <?php
            
class proces {
                private 
$comunicacio;
                function 
proces() {

                    include(
"connection.php");
                    
$servidor 'localhost';
                    
$usuari 'root';
                    
$clau 'root';
                    
$bd 'pene';
                    
                    
$this->$comunicacio = new connection($servidor,$usuari,$clau,$bd);
                    
$this->mostrar($sql);
                }
                
                function 
mostrar($sql) {
                    
$ej $this->comunicacio->consultar($sql);
                    
$numeroColumnes $this->comunicacio->numeroColumnes($ej);
                    while(
$r mysql_fetch_array($ej)) {
                        for(
$i=1$i $numeroColumnes$i++) {
                            
$n $this->comunicacio->nomCamp($ej,$i);
                            echo 
$n;
                            echo 
": ".$r[$i];
                        }
                        echo 
"<br";
                    }
                }
            }
            
$x = new proces();
        
?>
    </body>
</html>
I me sale este error

Notice: Undefined variable: comunicacio in C:\xampp\htdocs\Wensfilm\prova.php on line 16

Fatal error: Cannot access empty property in C:\xampp\htdocs\Wensfilm\prova.php on line 16
  #2 (permalink)  
Antiguo 25/02/2014, 17:49
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: crear clase conexion

De entrada, si vas a crear una clase, no es recomendable que incluyas HTML u otros códigos que no tengan que ver con la clase.

Habría que ver como estás instanciando la clase y ejecutando proces().

Cuando soluciones esto, seguramente te va a dar error de variable $sql indefinida.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 26/02/2014, 08:53
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 4 meses
Puntos: 379
Respuesta: crear clase conexion

La variable tiene un $ de mas
Código PHP:
Ver original
  1. $numeroColumnes = $this->$comunicacio->numeroColumnes($ej);

Debe de ser
Código PHP:
Ver original
  1. $numeroColumnes = $this->comunicacio->numeroColumnes($ej);

Fuera de ese error y algunos detalles mas como el que menciono Triby, es importante que dejes de usar la extensión mysql y la cambies por la mysqli: http://www.php.net/manual/en/book.mysqli.php.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Etiquetas: clase, conexion, html, mysql, select, sql, variable
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 22:15.