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

PHP OO array en clases php

Estas en el tema de array en clases php en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola amigos tengo una super duda e increiblemente que parezca no encuentro nada en google, resulta que en el trabajo estan usando php4 por rasones ...
  #1 (permalink)  
Antiguo 14/02/2011, 19:49
 
Fecha de Ingreso: febrero-2011
Mensajes: 18
Antigüedad: 13 años, 2 meses
Puntos: 9
Mensaje array en clases php

Hola amigos tengo una super duda e increiblemente que parezca no encuentro nada en google, resulta que en el trabajo estan usando php4 por rasones que no comprendo aun pero no lo pueden cambiar por el momento, el hecho es que me vi una clase estupenda para mysql llamada crdb y hecha por [email protected], me la baje de http://www.phpclasses.org/, el asunto es que esa clase trabaja una manera simplifica el manejo de db y quiero hacer algo asi para el trabajo pero con php+oracle

la clase de mysql trabaja asi:

$query = $db->productos->categoria(1)->desc_order_by()->fields('fecha_edit','cod_pro');

luego recogo mis datos asi:

$i=0;
foreach($query as $v){
$Nombre[$i] = $v->nom_pro;
$Codigo[$i] = $v->cod_pro;
$Path_img[$i] = $v->path_img;
$Desc[$i] = $v->desc_pro;
$Prec_u[$i] = $v->precio_unid;
$Prec_m[$i] = $v->precio_mayor;
$i++;
}

ya me vi el codigo de la clases y no entiendo ni papa (soy nuevo en php)

como es ele manejo de ¿array's? $v->nombre de un campo

y mas dificil aun como llamar metodos de la siguiente manera:

$db->productos->xxxxx->xxxxx->xxxxx

en mi clase ya he logrado conectarme a la base de datos:

<?php
class Utilidades_Oracle{

var $user_ora = 'user_web';
var $pass_ora = 'webuser';
var $squema = 'bldes';

var $link;
var $stmt;
var $array;
var $result_array = array();

/*Realiza la conexión a la base de datos.*/
function conectar(){

$this->conexion = @OCILogon($this->user_ora, $this->pass_ora, $this->squema);

if(!$this->conexion){

return false;

}else{

return $this->conexion;

}

}

/*Realiza la desconexión a la base de datos.*/
function desconectar($conection_ID){

$this->conection_ID = $conection_ID;

return OCILogOff($this->$this->conection_ID);

}

$o = new Utilidades_Oracle();

/*Nos conectamos*/
$c1 = $o->conectar();
if(!$c1){
echo "<span style='color:red'>Problemas para conectarse a Base de datos! </span><br>";
exit();
}

echo 'se conecto';

/*Nos desconectamos*/
$o->desconectar($c1);

quiero saber de ese manejo de arrays o lo que sea que es eso, para poder contruir algo asi, y de lograrlo me ayudaria mucho y a los demas pork pienso publicarlo para que alguien mas lo aproveche,

saludos y disculpen toda la historia.

?>
  #2 (permalink)  
Antiguo 15/02/2011, 01:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: array en clases php

Esos no son arrays, son objetos, y la idea es que crees un objeto por cada registro de tu consulta.

Lo de usar "chaining" se usa cuando devuelves $this en un método, por ejemplo:
Código PHP:
Ver original
  1. function algo($var) {
  2.       $this->var = $var;
  3.       return $this;
  4. }

Solo que ten cuidado ya que en PHP4 no se puede usar tan sencillo ya que los objetos no se pasan por referencia.

Saludos.
  #3 (permalink)  
Antiguo 15/02/2011, 11:02
 
Fecha de Ingreso: febrero-2011
Mensajes: 18
Antigüedad: 13 años, 2 meses
Puntos: 9
Respuesta: array en clases php

hola y gracias por la respuesta, bueno buscare la manera, ahora lo que quisiera saber es si hay un equivalente a oci_fetch_array() de php5 en php4 pork el manual de php.net no me lo dice, casi todas las instrucciones tienen una nota que dice:

In PHP versions before 5.0.0 you must use ociresult() instead /*por dar un ejemplo*/

pero para oci_fetch_array() no me dice y en internet no consigo, que fastidio estar programando para una herramienta vieja!

nececito esto para crear un metodo que me devuelva el array con todos los campos de la consulta (que hice un otro metodo), con ociresult() no me sirve pork tengo que saber el nombre del campo, pero con oci_fetch_array() me regresa un array con todos los campos de la tabla y el usuario elige que es lo que quiere:

mi metodo para hacer query:

/*Método para ejecutar una sentencia sql*/
function ejecutar($conexion,$sql){

$this->conexion = $conexion;

$this->stmt = OCIParse($this->conexion,$sql);

OCIExecute($this->stmt);

return $this->stmt;

}

/*Método para obtener el Fetch*/
function hay_fetch($stmt){

return OCIFetch($stmt);
/*en vez de retornar el fetch quiero retornar el array asociado a el*/

}

para luego utilizarlo asi:

/*Creamos el objeto*/
$o = new Utilidades_Oracle();

/*Nos conectamos*/
$c1 = $o->conectar();
if(!$c1){
echo "<span style='color:red'>Problemas para conectarse a Base de datos! </span><br>";
exit();
}
/*definimos el query*/
$sql_query = "SELECT * FROM NORMAS.USUARIOS_NORMAS WHERE ESTATUS = 'ACTIVO'";

/*ejecutamos el query*/
$stmt = $o->ejecutar($c1,$sql_query);

/*Realizamos un bucle para ir obteniendo los resultados*/
$i = 0;
while ($row =$o->hay_fetch($stmt)){
$Cedula[$i] = $row["NUM_CEDULA"];
$Nombre[$i] = $row["NOMBRE"];
$i++;
}

/*Nos desconectamos*/
$o->desconectar($c1);
  #4 (permalink)  
Antiguo 15/02/2011, 13:23
 
Fecha de Ingreso: octubre-2009
Mensajes: 245
Antigüedad: 14 años, 6 meses
Puntos: 17
Respuesta: array en clases php

Solamente he usado Oracle Forms con ese DBMS, pero haciendo una búsqueda encontré esta liga igual te puede servir http://php.apsique.com/lenguajes/php/oracle
Es importante que vayas haciendo un plan para migrar de versión ya que php 4 ya no tiene soporte.
__________________
Saludos.

Etiquetas: clases, 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 17:54.