Comunidad PHPeros
Lenguajes => PHP => (POO) Programación Orientada a Objetos => Mensaje iniciado por: Siquillote en 22 de Mayo de 2010, 14:17:45 pm
-
Hola muy buenas. He decidido lanzarme ya a hacer consultas a la base de datos mediante POO y todo me funciona genial, pero veo que tanto en el
conectar.php y index.php, se consume mucho espacio para sacar 2 tonterias. Por lo que he decidido hacer este tema a ver si me pudieseis ayudar con algun que otro consejo para abreviar el código. Bueno aquí os los dejo :
conectar.php
<?php
class conectar{
var $host;
var $user;
var $pass;
var $conectar;
public function conectamos(){
$coger = new conectar();
$coger -> conectamos();
}}
// Ahora si que conectamos
$coger->host = "";
$coger->user = "";
$coger->pass = "";
$coger->conectar = mysql_connect($coger->host,$coger->user,$coger->pass);
mysql_select_db($coger->user,$coger->conectar);
?>
index.php
<?
include("conectar.php");
class script{
var $query;
var $error;
public function sacar(){
$coger = new script();
$coger->sacar();
}}
$coger->query = mysql_query("SELECT * FROM usuarios");
$coger->error = "No hay resultados";
if(mysql_num_rows($coger->query)==0){
echo $coger->error;
} else {
while($coger->tomar = mysql_fetch_array($coger->query)){
echo $coger->tomar['usuario']." <b>Pass</b>: ".$coger->tomar['pass'];
}
}
?>
¿Algún consejo?.
-
Creo, y digo creo porque no me he informado sobre estandares en PHP, que no deberias hacer $objeto->variable y darle valor...
Debes declarar funciones get y set para recibir o modificar valores de las variables en un objeto.
Al menos así es como lo he hecho en C/C++, Java, Delphi y la mayoria de lenguajes con POO
-
Creo, y digo creo porque no me he informado sobre estandares en PHP, que no deberias hacer $objeto->variable y darle valor...
Debes declarar funciones get y set para recibir o modificar valores de las variables en un objeto.
Al menos así es como lo he hecho en C/C++, Java, Delphi y la mayoria de lenguajes con POO
¿Y por que no? ¿Entonces como hago?. Es que como soy nuevo en esto pues no piloto mucho y no se si se pueden utilizar las "antiguas" variables
como $hola. ¿Se puede?. Perdonar mi ingenuidad :L
-
Creo que tienes un cacao mental impresionante :S
Dentro de una clase creas la clase :S
<?php
class conectar{
var $host;
var $user;
var $pass;
private $conectar;
function __construct($host, $user, $pass) {
$this->host = $host;
$this->user = $user;
$this->pass = $pass;
}
public function conectamos(){
$this->conectar = mysql_connect($coger->host,$coger->user,$coger->pass);
mysql_select_db($coger->user,$coger->conectar);
}
}
?>
Ahora tiene un minimo sentido, al menos, y no llamas a la clase dentro de ella misma...
en la otra idem de idem, ni siquiera entiendo lo que hace :S
-
Lo que yo haria es no definir tantas variables :S
Lo haría directamente...
y quitarle los saltos de linea...
Si mal no recuerdo... Aquí publicaron un tuto para hacer la carga mas rapida de los archivos php y es remplazando los espacios en blanco por ningun espacio...
Saludos
-
Creo que tienes un cacao mental impresionante :S
Dentro de una clase creas la clase :S
<?php
class conectar{
var $host;
var $user;
var $pass;
private $conectar;
function __construct($host, $user, $pass) {
$this->host = $host;
$this->user = $user;
$this->pass = $pass;
}
public function conectamos(){
$this->conectar = mysql_connect($coger->host,$coger->user,$coger->pass);
mysql_select_db($coger->user,$coger->conectar);
}
}
?>
Ahora tiene un minimo sentido, al menos, y no llamas a la clase dentro de ella misma...
en la otra idem de idem, ni siquiera entiendo lo que hace :S
Vale, a ver ya lo he entendido, ¿Pero donde declaras los valores de la BD?, es decir, ¿Donde pones los datos?.
-
en la funcion __construct, y se me pasó cambiar $coger->loksea por $this->loksea
-
Una cosa, no es mejor colocarle un nombre que inicie con mayúscula en la clase? A mí en teoría de POO me lo comentaron muchas veces xD
Bueno, si no me equivoco, para ponerle valores sería (fuera de la clase):
$obj = new Conectar("aquí el host", "aquí el user", "aquí la pass");