Ver Mensaje Individual
  #11 (permalink)  
Antiguo 03/04/2013, 18:07
Avatar de guardarmicorreo
guardarmicorreo
 
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: problema al recorrer array con for

Cita:
Iniciado por Sevillacode Ver Mensaje
prueba a poner la consulta que te especifico. He adaptado los campos que inventé por lo que debe ser completamente valida

$consulta = "SELECT DISTINCT u.usuario, h." . $this->tipo_habita . " as total FROM usuarios u, habitaciones h WHERE u.usuario='" . $this->usuario . "' AND u.id = h.id_usuarios";
tu consulta sí me funciona, y el print_r me devolvía bien el array.
Cita:
El problema que sigo viendo es que no especificas en que tabla esta cada campo, en mi consulta si te fijas estan todos especificados, solo que en lugar del nombre completo de la tabla (usuarios) le he asignado un alias por comodidad (u)
u.id es lo mismo que usuarios.id, h.id_usuarios es lo mismo que habitaciones.id_usuarios
no entiendo bien lo que dices.

cuando hago la consulta le digo que seleccione usuario y $this->tipo_habita de usuarios y habitaciones donde usuario es $this->usuario y relaciono las tablas usuarios.id=id_usuarios

la única diferencia con la consulta que me sugieres es que tú utilizas alias, nunca he utilizado alias y no se si es por eso mi problema

Cita:
si ejecutas la sentencia que te he puesto, y los campos coinciden con lo especificado, al montar un array asociativo debes obtener algo como esto
array{
['usuario'] = 'xxxxx'; (el usuario)
['total'] = xxxx; (la cantidad correspondiente a esa habitacion y ese usuario)
}

suerte
efectivamente me ha devuelto el array correctamente. el problema estaba en otra parte. gracias a ti lo encontré.

en clases.php

Código PHP:
Ver original
  1. while ($fila = mysql_fetch_array($result_conexion))
  2.         {
  3.             $this->resultado_consulta[] = $fila; //aquí estaba el problema
  4.         }
  5.         return $this->resultado_consulta;
  6.  
  7. //estaba diciendole que solo igualara  resultado_consulta a fila[$this->tipo_habita]; claro, el error creo que al intentar recorrerlo como array me devolvía error ¿estoy en lo cierto?

en index.php

Código PHP:
Ver original
  1. for ($i = 0, $size = count($plazas); $i < $size; $i++)
  2.         {
  3.             echo $plazas[$i][$_POST['habitaciones']]; //aquí he recorrido el array con un id=$i y también he seleccionado del array el valor del tipo de habitación; me ha funcionado
  4.         }

no se si así estará bien, porque aunque el código funcione no significa que esté bien escrito y estructurado.

estoy abierto a todo consejo y crítica, cuanto más pueda aprender mejor jeje

mil gracias por tu ayuda de verdad