Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] CONTANDO registros en un arreglo

Estas en el tema de CONTANDO registros en un arreglo en el foro de PHP en Foros del Web. Hola a todos, tengo un problema tal vez sencillo pero no doy con la respuesta. Resulta que luego de hacer una consulta cuyo resultado es ...
  #1 (permalink)  
Antiguo 01/06/2017, 13:03
Avatar de julia2021  
Fecha de Ingreso: diciembre-2014
Ubicación: Mexico
Mensajes: 152
Antigüedad: 9 años, 4 meses
Puntos: 11
Sonrisa CONTANDO registros en un arreglo

Hola a todos, tengo un problema tal vez sencillo pero no doy con la respuesta. Resulta que luego de hacer una consulta cuyo resultado es cero, cuando la meto en un arreglo me devuelve un valor distinto al real.
Aquí les comparto mi código:
Código PHP:
<?php 
function Oficinas() {     // Función para crear un arreglo con las sucursales de los clientes  

  
$db = new Conexion();  # Conexión a la DB

  
$sql $db->query("SELECT * FROM `tbl_clientes_sucursales` WHERE id_cliente = '99999999999999999999999999' ;");

  if(
$db->rows($sql) > 0) {
    while(
$data $db->recorrer($sql)) {
      
$oficinas[$data['id_sucursal']] = $data;
    }
  } else {
    
$oficinas false;
  }
  
$db->liberar($sql);
  
$db->close();

  
$antes_del_return count($oficinas);
  echo 
'<script language="javascript">alert("antes_del_return: '.$antes_del_return.'");</script>';

  return 
$oficinas;
}
?>

<? // Ahora quiero ver los resultados despues del array
$despues_del_return Oficinas(); # Arreglo con toda la data de las oficinas de los clientes

    
echo '<script language="javascript">alert("despues_del_return: '.$despues_del_return.'");</script>';

    echo 
"El arreglo tiene: ".count($despues_del_return)." despues del return";
?>
Cabe destacar que el valor "99999999999999999999999999" en la consulta es a proposito para forzar a que el resultado sea cero ya que no existen registro con dicho valor en la tabla.

No entiendo porque count($oficinas) es distinto a cero

Última edición por julia2021; 01/06/2017 a las 13:20
  #2 (permalink)  
Antiguo 01/06/2017, 15:22
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: CONTANDO registros en un arreglo

Código PHP:
Ver original
  1. function Oficinas() {     // Función para crear un arreglo con las sucursales de los clientes  
  2.  
  3.   $db = new Conexion();  # Conexión a la DB
  4.  
  5.   $sql = $db->query("SELECT * FROM `tbl_clientes_sucursales` WHERE id_cliente = 'loQUESEA' ;");
  6.  
  7.   if(mysqli_num_rows($sql) > 0) {
  8.     while($data = $sql->fetch_array()) {
  9.       $oficinas[$data['id_sucursal']] = $data['LOQUESEA'];
  10.     }
  11.   } else {
  12.     $oficinas = false;
  13.   }
  14.   $db->liberar($sql);//??
  15.   $db->close();
  16.  
  17.   return $oficinas;
  18. }
  19.  
  20. // Ahora quiero ver los resultados despues del array
  21. $despues_del_return = Oficinas(); # Arreglo con toda la data de las oficinas de los clientes
  22.  
  23.     if(is_array($despues_del_return)){
  24.  
  25.         echo '<script language="javascript">alert("despues_del_return: '.json_encode($despues_del_return).'");</script>';
  26.  
  27.         echo "El arreglo tiene: ".count($despues_del_return)." despues del return";
  28.  
  29.     }else{
  30.         echo "La consulta ha arrojado cero resultados";
  31.     }

Prueba asi a ver
__________________
[email protected]
HITCEL
  #3 (permalink)  
Antiguo 01/06/2017, 16:43
Avatar de julia2021  
Fecha de Ingreso: diciembre-2014
Ubicación: Mexico
Mensajes: 152
Antigüedad: 9 años, 4 meses
Puntos: 11
Sonrisa Respuesta: CONTANDO registros en un arreglo

Amigo xfxstudios, lo revise bien, lo probe y me funciono perfectamente, milllllll gracias

Última edición por julia2021; 01/06/2017 a las 18:00

Etiquetas: count
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:59.