Jump to content


Photo

problema al recorrer array con for videotutorial 7 php poo


  • Please log in to reply
2 replies to this topic

#1 jonbra

jonbra

    Advanced Member

  • Miembros
  • PipPipPip
  • 57 posts

Posted 03 April 2013 - 03:00 PM

estoy siguiendo el videotutorial 7 del curso de php poo de cesar cancino

he creado estos dos códigos y no imprime en pantalla el valor que hay en la base de datos, no entiendo dónde está el error. si alguien puede ayudarme se lo agradezco.

index.php

aquí un usuario solo puede consultar las habitaciones de hotel que dispone


<div>
        <form method="post" action="index.php">
            <select name="habitaciones">
                <option value="simple">Habitación individual</option>
                <option value="doble">Habitación doble</option>
                <option value="triple">Habitación triple</option>
                <option value="cuadruple">Habitación cuadruple</option>
            </select>
            <input type="submit" name="enviar_plazas" value="Enviar">
        </form>
    </div>
    <?php
    if (isset($_POST['enviar_plazas'])) //si existe el boton enviar_plazas
    {
        //instancia un nuevo objeto Plazas pasándole dos valores
        $rest = new Plazas($_SESSION['usuario'], $_POST['habitaciones']);
        $plazas = $rest->consultabd();
        for ($i = 0; $i < sizeof($plazas); $i++) //creo que es aquí donde está el problema pero no //estoy seguro
        {
            echo $plazas;
        }
    }
    ?>



clases.php

aquí realizo la consulta a base de datos asignando la consulta a una variable que retornaré al index.php


<?php
//esta es la clase conectar que recibiendo parámetros realiza las consultas
class Conectar
{

    public static function conexion($TextoSQL)
    {
        $IDConexion = mysql_connect("localhost", "root", "");

        mysql_select_db("hoteles", $IDConexion);

        $IDConsulta = mysql_query($TextoSQL, $IDConexion) or die(mysql_error());

        if ($IDConsulta == false)
        {
            echo "ERROR: <br>\n";
            echo mysql_error($IDConexion);
        }

        return $IDConsulta;
    }

}

//esta es la clase Plazas
class Plazas
{
    //declaro las variables que usaré como privadas
    private $usuario;
    private $resultado_consulta = array();
    private $tipo_habita;
    //constructor que recibe los parámetros del index.php
    public function __construct($user, $habi, $num)
    {
        $this->usuario = $user;
        $this->tipo_habita = $habi;
       
    }
    //aquí se realiza la consulta a la base de datos según los parámetros
    public function consultabd()
    {
        $consulta = "SELECT usuario, " . $this->tipo_habita . " FROM usuarios, habitaciones WHERE (usuario='" . $this->usuario . "' AND " . $this->tipo_habita . " ='" . $this->tipo_habita . "')";
        $result_conexion = Conectar::conexion($consulta);
        while ($fila = mysql_fetch_array($result_conexion))
        {
            $this->resultado_consulta[] = $fila[$this->tipo_habita]; //asigno a la variable //resultado_consulta el resultado de la consulta
        }
        return $this->resultado_consulta;
    }

}


gracias! :)
  • 0

#2 enecumene

enecumene

    Webmaster

  • Administrador
  • 7419 posts
  • LocationRepública Dominicana

Posted 03 April 2013 - 05:03 PM

Prueba con un foreach:


foreach($rest->consultabd() as $plazas) {
  echo $plazas[0] . '<br />';
}


Hay algo que yo creo que està mal:

$this->resultado_consulta[] = $fila[$this->tipo_habita];


Simplemente creo debe ir así:

$this->resultado_consulta[] = $fila;


De todos modos trata de imprimir el array para si se guarda alguna info:

print_r($this->resultado_consulta[]);


Saludos.
  • 0

#3 jonbra

jonbra

    Advanced Member

  • Miembros
  • PipPipPip
  • 57 posts

Posted 03 April 2013 - 05:41 PM

increíble, es evidente tu alto nivel de conocimiento, me ayudaste con el problema, se me solucionó y lo entendí todo a la primera. muchísimas gracias por tu valiosísima ayuda.



  • 0




IP.Board spam blocked by CleanTalk.