Foros del Web » Programando para Internet » PHP »

[PPO] Consulta en funcion y bucle externo para fetch

Estas en el tema de [PPO] Consulta en funcion y bucle externo para fetch en el foro de PHP en Foros del Web. Buenas tardes , Os consulto una duda que he tenido esta tarde que me resulta un rato importante solucionar, no creo que sea algo muy ...
  #1 (permalink)  
Antiguo 25/06/2017, 11:31
 
Fecha de Ingreso: abril-2010
Mensajes: 267
Antigüedad: 14 años
Puntos: 1
Pregunta [PPO] Consulta en funcion y bucle externo para fetch

Buenas tardes ,

Os consulto una duda que he tenido esta tarde que me resulta un rato importante solucionar, no creo que sea algo muy complicado para un experto, disculpenme porque soy algo novato en POO.

Tengo un fichero que contiene lo siguiente:

Código:
<?php
        require 'config.php';
	class Shop {
		
		public function findItemById($id) {
                        global $database_connection;

                        $this->database_connection = $database_connection;
			
			$sth = $this->database_connection->prepare('SELECT * FROM `shop` WHERE `id` = :id ;');
			
			$sth->bindValue(':id', $id, PDO::PARAM_INT);
			
			// $sth->bindValue(':comment', '', PDO::PARAM_STR);
			
			$sth->execute();
			
			return $sth->fetch(PDO::FETCH_ASSOC);
			
		}

                public function mostrar() {
                      while($data = $this->findItemById(1)) {
                            echo $data['name'];
                      }
                }
		
	}
$shop = new Shop();
echo $shop->mostrar();
Bien, lo que quiero básicamente es el que pueda crear funciones para hacer consultas a la base de datos y desde una función obtener el resultado y hacer cálculos, etc, el fallo que me da es que el tiempo de conexión ha terminado tras 30 segundos, mi conclusión es que cada vez que llega al final del while vuelve y vuelve a hacer la consulta de forma indefinida.

Gracias a tod@s de verdad por vuestro tiempo ^^

Última edición por alejandromaringomez; 25/06/2017 a las 12:01 Razón: Modificación de un término erróneo.
  #2 (permalink)  
Antiguo 25/06/2017, 21:33
Avatar de @ndreX!  
Fecha de Ingreso: abril-2007
Mensajes: 161
Antigüedad: 17 años
Puntos: 4
Respuesta: [PPO] Consulta en funcion y bucle externo para fetch

¿Por qué utilizas "while" cuando sabes que el resultado siempre será uno? No es necesario hacerlo a menos que esperes más de un resultado.

En ese caso solamente deberías de retornar el objeto completo:

Código PHP:
public function mostrar() {
      
$item $this->findItemById(1);
      echo 
$item['name'];

Te recomendarías utilizar return del array completo, algo así:


Código PHP:
public function mostrar($id) {
    
$item $this->findItemById($id);
    if(
count($item)>0){
       return 
$item;
    }
    return 
false// O algún error o lo que tu quieras para saber que no existe este "id"

Trata de no hacer "echo" de una función de una clase, no es muy buena idea.

Saludos.
__________________
Blog de Andres Ortiz: http://www.axpuntes.com/

Etiquetas: bucle, externo, fetch, funcion, select
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 15:19.