Foros del Web » Programando para Internet » PHP »

arrays en mysql

Estas en el tema de arrays en mysql en el foro de PHP en Foros del Web. alguien tiene idea de como recorrer un array de una sentencia mysql mas de una vez?????. Estoy intentando hacerlo de diferentes maneras pero siempre lo ...
  #1 (permalink)  
Antiguo 15/08/2007, 05:23
 
Fecha de Ingreso: marzo-2007
Mensajes: 31
Antigüedad: 17 años, 1 mes
Puntos: 0
arrays en mysql

alguien tiene idea de como recorrer un array de una sentencia mysql mas de una vez?????.

Estoy intentando hacerlo de diferentes maneras pero siempre lo recorre una vez y despues me devuelve nulo.

Este es el trozo de codigo que tengo:
Código PHP:
    for($i=0; ($i<$numberFile)&&($ShowRow=$p_link_id->fetch_array($m_result_company)); $i++){
        
$name $ShowRow['name']; 
        
$location $ShowRow['location'];
        
$page_content.="<tr><td>$name</td>";     
        for(
$j=0; ($j<$numberColumn); $j++){
            
              
$ShowVerification=$p_link_id->fetch_array($m_result_distributionscompany);
            
/*var_dump($ShowVerification);
            echo $verificationRow.$verificationColumn."<br />";
            echo "La fila es".$i."y la columna es".$j."<br />";*/ 
            
                        
$verificationRow $ShowVerification['idCompany'];
            
$verificationColumn $ShowVerification['idDistributor'];
            if ((
$verificationRow==$i)&&($verificationColumn==$j))
                
$page_content.="<td align=\"center\">v</td>";
            else
                
$page_content.="<td align=\"center\">k</td>";

        
//prev($ShowVerification);
        
}
        
$page_content.="<td>$location</td></tr>";
    } 
he intentado utilizar la funcion prev($array) que supuestamente manda el puntero al comienzo y nada, dice que no es un array lo que le asigno.

No se que mas hacer. Alguien sabria solucionar este problema??????

muchas gracias,

Juanstan
  #2 (permalink)  
Antiguo 15/08/2007, 06:14
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: arrays en mysql

para volver el puntero interno de un vector al comienzo del mismo, podés usar reset()

Pero creo entender que lo que querés es obtener los resultados de una consulta a una base de datos más de una vez.
Estos resultados se devuelven como filas de una matriz pero no forman una. Por eso no le podés pasar el puntero al resultado a una función que trabaja con matrices.

Para moverte entre resultados de una consulta, usa mysql_data_seek (con el parámetro 0 volverá al primer resultado).
Pero si vas a recorrer todos los resultados más de una vez, quizás sea más eficiente que en la primera pasada guardes todos los datos en una matriz y luego recorras esa matriz las siguientes veces. Así no hacés trabajar tanto al servidor de base de datos, aunque necesitás más memoria para guardar la matriz con los datos.


Saludos.
  #3 (permalink)  
Antiguo 15/08/2007, 08:42
 
Fecha de Ingreso: marzo-2007
Mensajes: 31
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: arrays en mysql

He hecho lo que me dijiste. He intentado crear un array rellenandolo con lo datos que consigo del fetch_array.

Código PHP:
while($ShowVerification=$p_link_id->fetch_array($m_result_distributionscompany)){ 
        
$Verification = array("row"=>$ShowVerification['idCompany'],"column"=>$ShowVerification['idDistributor']);} 
El caso esque cuando intento recoger la informacion del array que cree solo obtengo el ultimo valor almacenado.

Seguro que estoy haciendo algo mal. No soy muy dicho en arrays, y me parece que la manera que elegi no es la correcta.

Sabrias como???

Gracias de nuevo,

Juanstan
  #4 (permalink)  
Antiguo 15/08/2007, 08:49
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 17 años
Puntos: 6
Re: arrays en mysql

Hola por ke no cuentas el tamaño de tu arreglo con sizeof() y luego en un while pues lo vas recorriendo, algo asi:

$tam=sizeof($miarreglo);
$i=0;
while($i<$tam){
print_r($miarreglo[$i++]);

}

Ojala te sirva de algo.

SALU2
__________________
"Eres grande por que caminas entre gigantes"
  #5 (permalink)  
Antiguo 15/08/2007, 09:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: arrays en mysql

Tu problema es que estas asignando mal tu arreglo, debes declararlo y agregar un elemento por cada ciclo:
Código PHP:
$Verification = array();
while(
$ShowVerification=$p_link_id->fetch_array($m_result_distributionscompany)){ 
        
$Verification[] = array("row"=>$ShowVerification['idCompany'],"column"=>$ShowVerification['idDistributor']);} 
Saludos.
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 21:01.