Foros del Web » Programando para Internet » PHP »

Mejor opcion para un FETCH

Estas en el tema de Mejor opcion para un FETCH en el foro de PHP en Foros del Web. Hola como estan ?... Bueno estoy viendo cual podria ser la situacion mas comoda para ejecutar el codigo. Obtengo los datos de un fetch. (NO ...
  #1 (permalink)  
Antiguo 13/12/2011, 23:11
 
Fecha de Ingreso: agosto-2011
Mensajes: 161
Antigüedad: 12 años, 8 meses
Puntos: 7
Mejor opcion para un FETCH

Hola como estan ?...
Bueno estoy viendo cual podria ser la situacion mas comoda para ejecutar el codigo.
Obtengo los datos de un fetch. (NO ASSOC, NO OBJETC,)

basicamente. adentro de un ciclo while guardo los mismos datos pero de diferentes formas.. una en un arreglo normal, otro en un arreglo asociativo y el ultimo lo guardo como arreglo asociativo para luego convertirlo en un obj

Código PHP:
while($stmt->fetch()): // comienza el ciclo

ARREGLO ASOCIATIVO:
$datos[]=array('id'=>$campo1,'detalle'=>$campo2,'nomkey'=>$campo3,'fecha_in'=>$campo4,'fecha_ter'=>$campo5,'nombre_jpg'=>$campo6);

ARREGLO NORMAL:          
 
$dat[]=array($campo1,$campo2,$campo3,$campo4,$campo5,$campo6); 
           
ARREGLO ASOCIATICO PARA CONVERTIRLO A OBJ:
$obj=array('id'=>$campo1,'detalle'=>$campo2,'nomkey'=>$campo3,'fecha_in'=>$campo4,'fecha_ter'=>$campo5,'nombre_jpg'=>$campo6);
           
 endwhile; 
// fin ciclo

        
CONVERSION DE OBJ
         
         
         
foreach($obj as $index => $valor)
          {
           
$obj[$index]=(object)$valor;
           }
            
$obj=(object)$obj;
            
// IMPRESION DE OBJ
        
echo $obj[0]->id// aqui tengo la duda... COMO OBTENER LOS VALORES DE POR FILAS?
          
         
         
// IMPRESION ARRAY NUMERICO      
         
         
for($i=0;$i<count($dat);$i++)
         {
             echo 
$dat[0][0];
                      
             }
        
 
// IMPRESION ARRAY ASOCIATIVO    
         
         
for($i=0;$i<count($datos);$i++)
         {
             echo 
$datos[0]["id"];
                      
             } 

Como pueden ver, cual seria la mejor opcion ?

Array convencional ?
Array ASOCIATIVO ?
OBJ ?

como pueden ver.. en este caso no se mostrar los valores del obj.. :(

Alguien me podria dar su opinion cual seria la mejor opcion y una ayudita en cuanto al obj ?

Gracias!
  #2 (permalink)  
Antiguo 13/12/2011, 23:42
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Mejor opcion para un FETCH

Hay una diferencia mayor entre querer usar un objeto y saber usarlo, también debes conocer bien las diferencias entre arreglos indexados y asociativos.

Un arreglo asociativo se puede convertir en un objeto por medio del type-casting, lo que cual vuelve accesibles los índices como propiedades.

Un arreglo indexado no, en teoría. Sin embargo puedes hacer esto:
Código PHP:
$foo = (object) array('bar');
echo 
$foo->{'0'}; 
Pero la verdad no resulta cómodo de leer ni elegante de relucir, todo depende del estilo también, no te fíes.

¿Cuando usar un objeto en tu caso?

Tu decides, sin embargo un arreglo indexado siempre es mas fácil de leer y escribir cuando no se tienen claros los datos son tabulares ¿por qué quieres convertir un arreglo así en objeto?

U otra cosa ¿que pasaría si alguien mas quiere mejorar tu código?

Si escribes cosas poco entendibles es muy probable que nadie te pueda ayudar, ni tu mismo en un futuro. La mejor opción la decides tu, cada quien tiene su estándar. (:
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 13/12/2011, 23:55
 
Fecha de Ingreso: agosto-2011
Mensajes: 161
Antigüedad: 12 años, 8 meses
Puntos: 7
Respuesta: Mejor opcion para un FETCH

Gracias peteke !.. es que recien hoy comence con esto de los objetos.. y la verdad estoy muy confundido... !

eh visto ejemplos.. pero muy basicos !

me puedes sacar de una duda ? ...

LEYENDO articulos lei que cuando uno crea un arreglo en cadena .. no se pone el []
ej :
arreglo = array($campo1,$campo2);
y no
arreglo[] = array($campo1,$campo2);

estoy haciendo algunas pruebas y tendos dos arreglos
casi iguales a estos ... pero uno si tiene el [] y si me imprime los valores... cuando le saco el [] me los deja de imprimir..

y el otro pasa todo lo contrario...

cuando le saco el [] imprime.. y cuando se los pongo... no imprime...


EJ :

Código PHP:
$dat[]=array($campo1,$campo2,$campo3,$campo4,$campo5,$campo6); 

echo 
$datos[0][1si imprime... y si le saco los [] .. no me imprime nada
EL OTRO ES

Código PHP:
$nom=array('ja'=>'hola','chao'=>'chao','wua'=>'wua');

echo 
$nom['ja'// imprime HOLA.. pero si le pongo el corchete a nom[] no me imprime nada. 

A que se debe estoooooooo! ?
  #4 (permalink)  
Antiguo 14/12/2011, 00:40
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Mejor opcion para un FETCH

¿Quieres leer el manual?

http://www.php.net/manual/es/language.types.array.php

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 14/12/2011, 07:26
 
Fecha de Ingreso: agosto-2011
Mensajes: 161
Antigüedad: 12 años, 8 meses
Puntos: 7
Respuesta: Mejor opcion para un FETCH

Obvio campeon!!.... Muchas gracias !
  #6 (permalink)  
Antiguo 14/12/2011, 13:31
 
Fecha de Ingreso: agosto-2011
Mensajes: 161
Antigüedad: 12 años, 8 meses
Puntos: 7
Respuesta: Mejor opcion para un FETCH

Pate... No vuelva tu ejemplo ... :(

Código PHP:
$foo = (object) array('bar');
echo 
$foo->{'0'}; 
  #7 (permalink)  
Antiguo 14/12/2011, 14:55
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Mejor opcion para un FETCH

Si te confundes al usar objetos, lo mejor es que primero estudies y entiendas un poco de programación orientada a objetos, no quieras correr sin haber aprendido antes a caminar.

En cuanto a los arreglos numéricos:
Código PHP:
Ver original
  1. $campo1 = 'uno';
  2. $campo2 = 'dos';
  3. $campo3 = 'tres';
  4.  
  5. // Inicializar arreglo
  6. $dat = array();
  7. // Insertar elemento en el primer espacio disponible, en este caso, cero
  8. $dat[] = 'algun valor';
  9. // Insertar otro elemento, en 1.. que será otro array
  10. $dat[] = array($campo1, $campo2, $campo3);
  11.  
  12. // Qué obtienes si haces esto?
  13. var_dump($dat);
  14.  
  15. // Inicializar nuevamente el array sólo con los tres campos
  16. $dat = array($campo1, $campo2, $campo3);
  17.  
  18. // Ahora... que obtienes?
  19. var_dump($dat);

En caso de dudas, creo que necesitarás probar este pequeño ejemplo para aclararte un poco el concepto.

Edito para agregar: Sobre el ejemplo de pateketrueke, te recomiendo buscar "variables variables", aunque se escuche confuso, te aseguro que encontrarás la respuesta y el porqué no funciona con índices numéricos.
__________________
- León, Guanajuato
- GV-Foto

Última edición por Triby; 14/12/2011 a las 22:58 Razón: Agregar info.

Etiquetas: fetch, opcion
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 12:10.