Foros del Web » Programando para Internet » PHP »

problema como php y mysql

Estas en el tema de problema como php y mysql en el foro de PHP en Foros del Web. O_O gente necesito ayuda de seres superiores, ocurre que tengo un sistema en php, para hacer consultas de un store procedure, estoy usando el mysqli ...
  #1 (permalink)  
Antiguo 27/06/2008, 15:24
 
Fecha de Ingreso: diciembre-2004
Mensajes: 418
Antigüedad: 19 años, 5 meses
Puntos: 2
Exclamación problema como php y mysql

O_O gente necesito ayuda de seres superiores, ocurre que tengo un sistema en php, para hacer consultas de un store procedure, estoy usando el mysqli aca mi codigo:

function toArrayi($res) {
if(mysqli_num_rows($res)==0)
return 0;
$i=0;
$tmp = array();
while(($row = mysqli_fetch_array($res)) == true) {
$tmp[$i] = $row;
$i++;
}
return $tmp;
}

$link = mysqli_connect('puntoIP','User','Pass','BD');
$qry="CALL pprod_AcumuladoSProducto()";
$res = mysqli_query($link,$qry);
mysqli_close($link);
$ar = toArrayi($res);
echo $ar[1]["No_Liquidado"];


ocurre q al ejecutar el procedure desde el mysql, la columna "No_Liquidado" en la 2da fila me sale 256. Pero cuando lo ejecuto desde el php es 1881, O_O. Y solo ocurre con ese dato, todas las demas fila y columnas salen ok.

Ahora el store procedure, es un query gigante (no lo hice yo, pero los resultados salen sin ningun problema) no recibe variables, es de solo consulta.

Q puede ser? aca tamos q nos desquiciamos porq no damos con el origen del problema.
__________________
Veo de todo un poco, pero siempre tengo mis favoritos xD. No subestimen a Flash!
  #2 (permalink)  
Antiguo 27/06/2008, 15:45
 
Fecha de Ingreso: agosto-2007
Ubicación: Mexico
Mensajes: 55
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: problema como php y mysql

Hola.
Mira regularmente yo acostumbro a hacer lo mismo que tu solo que yo utilizo el foreach

ej:
Código PHP:
function query2array($query){
    
$result=mysql_query($query) or die(mysql_error()." qry::$query");
    
$tmp_array=array();
    
$return_array=array();
    while (
$obj mysql_fetch_object($result)) {
        foreach(
$obj as $key => $value) {
            
$tmp_array[$key]=$value;
        }
        
$return_array[]=$tmp_array;
    }
    return 
$return_array;

http://blog.deliriumlabs.net/php-sni...t-en-un-array/

Espero te solucione el detalle
  #3 (permalink)  
Antiguo 28/06/2008, 11:52
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problema como php y mysql

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) == )
        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.

Última edición por AlvaroG; 28/06/2008 a las 12:04
  #4 (permalink)  
Antiguo 30/06/2008, 10:44
 
Fecha de Ingreso: diciembre-2004
Mensajes: 418
Antigüedad: 19 años, 5 meses
Puntos: 2
Respuesta: problema como php y mysql

U_U bueno al final el problema era un acento en un termino de busqueda usado en el store procedure, con ello ya salio el numero correcto. gracias a todos por su ayuda.
__________________
Veo de todo un poco, pero siempre tengo mis favoritos xD. No subestimen a Flash!
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 16:42.