Foros del Web » Programando para Internet » PHP »

Contar Arreglo

Estas en el tema de Contar Arreglo en el foro de PHP en Foros del Web. Tengo una consulta sql que me bota como resultado m4 m5 m6 --- --- pero quiero eliminar los caracteres "---" y ya lo he conseguido ...
  #1 (permalink)  
Antiguo 01/03/2004, 11:39
 
Fecha de Ingreso: diciembre-2003
Mensajes: 109
Antigüedad: 14 años
Puntos: 0
Contar Arreglo

Tengo una consulta sql que me bota como resultado

m4 m5 m6 --- ---

pero quiero eliminar los caracteres "---"

y ya lo he conseguido gracias a la ayuda de Josemi(moderador)

function caracter($var) {
return ($var != "---");
}

$Filtrado = (array_filter($Resu,"caracter"));

pero cuando cuento el $filtrado
$contar = count($Filtrado);
me bota la misma cantidad que la sentencia sql osea
5 como arriba

y he probado haciendo un array
$arreglo = array("m4","m5","m6","---","---");
y hecho igual lo filtre lo conte y me boto 3
quisiera saber si el procedimiento que estoy haciendo esta bien.. o nose pues..ayudenme ..por que me cuenta primero 5 y luego 3
  #2 (permalink)  
Antiguo 01/03/2004, 13:34
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Que es lo que tiene $Resu?

prueba haciendo esto:

print_r ($Resu)

Es probable que en lugar de tener un array de datos tengas un array de arrays de datos

algo así...

$Resu[0]=array("dato"=>"m4");
$Resu[1]=array("dato"=>"m5");
$Resu[2]=array("dato"=>"m6");
$Resu[3]=array("dato"=>"---");
$Resu[4]=array("dato"=>"---");

De esa forma el count siempre te dará 5, y el filtro siempre te devolverá TODOS los valores, pues NINGUNO de ellos es == "---" sino que todos son arrays (array!="---") = true

__________________
Manoloweb
  #3 (permalink)  
Antiguo 01/03/2004, 14:03
 
Fecha de Ingreso: diciembre-2003
Mensajes: 109
Antigüedad: 14 años
Puntos: 0
$resu es el resultado de una consulta sql
$resu = mysql_fetch_array($query);

la cual me bota
m4 m5 m6 --- --- //<---(arreglo no??)

y bueno lo filtro y lo cuento pero no me cuenta 3 si no 5 para poder imprimirlo
for($i..) {
echo nom[$i]
}
ahh y cuando hago print_r($resu)
me bota array
  #4 (permalink)  
Antiguo 01/03/2004, 14:08
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Cita:
$resu es el resultado de una consulta sql
$resu = mysql_fetch_array($query);
Pues eso confirma que $Resu es un array de arrays, no de datos.

Prueba esto:

$valores=array_values($Resu);
$Filtrado = (array_filter($valores,"caracter"));

A ver que pasa.

__________________
Manoloweb
  #5 (permalink)  
Antiguo 01/03/2004, 14:35
 
Fecha de Ingreso: diciembre-2003
Mensajes: 109
Antigüedad: 14 años
Puntos: 0
Y TENGO UNA DUDA MAS POR QUE CUANDO HAGO MYSQL_NUM_ROW($QUERY)
ME SALO EL VALOR EXACTO DE LOS CAMPOS PERO CUANDO HAGO MYSQL_FETCH_ARRAY($QUERY)

???
  #6 (permalink)  
Antiguo 01/03/2004, 14:36
 
Fecha de Ingreso: diciembre-2003
Mensajes: 109
Antigüedad: 14 años
Puntos: 0
OSEA CUANDO LOS CUENTO COUNT()
  #7 (permalink)  
Antiguo 01/03/2004, 14:40
 
Fecha de Ingreso: diciembre-2003
Mensajes: 109
Antigüedad: 14 años
Puntos: 0
bueno lo que hice fue cambiarle el mysql_fetch_array por num_row y ya me cuenta bien.. gracias por tu ayuda!!
  #8 (permalink)  
Antiguo 01/03/2004, 14:52
 
Fecha de Ingreso: febrero-2004
Ubicación: Bs. As. - Argentina
Mensajes: 53
Antigüedad: 13 años, 10 meses
Puntos: 0
Por que no filtras los nombres con "---" en la consulta SQL?
__________________
Saludos!
  #9 (permalink)  
Antiguo 01/03/2004, 17:36
 
Fecha de Ingreso: diciembre-2003
Mensajes: 109
Antigüedad: 14 años
Puntos: 0
y como hago eso???
  #10 (permalink)  
Antiguo 01/03/2004, 18:08
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Pues eso depende de si los datos "---" son CAMPOS o FILAS de tu resultado.

Si fueran filas, bastaría con condicionar tu busqueda así...

select * from tabla where talCampo!='---'


Pero si esos datos son CAMPOS de una fila, entonces será mas complicado.

__________________
Manoloweb
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 17:20.