Ver Mensaje Individual
  #8 (permalink)  
Antiguo 10/09/2013, 10:46
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Fatal error: Call to a member function fetch_assoc() on a non-object

El tema en realidad no es tan complicado:
- Si la tabla está vacía la consulta por MAX(), MIN, AVG() o cualquier otra cosa, siempre devolverá un registro nulo. Siempre. Y no sirve usar COUNT() porque no sólo requierrá dos consultas, sino que si no hay condiciones ni registros, también peude devolver NULLL.
- fetch_asoc() no es funcional cuando tienes tablas nulas, porque intenta mover el puntero más allá de donde no hay nada.
La solución es simple: Si no devuelve registros, devuelve las cabeceras de tablas, y la cantidad de registros es 0...
Código PHP:
Ver original
  1. $conexion = crearConexion();
  2.             $conexion->autocommit(FALSE);
  3.  
  4.             $Estado ='A';
  5.             $Cont = 0;
  6.  
  7.             $sql = "SELECT thdDia, thdHoraInic, thdHoraFina
  8.                    FROM tmp_HoraDoce
  9.                    WHERE usuConsecutivo = ? AND
  10.                    sedConsecutivo = ?  
  11.                    ORDER BY thdDia";
  12.             $sentencia = $conexion->prepare($sql);
  13.             $sentencia->bind_param("ii", $usuConsecutivo, $sedConsecutivo);
  14.             $sentencia->execute();
  15.             $sentencia->bind_result($thdDia, $thdHoraInic, $thdHoraFina);
  16.            
  17.             while($sentencia->fetch())
  18.                 {
  19.                     $fila = array('thdDia'=>$thdDia, 'thdHoraInic'=>$thdHoraInic, 'thdHoraFina'=>$thdHoraFina);
  20.  
  21.                     $Sql = "SELECT MAX (hdConsecutivo) Consec FROM horadoce";
  22.                     $BusqHora = $conexion->query($Sql);
  23.                     if($BusqHora->num_rows() > 0){
  24.                         while($arrHora = $BusqHora->fetch_assoc())
  25.                             {$hdConsecutivo = $arrHora['Consec'] + 1;}
  26.                         $BusqHora->free();
  27.                                   }  
  28.                          }
  29.                      else{$hdConsecutivo = 1;}
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 10/09/2013 a las 10:53