Jump to content


Photo

VideoTutorial 27 del Curso de PHP POO


  • Please log in to reply
1 reply to this topic

#1 pedro1958

pedro1958

    Newbie

  • Miembros
  • Pip
  • 9 posts

Posted 19 August 2013 - 04:17 PM

Muy buenos los videotutoriales, gracias.
Estoy desarrollando el codigo de este videotutorial, al llamar el metodo para traer los datos de las comunas, da el siguiente error: "Commands out of sync; you can't run this command now".
Este es el codigo de las clases
class.php:
<?php

class Conectar
{
    public function con()
    {
        $con = mysql_connect('localhost', 'pedro1958', 'pfap1958');
        mysql_query('SET NAMES "utf8"');
        mysql_select_db('comunas');
        return $con;
    }
}

class Trabajo
{
    private $_eventos;
   
    public function __construct()
    {
        $this->_eventos = array();
    }
   
    public function getComunas($inicio)
    {
        echo $sql=  "select * ".
                    "from comuna, region ".
                    "where comuna.id_region = region.id ".
                    "order by comuna.id asc ".
                    "limit $inicio,10";
        echo '<hr>';
$res = mysql_query($sql,Conectar::con()) or die('Error: '.mysql_error());
        while($reg = mysql_fetch_assoc($res))
        {
            $this->_eventos[] = $reg;
        }
       
        return $this->_eventos;
    }
   
    public function totalComunas()
    {
        /*$sql = "SELECT COUNT(*) as total FROM comuna";
        $datos = mysql_query($sql,Conectar::con());*/
        $datos = mysql_query("CALL totalComunas;",Conectar::con());
        if($res = mysql_fetch_array($datos))
        {
            $total = $res['total'];
        }
       
        return $total;
        mysql_close(Conectar::con());
    }
}

?>

y lo llamo del index.php:
<?php
require_once 'class/class.php';
require_once 'libs/functions.php';

if(isset($_GET['pos']))
{
    $inicio = $_GET['pos'];
}
else
{
    $inicio = 0;
}

?>
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Paginaci&oacute;n con Ajax</title>
    <link type="text/css" rel="stylesheet" href="css/estilos.css">
</head>
<body>
    <div id="contenido">
        <div id="cabecera"><h1>Paginaci&oacute;n con Ajax</h1></div>
        <div id="cuerpo">
            <?php
                $tra = new Trabajo();
                /**/$total = $tra->totalComunas();
                $num = $total - 10;
                $resto = $total % 10;
                $ultimo = $total - $resto;
                $res = $tra->getComunas($inicio);
            ?>
            <h2>Existen <?php //echo formato_numero($total); ?> comunas en la base de datos</h2>
            <br>
            <div id='listado_categoria'>
            </div>
            <br>
        </div>
        <div id="pie"><h4>Todos los derechos reservados &copy; <?php echo date('Y'); ?></h4></div>
    </div>
</body>
</html>

necesito ayuda...
  • 0

#2 porfi.dev

porfi.dev

    Advanced Member

  • Miembros
  • PipPipPip
  • 183 posts
  • LocationMy House @ México

Posted 22 August 2013 - 11:11 AM

Okay, el tutorial de #CesarCancino esta bien desarollado.

El error que mencionas se trata de que estas enviando más de una consulta a la vez a tu motor de base de datos, y con el mysql_query, eso no es posible.

haces esto:

        ->>>>      $total = $tra->totalComunas();
                $num = $total - 10;
                $resto = $total % 10;
                $ultimo = $total - $resto;
          ->>>      $res = $tra->getComunas($inicio);

sin embargo jamas cerraste la conexion, por eso te da error.

en tu funcion totalComunas y getComunas, debes tener un comando que cierre la conexion de DB.

Detalles en:  http://php.net/manua...mysql-close.php

y creo que en el tuyo aplicaria algo como:

$res = mysql_query($sql,Conectar::con()) or die('Error: '.mysql_error());
        while($reg = mysql_fetch_assoc($res))
        {
            $this->_eventos[] = $reg;
        }
     
        return $this->_eventos;
mysql_close($res);
    }
  • 0




IP.Board spam blocked by CleanTalk.