PHP - Fatal error: Call to a member function fetch_assoc() on a non-object in /home/gersofts/public_html/p

 
Vista:
sin imagen de perfil

Fatal error: Call to a member function fetch_assoc() on a non-object in /home/gersofts/public_html/p

Publicado por german (21 intervenciones) el 20/09/2014 03:09:03
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
<?php
include_once('conexdbresto.php');
include_once('gestor_stock.php');
include_once('gestor_turnos.php');
chdir(dirname(__FILE__));
include_once('../../general/inc/gestor_stock_general.php');
chdir(dirname(__FILE__));
include_once('../../general/inc/gestor_recetas.php');
chdir(dirname(__FILE__));
include_once('../../general/inc/funciones_misc.inc');
chdir(dirname(__FILE__));
class Gestor_Servicios_Resto{
	private static $instancia;
	private $conn;
	public function __construct(){
		$this->conn=RestodbConnResto::getConn();
	}
	public static function getInstancia(){
		if(Gestor_Servicios_Resto::$instancia==null){
			Gestor_Servicios_Resto::$instancia=new Gestor_Servicios_Resto();
		}
		return Gestor_Servicios_Resto::$instancia;
	}
	/**
	 * Este metodo no se usa en ningun lado
	 *
	 * @param unknown_type $cena_id
	 * @param unknown_type $stock_id
	 * @param unknown_type $cantidad
	 * @param unknown_type $usuario
	 * @return unknown
	 */
	public function agregar_servicio_cena($cena_id,$stock_id,$cantidad,$usuario){
		/* @var $gestor_s Gestor_Stock_Resto */
		$gestor_s=Gestor_Stock_Resto::getInstancia();
		$query="INSERT INTO stock_cena (cena_id,stock_id,cantidad)
				VALUES ($cena_id,$stock_id,$cantidad)";
		$this->conn->query($query);
		if($this->conn->affected_rows > 0){ //solo si se hizo la insercion
			$gestor_s->bajar_stock($stock_id,$cantidad,VENTA_ARTICULO,$usuario);
			return true;
		}
		else{
			return false;
		}
	}
	/**
	* Agrega un articulo pero sabiendo el codigo no el id
	*/
	public function agregar_servicio_cena_codigo($cena_id,$stock_codigo,$cantidad,$usuario){
		/* @var $gestor_stock Gestor_Stock_Resto */
		$gestor_stock=Gestor_Stock_Resto::getInstancia();
		$stock=$gestor_stock->obtener_stock_x_codigo($stock_codigo);
		$stock_id=$stock['stock_id'];
		$query="INSERT INTO stock_cena (cena_id,stock_id,cantidad)
				VALUES ($cena_id,$stock_id,$cantidad)";
		$this->conn->query($query);
		if($this->conn->affected_rows > 0){ //solo si se hizo la insercion
			$gestor_stock->bajar_stock($stock_id,$cantidad,VENTA_ARTICULO,$usuario);
			return true;
		}
		else{
			return false;
		}
	}
 
	/**
	 * Elimina un elemento de la orden, de tipo stock
	 *
	 * @param unknown_type $stock_cena_id
	 * @return unknown
	 */
	public function eliminar_stock_cena($stock_cena_id){
		$query="DELETE FROM stock_cena WHERE stock_cena_id = $stock_cena_id";
		$this->conn->query($query);
		if($this->conn->affected_rows > 0) return true;
		else return false;
	}
 
	/**
	 * Elimina un plato de la orden
	 *
	 * @param unknown_type $plato_cena_id
	 * @return unknown
	 */
 
	public function eliminar_plato_cena($plato_cena_id){
		$query="DELETE FROM plato_cena WHERE plato_cena_id = $plato_cena_id";
		$this->conn->query($query);
		if($this->conn->affected_rows > 0) return true;
		else return false;
	}
 
	public function resetear_orden($cena_id){
		$query="DELETE FROM stock_cena WHERE cena_id = $cena_id";
		$this->conn->query($query);
		$query="DELETE FROM plato_cena WHERE cena_id = $cena_id";
		$this->conn->query($query);
	}
 
	/**
	 * Este metodo no se usa en ningun lado
	 *
	 * @param unknown_type $cena_id
	 * @param unknown_type $stock_id
	 * @param unknown_type $cantidad
	 * @param unknown_type $usuario
	 * @return unknown
	 */
	public function agregar_plato_cena($cena_id,$plato_id,$cantidad,$usuario){
		/* @var $gestor_r Gestor_Recetas*/
		$gestor_r=Gestor_Recetas::getInstancia();
		$query="INSERT INTO plato_cena (plato_id,cena_id,cantidad)
				VALUES ($plato_id,$cena_id,$cantidad)";
		$this->conn->query($query);
		if($this->conn->affected_rows > 0){ //solo si se inserto
			$gestor_r->bajar_stock_receta($plato_id,$cantidad,4,$usuario);
			return true;
		}
		else{
			return false;
		}
	}
	/**
	* Agrega un plato a una cena por codigo
	*/
	public function agregar_plato_cena_codigo($cena_id,$plato_codigo,$cantidad,$usuario){
		/* @var $gestor_stock Gestor_Stock_Cava */
		/* @var $gestor_r Gestor_Recetas*/
		$lugar = 1; // => numero del resto
		$gestor_r=Gestor_Recetas::getInstancia();
		$plato=$gestor_r->obtener_receta_x_codigo($plato_codigo);
		$plato_id=$plato['plato_id'];
		$query="INSERT INTO plato_cena (plato_id,cena_id,cantidad)
				VALUES ($plato_id,$cena_id,$cantidad)";
		$this->conn->query($query);
		if($this->conn->affected_rows > 0){ //solo si se inserto
			//$gestor_r->bajar_stock_receta($plato_id,$cantidad);
			if($plato['lugar']!=$lugar){
				//si no se prepara aca
				/* @var $gestor_turnos Gestor_Turnos_Resto*/
				$gestor_turnos = Gestor_Turnos_Resto::getInstancia();
				$turno = $gestor_turnos->turno_activo();
				if(isset($turno['turno_id'])){
					if(!$gestor_r->auto_transferir_plato($plato_codigo,$cantidad,4,$turno['turno_id']))
						return false;
				}
				else{
					if(!$gestor_r->auto_transferir_plato($plato_codigo,$cantidad,4))
						return false;
				}
			}
			else{
				//si se prepara aca
				$gestor_r->bajar_stock_receta_codigo($plato_codigo,$cantidad,4,$usuario);
			}
			return true;
		}
		else{
			return false;
		}
	}
	public function datos_cena_js($cena_id){
		$query="SELECT * FROM plato_cena WHERE cena_id = $cena_id";
		$res=$this->conn->query($query);
		/* @var $gestor_r Gestor_Recetas */
		$gestor_r=Gestor_Recetas::getInstancia();
		$cad='onMouseOver="this.T_TITLE=\'Agregar Orden a la mesa\';return escape(\'';
		$total = 0;
		for($i=0;$i<$res->num_rows;$i++){ //para los platos
			$plato=$res->fetch_assoc();
			$plato_id=$plato['plato_id'];
			$receta=$gestor_r->obtener_receta($plato_id);
			$cantidad=$plato['cantidad'];
			$plato_nombre=$receta['nombre'];
			$cad.='<li><b>'.$plato_nombre.'</b></li>';
			$cad.='<li>Cantidad: '.$cantidad.' - $'.mostrarMonto($receta['precio']*$cantidad).'</li>';
			$total += $receta['precio']*$cantidad;
		}
		$query="SELECT * FROM stock_cena WHERE cena_id = $cena_id";
		$res=$this->conn->query($query);
		/* @var $gestor_s Gestor_Stock_Resto */
		$gestor_s=Gestor_Stock_Resto::getInstancia();
		for($i=0;$i<$res->num_rows;$i++){ //para los articulos
			$stock=$res->fetch_assoc();
			$stock_id=$stock['stock_id'];
			$art=$gestor_s->obtenerStock($stock_id);
			$cantidad=$stock['cantidad'];
			$cantidad=round($cantidad,3);
			$art_nombre=$art['nombre'];
			$cad.='<li><b>'.$art_nombre.'</b></li>';
			$cad.='<li>Cantidad: '.$cantidad.' '.$art['unidad'].' - $'.mostrarMonto($art['precio']*$cantidad).'</li>';
			$total += $art['precio']*$cantidad;
		}
		$cad.='<b>Total: $'.mostrarMonto($total).'</b>';
		$cad.='\')"';
		return $cad;
	}
	/**
	* Devuelve los articulos asociados a una cena
	*/
	public function stock_cena($cena_id){
		$query="SELECT * FROM stock_cena WHERE cena_id = $cena_id";
		$res=$this->conn->query($query);
		$resultado=array();
		if($res->num_rows > 0){
			while($stock=$res->fetch_assoc()){
				array_push($resultado,$stock);
			}
		}
		return $resultado;
	}
	/**
	* Devuelve los platos asociados a una cena
	*/
	public function plato_cena($cena_id){
		$query="SELECT * FROM plato_cena WHERE cena_id = $cena_id";
		$res=$this->conn->query($query);
		$resultado=array();
		if($res->num_rows > 0){
			while($plato=$res->fetch_assoc()){
				array_push($resultado,$plato);
			}
		}
		return $resultado;
	}
	public function datos_cena($cena_id){
		$query="SELECT * FROM plato_cena WHERE cena_id = $cena_id";
		$res=$this->conn->query($query);
		/* @var $gestor_r Gestor_Recetas */
		$gestor_r=Gestor_Recetas::getInstancia();
		$respuesta=array();
		for($i=0;$i<$res->num_rows;$i++){ //para los platos
			$menu=array();
			$plato=$res->fetch_assoc();
			$plato_id=$plato['plato_id'];
			$receta=$gestor_r->obtener_receta($plato_id);
			$menu['cantidad']=round($plato['cantidad']);
			$menu['nombre']=$receta['nombre'];
			$menu['codigo']=$receta['codigo'];
			$menu['precio']=$receta['precio'];
			array_push($respuesta,$menu);
		}
		$query="SELECT * FROM stock_cena WHERE cena_id = $cena_id";
		$res=$this->conn->query($query);
		/* @var $gestor_s Gestor_Stock_Resto */
		$gestor_s=Gestor_Stock_Resto::getInstancia();
		for($i=0;$i<$res->num_rows;$i++){ //para los articulos
			$articulo=array();
			$stock=$res->fetch_assoc();
			$stock_id=$stock['stock_id'];
			$art=$gestor_s->obtenerStock($stock_id);
			$articulo['cantidad']=round($stock['cantidad']);
			$articulo['nombre']=$art['nombre'];
			$articulo['codigo']=$art['codigo'];
			$articulo['precio']=$art['precio'];
			$articulo['unidad']=$art['unidad'];
			array_push($respuesta,$articulo);
		}
		return $respuesta;
	}

	/**
	* Crea un desayuno recibiendo un arreglo asociativo
	*/
	public function crear_desayuno($articulos,$personas,$usuario){
		$query="INSERT INTO desayuno (fecha, hora, cant_pers)
				VALUES (NOW(),NOW(),$personas)";
		$this->conn->query($query);
		if($this->conn->affected_rows > 0){
			$desayuno_id=$this->conn->insert_id;
			foreach ($articulos as $codigo=>$art ){
				$arr=split(' - ',$art);
				$cant=$arr[0]; //el primero
				$this->agregar_detalle_desayuno($codigo,$cant,$desayuno_id,$usuario);
			}
			return true;
		}
		else{
			return false;
		}
	}
	public function agregar_detalle_desayuno($codigo,$cantidad,$desayuno_id,$usuario){
		/* @var $gestor_stock Gestor_Stock_Resto */
		$gestor_stock=Gestor_Stock_Resto::getInstancia();
		$query="INSERT INTO desayuno_detalle (desayuno_id, codigo, cantidad)
				VALUES ($desayuno_id,'$codigo',$cantidad)";
		$this->conn->query($query);
		if($this->conn->affected_rows > 0){
			$gestor_stock->bajar_stock_codigo($codigo,$cantidad,DESAYUNO,$usuario,$desayuno_id);
			return true;
		}
		else{
			return false;
		}
	}
	public function hay_desayuno_ingresado_hoy(){
		$query="SELECT * FROM desayuno WHERE fecha = NOW()";
		$res=$this->conn->query($query);
		if($res->num_rows > 0){
			return true;
		}
		else {
			return false;
		}
	}
	/**
	* Devuelve los ultimos 10 desayunos
	*/
	public function listar_ultimos_desayunos(){
		$query="SELECT * FROM desayuno ORDER BY fecha DESC LIMIT 0,10";
		$res=$this->conn->query($query);
		$lista_desayunos=array();
		if($res->num_rows > 0){
			while($desayuno=$res->fetch_assoc()){
				array_push($lista_desayunos,$desayuno);
			}
		}
		return $lista_desayunos;
	}
	public function obtener_desayuno($desayuno_id){
		$query="SELECT * FROM desayuno WHERE desayuno_id = $desayuno_id";
		$res=$this->conn->query($query);
		if($res->num_rows > 0){
			return $res->fetch_assoc();
		}
		else{
			return false;
		}
	}
	public function obtener_ingredientes_desayuno($desayuno_id){
		$query="SELECT * FROM desayuno_detalle
				WHERE desayuno_id = $desayuno_id";
		$res=$this->conn->query($query);
		$ingredientes=array();
		if($res->num_rows > 0){
			while($desayuno=$res->fetch_assoc()){
				array_push($ingredientes,$desayuno);
			}
		}
		return $ingredientes;
	}
	public function costo_desayuno($desayuno_id){
		$query="SELECT SUM(cantidad * costo) as costo
				FROM phpResto.desayuno_detalle INNER JOIN general.stock
				ON (phpResto.desayuno_detalle.codigo = general.stock.codigo)
				WHERE phpResto.desayuno_detalle.desayuno_id = $desayuno_id";
		$res=$this->conn->query($query);
		$costo=$res->fetch_assoc();...-------------------> aqui me da el error
		return $costo['costo'];
	}

}
/*@var $g  Gestor_Servicios*//*
$g=Gestor_Servicios::getInstancia();
echo $g->costo_desayuno(13);*/

?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 729
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Fatal error: Call to a member function fetch_assoc() on a non-object in /home/gersofts/public_html/p

Publicado por Gonzalo (615 intervenciones) el 20/09/2014 14:42:02
creo que fetch_assoc no es parte del objeto mysqli.

$plato=$res->fetch_assoc(); // esta orden no pertenece al objeto de mysqli.

$plato=$res->fetch_array(MYSQL_ASSOC); // cambia esa orden por esta linea, debe funcionar.

recuerda respaldar tu codigo antes de hacer el cambio.

espero sea de ayuda, suerte, salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Fatal error: Call to a member function fetch_assoc() on a non-object in /home/gersofts/public_html/p

Publicado por german (21 intervenciones) el 20/09/2014 17:14:34
sigue el mismo error,pero el detalle es en el costo no en elplato
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 729
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Fatal error: Call to a member function fetch_assoc() on a non-object in /home/gersofts/public_html/p

Publicado por Gonzalo (615 intervenciones) el 20/09/2014 17:33:36
cambiaste todos los fetch_assoc?

exactamente el mismo error, pudes anexar el error? necesito ver en que linea lo marca.

salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Fatal error: Call to a member function fetch_assoc() on a non-object in /home/gersofts/public_html/p

Publicado por german (21 intervenciones) el 21/09/2014 03:13:50
$costo=$res->fetch_assoc();...-------------------> AQUI DA EL ERROR

TODO EL ARCHIVO AHY ESTA ARRIBA PUBLICADO
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Fatal error: Call to a member function fetch_assoc() on a non-object in /home/gersofts/public_html/p

Publicado por xve (6935 intervenciones) el 21/09/2014 18:55:01
Hola German, por el error que te da, puede ser que la $query falle, ya se por algun nombre, o porque la variable $desayuno_id este vacia?

Puedes probar ha hacer un:
echo $query;
haber que te devuelve? y probarlo directamente en la base de datos?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Fatal error: Call to a member function fetch_assoc() on a non-object in /home/gersofts/public_html/p

Publicado por German (21 intervenciones) el 22/09/2014 18:02:01
ok voy a tratar de ver
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Fatal error: Call to a member function fetch_assoc() on a non-object in /home/gersofts/public_html/p

Publicado por german (21 intervenciones) el 22/09/2014 18:37:58
pero el problema es cuando esta en el hosting porq localmente si fuinciona y nosale ese error
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Fatal error: Call to a member function fetch_assoc() on a non-object in /home/gersofts/public_html/p

Publicado por german (21 intervenciones) el 22/09/2014 18:46:45
ya locorregi era problema con la bd,gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Fatal error: Call to a member function fetch_assoc() on a non-object in /home/gersofts/public_html/p

Publicado por xve (6935 intervenciones) el 22/09/2014 21:58:13
Hola German, nos puedes especificar un poco mas cual era el problema?
Por si algún otro usuario tiene el mismo problema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Fatal error: Call to a member function fetch_assoc() on a non-object in /home/gersofts/public_html/p

Publicado por German (21 intervenciones) el 23/09/2014 01:46:38
sobre el mensaje que me salia, lo que hice fue verificar si la base de datos no estaba dañada,l asi q la bvorre y la volvi a suvbir y se corrigio el error, porqw estaba trabajando con una base de datos diferente a la del hosting por eso..

Aunque en el hosting me siguen saliendo otros erroress q ya los vere mas adelante, pero en modo local si funciona normal no se q estaba pasando
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Fatal error: Call to a member function fetch_assoc() on a non-object in /home/gersofts/public_html/p

Publicado por xve (6935 intervenciones) el 23/09/2014 08:05:47
Ah, ok... gracias por comentarlo German!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar