
Commands out of sync; you can"t run this command now
Publicado por Erasmo Joaquín (1 intervención) el 19/02/2014 22:43:03
Hola Foro!
Estoy tratando de crear un array que contenga datos con la estructura de un árbol (un padre tiene hijos, estos hijos también tienen hijos etc), al ejecutar el código obtengo el error "Commands out of sync; you can't run this command now", leyendo la documentación entiendo que estoy tratando de ejecutar un conjunto de resultados cuando aún no termino con la priemra consulta (así lo entiendo), mi código es el sig. espero me puedan ayudar... gracias
Estoy tratando de crear un array que contenga datos con la estructura de un árbol (un padre tiene hijos, estos hijos también tienen hijos etc), al ejecutar el código obtengo el error "Commands out of sync; you can't run this command now", leyendo la documentación entiendo que estoy tratando de ejecutar un conjunto de resultados cuando aún no termino con la priemra consulta (así lo entiendo), mi código es el sig. espero me puedan ayudar... gracias
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
class RedeemAPI {
private $db;
// Constructor - open DB connection
function __construct() {
$this->db = new mysqli('localhost', 'futchoco_admin', 'Futcho190867', 'futchoco_futsoft');
/* verificar la conexión */
if (mysqli_connect_errno()) {
printf("Conexión fallida: %s\n", mysqli_connect_error());
exit();
}
$this->db->autocommit(FALSE);
}
// Destructor - close DB connection
function __destruct() {
$this->db->close();
}
// Main method to redeem a code
function redeem() {
// Check for required parameters
if (isset($_POST["id_cliente"]) && isset($_POST["id_sucursal"]))
{
// Put parameters into local variables
$cliente = $_POST["id_cliente"];
$sucursal = $_POST["id_sucursal"];
$fecha = $_POST["fecha"];
// Look up code in database
$stmt = $this->db->prepare('SELECT a.id_torneo, b.tor_nombre
FROM calendario a, torneo b
WHERE a.id_cliente =? AND a.id_sucursal = ? AND
date(a. cal_fecha_hora)= date(?) AND
a.id_cliente = b.id_cliente AND
a.id_sucursal = b.id_sucursal AND
a.id_torneo = b.id_torneo') or die(mysqli_error($this->db));
$stmt->bind_param("iis", $cliente, $sucursal, $fecha);
$stmt->execute();
$stmt->bind_result($id_torneo, $tor_nombre);
$arreglo = array() ;
$contador = 0;
while ($stmt->fetch()) {
//Aqui es el primer nivel del array (PADRE), por cada registro PADRE le quiero colgar el siguiente nivel que corresponde a la funcion get_partidos, aqui es donde me marca el error , posteriormente también estos registros hijos deberán de tener otros hijos
$arreglo[$contador] = array("id_torneox"=>$id_torneo, "torneo_nombre"=>$tor_nombre, "juegos"=>$this->get_partidos($cliente,$sucursal,$fecha,$id_torneo));
$contador++;
}
$stmt->close();
// Bail if code doesn't exist
if ($contador <= 0) {
sendResponse(400, 'Parametros Cliente/Sucursal invalidos');
return false;
}
//$return_array = array('arbitros' => $arreglo, 'status' => 1, 'codigo' => 1, 'mensaje' => '');
sendResponse(200, json_encode($arreglo));
//sendResponse(200, json_encode($return_array));
return true;
}
sendResponse(400, 'Invalid request');
return false;
}
function get_partidos($cliente,$sucursal,$fecha,$torneo){
$stmt2 = $this->db->prepare('SELECT a.id_jornada, a.id_juego, a.cal_fecha_hora, a.id_arbitro, a.cal_estatus, a.cal_default
FROM calendario a
WHERE a.id_cliente = ? AND a.id_sucursal = ? AND date(a. cal_fecha_hora) = date(?) AND a.id_torneo = ?') or die(mysqli_error($this->db));
$stmt2->bind_param("iisi", $cliente, $sucursal, $fecha, $torneo);
$stmt2->execute();
$stmt2->bind_result($id_jornada, $id_juego, $cal_fecha_hora, $id_arbitro, $cal_estatus, $cal_default);
$juegos = array();
$contador1 = 0;
while ($stmt2->fetch()) {
$juegos[$contador1] = array("id_jornada"=>$id_jornada, "id_juego"=>$id_juego, "cal_fecha_hora"=>$cal_fecha_hora, "id_arbitro"=>$id_arbitro, "cal_estatus"=>$cal_estatus, "cal_default"=>$cal_default);
$contador1++;
}
return $juegos;
}
}
// This is the first thing that gets called when this page is loaded
// Creates a new instance of the RedeemAPI class and calls the redeem method
$api = new RedeemAPI;
$api->redeem();
Valora esta pregunta


0