Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Consulta array PHP

Estas en el tema de Consulta array PHP en el foro de PHP en Foros del Web. Estimados , necesito su ayuda. Tengo una tabla que mediante esta funcion.. function getMonetario($year){ global $link; $sql = "SELECT mon_description FROM tbl_monetaria WHERE mon_year = ...
  #1 (permalink)  
Antiguo 15/01/2015, 13:07
 
Fecha de Ingreso: junio-2013
Mensajes: 11
Antigüedad: 10 años, 10 meses
Puntos: 0
Consulta array PHP

Estimados , necesito su ayuda.

Tengo una tabla que mediante esta funcion..

function getMonetario($year){
global $link;
$sql = "SELECT mon_description FROM tbl_monetaria WHERE mon_year = '$year'";
//echo $sql."--- $link";
$consulta=mysql_query($sql, $link);
//if(mysql_num_rows($consulta) > 0){
if(mysql_num_rows($consulta)){
$row = mysql_fetch_array($consulta);

return unserialize($row[0]);
}
else return "";
}

obtengo un array(bidimencional) con los datos correspondientes. como por ejemplo quedaria asi graficamente en una tabla...
Columna
1,1 2 3 5
Fila 2 4 5 7
3 1 6 8
2,1 4 3 9

Entonses la idea es generar un script o funcion, y pueda obtener los valores.. solo diagonalmente es decir.. deberia imprimir:
1,1 4 6 9
en un array seria:
Array [0][0] = 1,1
Array [1][1] = 4
Array [2][2] = 6
Array [3][3] = 9

Espero que me puedan ayudar. Saludos
pd: VIENDO UNOS TUTORIAS.. SE REALIZA MEDIANTE FOR...PERO COMO??

Última edición por marlonphp; 15/01/2015 a las 13:44
  #2 (permalink)  
Antiguo 15/01/2015, 13:49
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 3 meses
Puntos: 12
Respuesta: Consulta array PHP

Deberías primero definirla como una matriz, entonces la lógica sería: usar 2 for, el primero se moveria por las filas y el segundo por las columnas, en una variable auxiliar o array(como lo muestras en tu ejemplo) guardarías solo un dato por fila, además para recoger dicho dato debe ser secuencialmente incrementable es decir que cuando estés en [fila,columna], [1,1] = {1,1}, [2,2] = {4}, [3,3] = {6}...

Creo que tienes solucionado tu problema.
  #3 (permalink)  
Antiguo 15/01/2015, 13:54
 
Fecha de Ingreso: junio-2013
Mensajes: 11
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Consulta array PHP

Hola Amigo.. gracias.. por tu ayuda.. tengo todo.. claro.. de manera tecnica.. pero.. no se como hacerla.. me puedes ayudar con eso.. porfavor..

Cuando.. inicio.. con el for.. que.. variables tendria el for.. o los for..
Espero.. que me ayudes.. toma. esta forma.. de la tabla...

Código PHP:
Ver original
  1. //Columnas
  2.  
  3. //Filas             1,1       2      3        5
  4.                                   4       6       7
  5.                                            2       9
  6.                                                     1
  7.  
  8. Asi es la tabla y yo quiero rescatar.. los valores en diagonal.
  9. es decir:      1,1         4      2         1
  #4 (permalink)  
Antiguo 15/01/2015, 14:05
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 3 meses
Puntos: 12
Respuesta: Consulta array PHP

Asumiré que ya generaste la matriz.
Código PHP:
Ver original
  1. $matriz = (); //esta es la matriz ya generada
  2. $auxiliar = array(); //definimos nuestro auxiliar
  3. for($i=0; $i<=count($matriz); $i++){
  4.   for($j=0; $j <= count($matriz[$i]); $j++){
  5.      if($matriz[$i][$j] == $matriz[$i][$j]){
  6.             $auxiliar[] = $matriz[$i][$j];
  7.      }
  8.   }
  9. }
  10.  
  11. print_r($auxiliar);

Te sugiero, elabores un análisis personal sobre los problemas que te plantearon, no olvides que la práctica es muy necesaria
  #5 (permalink)  
Antiguo 15/01/2015, 14:28
 
Fecha de Ingreso: junio-2013
Mensajes: 11
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Consulta array PHP

estimado.. estoy.. casi a punto.. de la solucion...
este es mi script..
para.. mostrar los valores.. de una tabla.. de filas y columnas:...
FUNCTION
function getMonetario($year){
global $link;
$sql = "SELECT mon_description FROM tbl_monetaria WHERE mon_year = '$year'";
//echo $sql."--- $link";
$consulta=mysql_query($sql, $link);
//if(mysql_num_rows($consulta) > 0){
if(mysql_num_rows($consulta)){
$row = mysql_fetch_array($consulta);

return unserialize($row[0]);
}
else return "";
}

Y cuando.. hago print de esta forma...

$arrayYear = getMonetario(2014);
echo "<pre>";
print_r ($arrayYear);
echo "</pre>";

para mostrarme.. los valores de la tabla de columnas y filas en un arrar que es lo correcto..

Array
(

=> Array
(
[1] => 0,6
[2] => 0,8
[3] => 1,3
[4] => 2,1
[5] => 2,8
[6] => 3,1
[7] => 3,2
[8] => 3,4
[9] => 3,7
[10] => 4,6
[11] => 5,7
[12] => 5,7
)

[1] => Array
(
[2] => 0,2
[3] => 0,7
[4] => 1,5
[5] => 2,1
[6] => 2,5
[7] => 2,5
[8] => 2,8
[9] => 3,1
[10] => 4,0
[11] => 5,1
[12] => 5,1
)

[2] => Array
(
[3] => 0,5
[4] => 1,3
[5] => 2,0
[6] => 2,3
[7] => 2,4
[8] => 2,6
[9] => 2,9
[10] => 3,8
[11] => 4,9
[12] => 4,9
)

[3] => Array
(
[4] => 0,8
[5] => 1,5
[6] => 1,8
[7] => 1,9
[8] => 2,1
[9] => 2,4
[10] => 3,3
[11] => 4,4
[12] => 4,4
)

[4] => Array
(
[5] => 0,6
[6] => 1,0
[7] => 1,0
[8] => 1,2
[9] => 1,6
[10] => 2,4
[11] => 3,5
[12] => 3,5
)

[5] => Array
(
[6] => 0,3
[7] => 0,4
[8] => 0,6
[9] => 0,9
[10] => 1,8
[11] => 2,9
[12] => 2,9
)

[6] => Array
(
[7] => 0,1
[8] => 0,3
[9] => 0,6
[10] => 1,5
[11] => 2,5
[12] => 2,5
)

[7] => Array
(
[8] => 0,2
[9] => 0,6
[10] => 1,4
[11] => 2,5
[12] => 2,5
)

[8] => Array
(
[9] => 0,3
[10] => 1,2
[11] => 2,2
[12] => 2,2
)

[9] => Array
(
[10] => 0,8
[11] => 1,9
[12] => 1,9
)

[10] => Array
(
[11] => 1,0
[12] => 1,1
)

[11] => Array
(
[12] => 0,0
)

)

pero.. ahora. estoy.. creando una funcion... para.. poder.. imprimir.. los datos de dicho array....en diagonal principal..


estoy.. haciendo.. esto pero.. no resulta.. ayudame.. por fa.. si estoy.. vien o mal..

function getValorizacionMes(){
global $_POST, $meses;
$anoAdquirido = 2014;

$ehn = getMonetario($anoAdquirido);
# Aquí la variable $ehn tiene el array con los valores de la consulta SQL
for($i=0; $i<=count($ehn)-1; $i++){
for($j=0; $j<=count($ehn[$i])-1; $j++){
if( $i == $j ){
echo $ehn[$i][$j]." ";
}
}
}
  #6 (permalink)  
Antiguo 15/01/2015, 14:37
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 3 meses
Puntos: 12
Respuesta: Consulta array PHP

El problema está en los sub-arrays, si te das cuenta en primer sub-array inicia con el index 1 al 12, el siguiente sub-array en el 2, el siguiente en el 3. No hay matera de comparar el for($i) con el for($j).

Por que simplemente no rdevuelces $row tal cual, o puedes reestructurar tu array.
  #7 (permalink)  
Antiguo 15/01/2015, 14:41
 
Fecha de Ingreso: junio-2013
Mensajes: 11
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Consulta array PHP

Lo que.. pasa.. estimado.. que yo.. estoy.. imprimiendo.. en una tabla.. de esta forma...

ejemplo
2 5 6 8 .......
4 9 3 .......
1 5 .......
7 ........

Espero.. tu respuesta.. saludos..
  #8 (permalink)  
Antiguo 15/01/2015, 14:42
 
Fecha de Ingreso: junio-2013
Mensajes: 11
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Consulta array PHP

perdon.. era al contrario.. es de esta forma...
2 5 6 8
.......4 9 3
.............1 5
.....................7

Asi estoy.. imprimiendo..en una tabla..
y quiero rescatar..
2 4 1 7

Saludos
  #9 (permalink)  
Antiguo 15/01/2015, 16:54
 
Fecha de Ingreso: enero-2010
Mensajes: 491
Antigüedad: 14 años, 3 meses
Puntos: 12
Respuesta: Consulta array PHP

marlonphp, Disculpa pero no te entiendo, quieres decir que los puntos suspensivos no existen? o sí existen pero con valores que no te los está mostrando?

Lo que pasa es que en tu print_r($row), en el primer vector o el primer indice de cada fila muestras únicamente los índices correlativos 2,3,4 en cada fila. En mi opinion solo debes sacar los primero indices, de lo contrario deberás ordenar tu matriz.
  #10 (permalink)  
Antiguo 16/01/2015, 08:28
 
Fecha de Ingreso: junio-2013
Mensajes: 11
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Consulta array PHP

Estimado pude resolver... el problema que tenia...

Gracias

Etiquetas: mysql, select, sql, tabla
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:56.