Foros del Web » Programando para Internet » PHP »

Bucle con nombre de variable dinámico

Estas en el tema de Bucle con nombre de variable dinámico en el foro de PHP en Foros del Web. Código: for ($i=1; $i <= $diasmes; $i++) { $d1 = mysql_query ("SELECT count(*) FROM visitas WHERE fecha = '$anyo-$mes-$i'"); $dia1 = mysql_num_rows($dia1); } ¿Como hago ...
  #1 (permalink)  
Antiguo 14/06/2002, 06:38
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
Bucle con nombre de variable dinámico

Código:
for ($i=1; $i <= $diasmes; $i++) {
$d1 = mysql_query ("SELECT count(*) FROM visitas WHERE fecha = '$anyo-$mes-$i'");
$dia1 = mysql_num_rows($dia1);
}
¿Como hago para generar las variables dinámicamente, de modo que conforme vaya avanzando el bucle $d1 pase a $d2, $d3, ... $dn y $dia1 a $dia2,$dia3, ... $dian ?


Joe Tawers,
<a href="http://www.ilimit.com/towers">http://www.ilimit.com/towers</a>
  #2 (permalink)  
Antiguo 14/06/2002, 07:18
 
Fecha de Ingreso: febrero-2002
Mensajes: 127
Antigüedad: 15 años, 10 meses
Puntos: 0
Re: Bucle con nombre de variable dinámico

holas cain, haz una cosa así:
$aux=&quot;dia&quot;.$i;
y luego utiliza $$aux, que será lo mismo que $dia1
Si no tienes muy claro a lo que me refiero mira variables variables del manual php.
Un saludo

<hr>Todo sobre DHTML y javascript en <A HREF="http://www.iespana.es/topscripts">TopScripts</A><p><cite>Si el orgulloso se diese cuenta de lo ridículo que queda ante los que le conocen, por orgullo sería más humilde</cite>
Val Muñoz de Bustillo<hr>
  #3 (permalink)  
Antiguo 14/06/2002, 07:22
Avatar de TheRock  
Fecha de Ingreso: mayo-2002
Ubicación: Sucre - Bolivia
Mensajes: 189
Antigüedad: 15 años, 6 meses
Puntos: 0
Re: Bucle con nombre de variable dinámico

Hola, una solución alternativa que puedo sugerirte es que uses variables tipo array, osea. en vez de usar $dia1, $dia2, etc. podrías usar $dia[1], $dia[2], asi de esta forma podras usar una variable tipo entero para conseguir el dinamísmo que buscas, por ejemplo:

for ($i=1; $i &lt;= $diasmes; $i++) {
$d[$i] = mysql_query (&quot;SELECT count(*) FROM visitas WHERE fecha = '$anyo-$mes-$i'&quot;);
$dia[$i] = mysql_num_rows($dia[$i]);
}

Espero te sirva, no lo analice exactamente lo que pretendas hacer con tu codigo, un saludo. Adios. :)
  #4 (permalink)  
Antiguo 14/06/2002, 13:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Re: Bucle con nombre de variable dinámico

La opcion de THeRock es la mas acertada (en terminios de programacion) .. ya que usar arrays para organizar los datos de los resultados de la consulta (en tu caso .. la de los subtotales por dia ...).

Luego solo tendras q acceder a cada dia .. por:
$array[$dia] ..

Usalo y acostumbra a usar arrays para problemas tipo el que tienes ahora ..


Un saludo,
  #5 (permalink)  
Antiguo 15/06/2002, 18:05
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
Re: Bucle con nombre de variable dinámico

Ajá.
Muchas gracias por vuestra ayuda

Joe Tawers,
<a href="http://www.ilimit.com/towers">http://www.ilimit.com/towers</a>
  #6 (permalink)  
Antiguo 17/06/2002, 03:56
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
Re: Bucle con nombre de variable dinámico

Código:
for ($i=1; $i &lt;= $diasmes; $i++) {
$d[$i] = mysql_query (&quot;SELECT count(*) FROM visitas WHERE fecha = '$anyo-$mes-$i'&quot;);
$dia[$i] = mysql_num_rows($dia[$i]);
}
Este código me da el siguiente error:
Warning: Supplied argument is not a valid MySQL result resource in /home/projectes/labruixador2/web/control/accessos/visites.php on line 15

La famosa línea 15 es la que dice:
$dia[$i] = mysql_num_rows($dia[$i]);

¿Cual es el problema?

Joe Tawers,
<a href="http://www.ilimit.com/towers">http://www.ilimit.com/towers</a>
  #7 (permalink)  
Antiguo 17/06/2002, 22:12
Avatar de gomo  
Fecha de Ingreso: mayo-2002
Ubicación: [email protected]
Mensajes: 906
Antigüedad: 15 años, 7 meses
Puntos: 0
Re: Bucle con nombre de variable dinámico

el problema es q tu codigo dice
$d[$i]= mysql_query... bla bla;
$dia[$i] = mysql_num_rows($dia[$i]);

mira el argumento para mysql_num_rows: todavia no lo definiste, ya que el resultado de mysql_query no va a $dia[$i] sino a $d[$i]...
cambias el nombre de la primera variable &quot;$d[$i]&quot; a &quot;$dia[$i]&quot; y ya...
saludos
saludos

<div align="center"><img src="http://cablemodem.fibertel.com.ar/sainztrapaga/images/firma.jpg" width="435" height="70" border="0">
</div>
  #8 (permalink)  
Antiguo 18/06/2002, 03:20
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 15 años, 11 meses
Puntos: 17
Re: Bucle con nombre de variable dinámico

Tienes razón, pero al cambiarlo como tu dices (que es lo correcto) me sigue dando el mismo error :(

Joe Tawers,
<a href="http://www.ilimit.com/towers">http://www.ilimit.com/towers</a>
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 15:02.