Sin ánimos de ofender a nadie, ¿para qué usar mysql_fetch_object si querés generar un vector?
Es mucho más sencillo obtener un vector...
Qué tal esto:
Código PHP:
function consultaAvector($consulta) {
$resultado = mysql_query($consulta) or die(mysql_error()."\nConsulta: $query");
$devolver = array();
while ($registro = mysql_fetch_assoc($resultado)) {
$devolver[] = $registro;
}
return $devolver;
}
Mucho más simple y si no me equivoco genera el mismo resultado...
Ahora, la respuesta a la primer pregunta.
Hats, para la próxima pon el código entre etiquetas [ php] y [/ php] (sin los espacios), así obtendrás un código mostrado con formato y resaltado de sintaxis
Quiero modificar un poco tu código para que quede más claro:
Código PHP:
function toArrayi($res) {
if( mysqli_num_rows($res) == 0 )
return 0;
$tmp = array();
while( $row = mysqli_fetch_array($res) ) {
$tmp[] = $row;
}
return $tmp;
}
$link = mysqli_connect('puntoIP','User','Pass','BD');
$qry = "CALL pprod_AcumuladoSProducto()";
$res = mysqli_query($link,$qry);
// ¿por qué cierras la conexión a la base de datos, ANTES de obtener los registros?
// movemos la línea mysqli_close($link); al final
$ar = toArrayi($res);
mysqli_close($link);
// veamos TODO lo que contiene $ar
var_dump($ar);
No veo ningún error en el código original, más allá de los detalles que te menciono. Pero te recomiendo usar esta versión "corregida" a ver qué sale. De entrada me parece extraño que cerraras el enlace a la bd antes de obtener los datos, quizás eso tenga algo que ver.
Saludos.