Ver Mensaje Individual
  #3 (permalink)  
Antiguo 15/12/2008, 21:04
mariano_donati
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 1 mes
Puntos: 9
Si hago por ejemplo $result[0][0] no me muestra nada. La consulta que estoy realizando tendría que arrojar un resultado que consta de un solo registro, pero de esta forma no accedo a los valores.
Si, es un tema complejo, pero por suerte ya pase esa etapa de andar desorientado con los punteros. Manejé bastante de ellos en C hace un tiempo para un proyecto de la facultad.
Gracias gatorv por tu respuesta.
Saludos.

Perdon gatorv, leí apurado tu post y no vi que me marcabas $result[$num_fila][$nombre_columna]. Pude solucionarlo de esa forma. Gracias de nuevo.
Saludos.

Volví a modificar la función anterior para que en lugar de acceder a los resultados como un array asociativo pueda accederlo por sus índices. Así es como me quedó:

Código:
function db_pquery_resultset()
{
    global $DB_CONN;
    global $DB_STMT;
    
    mysqli_stmt_execute($DB_STMT);
    
    $meta = mysqli_stmt_result_metadata($DB_STMT);
    $params[0] = &$DB_STMT;
    $fields_count = mysqli_num_fields($meta);
    
    $index = 1;
    for ( $i=0 ; $i<$fields_count ; $i++ )
        $params[$index++] = &$cols[$i];

    call_user_func_array('mysqli_stmt_bind_result', $params);

    $index = 0;
    while (mysqli_stmt_fetch($DB_STMT))
    {
        for ( $i=0 ; $i<$fields_count ; $i++ )
            $resultset_cols[$i] = $cols[$i];
        $result[$index++] = $resultset_cols;
    }
        
    echo($result[0][0]);
    
    mysqli_stmt_close($DB_STMT);    
    
}
En la parte del código que está remarcada en negrita, hago una copia exacta de cada fila del resultset y luego lo añado al resultado que devuelvo. Mi pregunta es ¿Por qué es necesario realizar esta copia? ¿Por qué no puedo ejecutar la sentencia $result[$index++] = $cols;?. Me fije en la página donde obtuve el código y no dice nada al respecto.
Saludos.
__________________
Add, never Remove

Última edición por GatorV; 15/12/2008 a las 23:08