Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

llamada a un método

Estas en el tema de llamada a un método en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola, tengo un problemilla de un par de líneas que me tiene loco. A la hora de interactuar con una base de datos mysql me ...
  #1 (permalink)  
Antiguo 03/04/2007, 03:55
 
Fecha de Ingreso: abril-2006
Mensajes: 21
Antigüedad: 18 años
Puntos: 0
llamada a un método

Hola, tengo un problemilla de un par de líneas que me tiene loco.

A la hora de interactuar con una base de datos mysql me he basado en una clase que hay por ahí en internet que gente de confianza me ha dicho que funciona, el enlace es el siguiente:

es.tldp.org/Manuales-LuCAS/manual_PHP/manual_PHP/sintaxis/clases.htm

Total, que abajo de esta página hace un ejemplo final creando un objeto de la clase DB_mysql ... y con ese mismo ejemplo (... cambiando un pequeño error <body> ponerlo abajo de <html> ...) me sale en mi página web lo siguiente:

conectar("mydb","localhost","root","");$miconexion->consulta("SELECT * FROM AGENDA");$miconexion->verconsulta(); ?>

Nota: he cambiado "nobody" por "root" y en mi servidor, root no tiene password...

En fin...me sale eso...y llevo desde ayer mirando esas dos líneas de código y no hay manera de encontrar el fallo...

Un saludo y gracias.

PD:he estado mirando en los foros y normalmente no funciona la traducción de PHP a HTML porque la versión de PHP no soportaba programación orientada a objetos...supuestamente a mi sí me tiene que ir, porq uso el programa que lo tiene todo ( wamp 1.7.0) que trae la version de PHP 5.2.1.1

Última edición por pakkk; 03/04/2007 a las 04:38
  #2 (permalink)  
Antiguo 03/04/2007, 09:35
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Re: llamada a un método

Parece obvio pero estas poniendo el codigo php entre estas estiquetas???:
<?php
...codigo PHP
?>
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #3 (permalink)  
Antiguo 03/04/2007, 10:04
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Re: llamada a un método

Y mas obvio, lo estas corriendo en un servidor? y esta prendido? y es un archivo .php?
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #4 (permalink)  
Antiguo 03/04/2007, 11:47
 
Fecha de Ingreso: abril-2006
Mensajes: 21
Antigüedad: 18 años
Puntos: 0
De acuerdo Re: llamada a un método

Sí, todo es copy-paste del sitio web que he dado. Mi servidor está corriendo...me meto en mi proyecto desde localhost, es un fichero .php , está entre etiquetas <?php ... ?> ...todo...pero me pasa este error tan extraño que no sé si es porque uso orientado a objetos o que pasa...he usado php ya en mi servidor ( sin orientado a objetos ) y sí me funciona.

Saludos.
  #5 (permalink)  
Antiguo 03/04/2007, 12:33
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: llamada a un método

Que editor de texto usas para editar tus archivos PHP?
  #6 (permalink)  
Antiguo 03/04/2007, 17:11
 
Fecha de Ingreso: abril-2006
Mensajes: 21
Antigüedad: 18 años
Puntos: 0
De acuerdo Re: llamada a un método

hola! Está hecho con el Bloc de Notas de toda la vida!! jeje, a pelo!

Un saludo.

PD: Vaya tela con el dichoso error.

PD2: intentando buscarme la vida viendo si ese error aparece en más ocasiones he creado los siguientes ficheros:

c:\wamp\www\OrientadoO\clase.php :

<?

class clase {
function ejemplo(){
return "hola mundo";
}
}

?>

c:\wamp\www\OrientadoO\index.php :

<?php
require ('clase.php');
$miejemplo = new clase ;
echo "$miejemplo->ejemplo()";

?>


Y ahora...el error que me sale es ya "un poco más de PHP" ...
Fatal error: Class 'clase' not found in C:\wamp\www\OrientadoO\index.php on line 5


Que también ... es un error un poco raro, porque en el mismo directorio que index.php tengo el de 'clase.php' ... me están pasando cosas muy raras!!!

Un saludo...y espero a ver si os he dado más pistas sobre donde puede estar mi error.


Última edición por pakkk; 03/04/2007 a las 17:21
  #7 (permalink)  
Antiguo 04/04/2007, 07:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: llamada a un método

Que pasa si cambias:
Cita:
c:\wamp\www\OrientadoO\clase.php :

<?

class clase {
function ejemplo(){
return "hola mundo";
}
}

?>
Por:
Código PHP:
<?php

class clase {
function 
ejemplo(){
return 
"hola mundo";
}
}

?>
  #8 (permalink)  
Antiguo 04/04/2007, 08:20
 
Fecha de Ingreso: abril-2006
Mensajes: 21
Antigüedad: 18 años
Puntos: 0
Re: llamada a un método

Jejeje, lo que me has dicho de poner en la etiqueta en vez de <? -> <?php ha funcionado!!! jejeje. Por qué pasaba eso ??? no se supone que las dos cosas son lo mismo...¿?

Pero bueno...no nos salgamos de mi pregunta principal...ya me puedo quitar de la cabeza que no tiene la culpa "el trabajar con objetos" en mi servidor, también puedo eliminar el problema de la etiqueta <?php porque en el programa que doy al principio ( mi primera pregunta en el foro ) si utiliza dicha etiqueta...mi servidor está corriendo satisfactoriamente...sino, no hubiera podido traducir el código ejemplo que no tenía la etiqueta <?php, que más que más ... no hay problema en el código a compilar, porque es copiado de un sitio donde un amigo lo ha probado y funciona ...

Es que, piensen las vueltas que le he dado, ya que no le encuentro pies ni cabeza...

Un saludo.
  #9 (permalink)  
Antiguo 04/04/2007, 08:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: llamada a un método

Raro, a mi si me funciona ese ejemplo, te recomendaria que borraras tu archivo y lo volvieras a crear y pegar.
  #10 (permalink)  
Antiguo 04/04/2007, 08:49
 
Fecha de Ingreso: abril-2006
Mensajes: 21
Antigüedad: 18 años
Puntos: 0
Re: llamada a un método

pues nada tio...no le encuentro el error...por caracteres raros puede ser ? cuando programaba en ensamblador, muchas veces al trabajar con otro editor de ficheros y cuando lo abría con el bloc de notas aparecían esos "caracteres raros" ... en esta ocasión ... nada más que veo caracteres raros sobre los comentarios, cosa que no tiene que dar problemas, porque supongo que el compilador de PHP los quitará antes de hacer todo el trabajo ... o eso espero ... entonces funciona correctamente no ? He probado en quitar los caracteres raros y tampoco funciona...



Que cosa mas rara!


PD: He copiado el codigo a mano ( parte de él, no todo, pero que debería funcionar ):


clase_mysql.inc.php :



<?php

class DB_mysql {



/* variables de conexión */
var $BaseDatos;
var $Servidor;
var $Usuario;
var $Clave;





/* identificador de conexión y consulta */
var $Conexion_ID = 0;
var $Consulta_ID = 0;



/* número de error y texto error */
var $Errno = 0;
var $Error = "";





/* Método Constructor: Cada vez que creemos una variable

de esta clase, se ejecutará esta función */
function DB_mysql($bd = "", $host = "localhost", $user = "root", $pass = "") {
$this->BaseDatos = $bd;
$this->Servidor = $host;
$this->Usuario = $user;
$this->Clave = $pass;
}



/*Conexión a la base de datos*/
function conectar($bd, $host, $user, $pass){


if ($bd != "") $this->BaseDatos = $bd;
if ($host != "") $this->Servidor = $host;
if ($user != "") $this->Usuario = $user;
if ($pass != "") $this->Clave = $pass;



// Conectamos al servidor
$this->Conexion_ID = mysql_connect($this->Servidor, $this->Usuario, $this->Clave);
if (!$this->Conexion_ID) {
$this->Error = "Ha fallado la conexión.";
return 0;
}



//seleccionamos la base de datos
if (!@mysql_select_db($this->BaseDatos, $this->Conexion_ID)) {
$this->Error = "Imposible abrir ".$this->BaseDatos ;
return 0;
}



/* Si hemos tenido éxito conectando devuelve

el identificador de la conexión, sino devuelve 0 */
return $this->Conexion_ID;
}

}

?>



index.html :

<html>
<body>
<?php

require ("clase_mysql.inc.php");

$miconexion = new DB_mysql ;

$miconexion->conectar("mydb", "localhost", "root", "");

?>
</body>
</html>

Y me sigue sin traducir el código, poniendome directamente en el HTML:

conectar("mydb","localhost","root",""); ?>




Última edición por pakkk; 04/04/2007 a las 09:20
  #11 (permalink)  
Antiguo 04/04/2007, 09:41
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: llamada a un método

Con que encoding estas guardando tu archivo? Te recomiendo que uses algun otro editor (Te recomiendo Notepad++) para que veas bien si hay caracteres extranios en tu codigo que esten limitando que PHP interprete tus codigos bien.
  #12 (permalink)  
Antiguo 04/04/2007, 09:57
 
Fecha de Ingreso: abril-2006
Mensajes: 21
Antigüedad: 18 años
Puntos: 0
Re: llamada a un método

Bloc de notas...
  #13 (permalink)  
Antiguo 04/04/2007, 10:03
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: llamada a un método

Pregunto que encoding, no que editor, a partir del XP, Bloc de Notas te permite guardar un archivo en diferentes encodings, como utf-8, iso, etc.

El problema es que luego aunque escojas un encoding diferente los caracteres no se ven en el bloc de notas (por ser un bloc limitado) por eso te decia que probaras con Notepad++, que te permite ver los caracteres que luego Bloc de Notas no te permite ver.
  #14 (permalink)  
Antiguo 04/04/2007, 17:10
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 18 años, 3 meses
Puntos: 3
Re: llamada a un método

Cita:
Iniciado por pakkk Ver Mensaje
Jejeje, lo que me has dicho de poner en la etiqueta en vez de <? -> <?php ha funcionado!!! jejeje. Por qué pasaba eso ??? no se supone que las dos cosas son lo mismo...¿?

Pero bueno...no nos salgamos de mi pregunta principal...ya me puedo quitar de la cabeza que no tiene la culpa "el trabajar con objetos" en mi servidor, también puedo eliminar el problema de la etiqueta <?php porque en el programa que doy al principio ( mi primera pregunta en el foro ) si utiliza dicha etiqueta...mi servidor está corriendo satisfactoriamente...sino, no hubiera podido traducir el código ejemplo que no tenía la etiqueta <?php, que más que más ... no hay problema en el código a compilar, porque es copiado de un sitio donde un amigo lo ha probado y funciona ...

Es que, piensen las vueltas que le he dado, ya que no le encuentro pies ni cabeza...

Un saludo.
De hecho si hubieras hecho caso a la primer solucion que te di... te hubieras evitado mas dolores de cabeza....
Cuando quieres hacer un archivo en php en el block de notas, cuando lo vas a guardar tienes que darle en tipo de archivo y ponerle 'all files' luego ya lo guardas con extension .php
Un saludo
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #15 (permalink)  
Antiguo 04/04/2007, 18:01
 
Fecha de Ingreso: abril-2006
Mensajes: 21
Antigüedad: 18 años
Puntos: 0
Pregunta Re: llamada a un método

Hola otra vez, ya me he instalado el NOTEPAD++ y todavía sigo sin entender el porqué del error...

De las únicas cosas sospechosas que le encuentro a mi SISTEMA, es que anteriormente a instalar el WAMP, el cual instala 1 servidor de MySql, tenía instalado otro servidor de MySql...de todos modos, lo que hago para que funcione el de Wamp, que es el que me intereresa, es que me voy a los Servicios de windows y lo 'paro'. Esa es la única cosa anómala que os pueda contar. Pero de todos modos...eso no tiene nada que ver con mi problema, no ? El problema está en la traducción de mi código ... no ?

Un saludo.
Y a ver si alguien entiende cual es este expediente X.

  #16 (permalink)  
Antiguo 21/04/2007, 18:36
 
Fecha de Ingreso: marzo-2006
Ubicación: Pucallpa-Perú
Mensajes: 15
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: llamada a un método

Código PHP:
Zend::loadClass("Zend_Controller_Action");
class 
OrdenController extends Zend_Controller_Action 
{
 
 public function 
__construct()
 {
  
parent::__construct();  
  require_once(
"Proveedor.class.php");  
  require_once(
"Personal.class.php");  
  require_once(
"Articulo.class.php");
  require_once(
"Moneda.class.php");
  require_once(
"OrdenCompra.class.php");
  require_once(
"DetalleOrden.class.php");
 } 
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 14:11.