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ón con Ajax</title>
<link type="text/css" rel="stylesheet" href="css/estilos.css">
</head>
<body>
<div id="contenido">
<div id="cabecera"><h1>Paginació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 © <?php echo date('Y'); ?></h4></div>
</div>
</body>
</html>
necesito ayuda...
VideoTutorial 27 del Curso de PHP POO
Comenzado por
pedro1958
, ago 19 2013 04:17
1 respuesta en este tema
#1
Escrito 19 agosto 2013 - 04:17
#2
Escrito 22 agosto 2013 - 11:11
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);
}
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);
}