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

PHP OO Como extraer sólo un dato de un while.

Estas en el tema de Como extraer sólo un dato de un while. en el foro de Frameworks y PHP orientado a objetos en Foros del Web. No sé como hacer para extraer sólo un dato de un while: Código PHP: class  Products  {     public function  list_products () {              $query  =  mysql_query ( ...
  #1 (permalink)  
Antiguo 25/11/2011, 17:08
 
Fecha de Ingreso: septiembre-2008
Mensajes: 211
Antigüedad: 15 años, 7 meses
Puntos: 2
Como extraer sólo un dato de un while.

No sé como hacer para extraer sólo un dato de un while:

Código PHP:
class Products {

    public function 
list_products() {
            
$query mysql_query("SELECT * FROM products") or die(mysql_error());
            while(
$row mysql_fetch_array($query))
            {
                
$name $row['name'];
                
$price $row['price'];
                
$this->products->array('name' => $name'price' => $price); 
            }
    }



Código PHP:
$products = new Products();
$products->list_products(); 
No sé ni por donde empezar...=S
  #2 (permalink)  
Antiguo 25/11/2011, 17:17
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Como extraer sólo un dato de un while.

podrias empezaer por plantear bien tu duda, sacar un solo valor de que?? porque segun veo la consulta preuntas por todos los productos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 25/11/2011, 17:18
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Como extraer sólo un dato de un while.

si quieres un solo dato (o el primero supongo) ¿para que entonces el while?, además si eso es lo que quieres, entonces el nombre de la función no es semántico; porque list_products indica que devuelve un listado de productos, no un producto, lo ideal es que devolviera un array con los productos.

en el caso de uno solo, seria recomendable limitar en el SQL, o con limit o con una condición, lo que respectaría una función más semántica como:

getFirstProduct()
getProductbyId($id)
getMostPopularProduct()

etc.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #4 (permalink)  
Antiguo 25/11/2011, 17:27
 
Fecha de Ingreso: septiembre-2008
Mensajes: 211
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: Como extraer sólo un dato de un while.

No no...es decir:

product1

name
info
category
price


product2

name
info
category
price


En mi template HTML quiero poder poner algo asi:

<div class="name"><? echo $this->products->name;?></div>
<div class="price"><? echo $this->products->price;?></div>

No se si me explico...
  #5 (permalink)  
Antiguo 25/11/2011, 17:33
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Como extraer sólo un dato de un while.

tendrías que implementar objetos genéricos que implementen magic-getters (__get()) de php y dentro un array-colection para almacenar los datos, tal cual lo hace Doctrine 1.x (Doctrine 2 ya no lo implementa)
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #6 (permalink)  
Antiguo 25/11/2011, 17:45
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: Como extraer sólo un dato de un while.

O algo más sencillo:
Código PHP:
Ver original
  1. $productos = array();
  2. while($obj = mysql_fetch_object($query)) {
  3.         $productos[] = $obj;
  4. }
  5.  
  6. return $productos;

Así en la vista:
Código PHP:
Ver original
  1. <?php foreach ($productos as $producto) { ?>
  2.        <div><?php echo $producto->name; ?></div>
  3. <?php } ?>

Saludos.
  #7 (permalink)  
Antiguo 25/11/2011, 17:54
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Como extraer sólo un dato de un while.

mmm, excelente truco con mysql_fetch_object
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #8 (permalink)  
Antiguo 25/11/2011, 19:20
 
Fecha de Ingreso: septiembre-2008
Mensajes: 211
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: Como extraer sólo un dato de un while.

Código PHP:
<?
include("functions/class-products.php");
$products = new Products();
$products->list_products();

foreach (
$productos as $producto){
           echo 
$producto->name;
           echo 
$producto->price;
 }
?>

Classe:

Código PHP:
<?php

class Products {

    public function 
list_products() {
            
$query mysql_query("SELECT * FROM products") or die(mysql_error());
            
$productos = array();
                while(
$pelem mysql_fetch_object($query)) {
                        
$productos[] = $pelem;
                }
            return 
$productos;

    }

}
?>
Lo he provado asiy no me imprime nada =S
(Gracias Gator V se que lo que pusiste esta bien porque es lo que buscava però alguna cosa estoy haciendo mal...)
  #9 (permalink)  
Antiguo 25/11/2011, 19:22
 
Fecha de Ingreso: septiembre-2008
Mensajes: 211
Antigüedad: 15 años, 7 meses
Puntos: 2
Respuesta: Como extraer sólo un dato de un while.

Código PHP:
$products = new Products();
$productos $products->list_products();

foreach (
$productos as $producto){
           echo 
$producto->name;
           echo 
"<b>".$producto->price;
 } 
Ya esta solucionado! =)

Gracias!!

Etiquetas: clases
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:31.