Foros del Web » Programando para Internet » PHP »

Crear un array a partir de la cantidad de otro

Estas en el tema de Crear un array a partir de la cantidad de otro en el foro de PHP en Foros del Web. Hola a todos. Tengo el siguiente problema. Creo un array que se muestra en varios checkbox y después tomando esto en cuenta tengo que generar ...
  #1 (permalink)  
Antiguo 27/04/2011, 20:34
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Sonrisa Crear un array a partir de la cantidad de otro

Hola a todos.

Tengo el siguiente problema. Creo un array que se muestra en varios checkbox y después tomando esto en cuenta tengo que generar otro array que muestre unos datos en select. Esto es lo que tengo. Este es el que crea los checkbox:

Código PHP:
$rs mysql_query("SELECT * FROM cotizacion WHERE categoria='atracciones'");

while (
$row=mysql_fetch_array($rs)){
echo 
"<input type=\"checkbox\" name=\"opciones[]\" value=\"".$row['producto'].'">'.$row["producto"]."<br>\n";

y este el que deberia crearme los select que siempre van a tener lo mismo pero tiene que ser para cada checkbox:

Código PHP:
$rs2 mysql_query("SELECT * FROM horas");
 while (
$row=mysql_fetch_array($rs2)){
 echo 
'<select name= "horas1">';
    do {
      echo 
'<option value= "'.$row["hora"].'">'.$row["hora"].'</option>';
         } while (
$row mysql_fetch_array($rs2)); 
            echo 
'</select>';
 } 
En este select es que no se que hacer. Por favor me pueden explicar como hago esto.

Gracias.
__________________
Caminando con el corazón partío
  #2 (permalink)  
Antiguo 28/04/2011, 01:03
 
Fecha de Ingreso: septiembre-2006
Mensajes: 18
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: Crear un array a partir de la cantidad de otro

Hola,

Prueba esto:
Código PHP:
Ver original
  1. $rs2 = mysql_query("SELECT * FROM horas");
  2.  
  3. echo '<select name= "horas1">';
  4.  
  5. while ($row=mysql_fetch_array($rs2)){
  6.       echo '<option value= "'.$row["hora"].'">'.$row["hora"].'</option>';
  7. }
  8.  
  9. echo '</select>';
  #3 (permalink)  
Antiguo 28/04/2011, 02:46
(Desactivado)
 
Fecha de Ingreso: enero-2011
Mensajes: 293
Antigüedad: 13 años, 3 meses
Puntos: 4
Respuesta: Crear un array a partir de la cantidad de otro

Hasta donde e entendido tras tu largo discurso ,creo que quieres que alla la misma cantidad de select que de checkbox .

Uh..mm el consejo que te doy es que uses break bueno seria algo asi :

Código PHP:

$rs_checkbox 
mysql_query("SELECT * FROM cotizacion WHERE categoria='atracciones'"); 


$rs_select mysql_query("SELECT * FROM horas");
 
echo 
'<select name= "horas1">';
 
while (
$row=mysql_fetch_array($rs_select)){
      echo 
'<option value= "'.$row["hora"].'">'.$row["hora"].'</option>';

  

 if(
mysql_num_rows($rs_select) == mysql_num_rows($rs_checkbox) ){

    break ;
echo 
"Para de enviarme mas selects!";
 }


 } 

 
echo 
'</select>'
Creo que es eso si no es asi beremos que tal =/
  #4 (permalink)  
Antiguo 28/04/2011, 06:18
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Crear un array a partir de la cantidad de otro

Gracias a ambos, pero no me sirvió ninguna de las opciones. El punto es que al consultar la tabla de mysql me genera 4 checkbox con los datos y asi debe generar cuatro select, pero solo me muestra 1. Esta es la imagen:



Debo generar los select por cada checkbox que se genere de los datos que hay en la tabla mysql.

???
__________________
Caminando con el corazón partío
  #5 (permalink)  
Antiguo 28/04/2011, 06:42
(Desactivado)
 
Fecha de Ingreso: enero-2011
Mensajes: 293
Antigüedad: 13 años, 3 meses
Puntos: 4
Respuesta: Crear un array a partir de la cantidad de otro

ajjaja
ya se donde esta el problema le llegue enseguida seguro me loagradeceras ahora ejjejej xD xdX XD


no es esto pero por si las moscas coloca mysql_fetch_assoc

el problema es este :

Código PHP:

$rs_checkbox 
mysql_query("SELECT * FROM cotizacion WHERE categoria LIKE '%{atracciones}%'  LIMIT 4 ")or die (mysql_error()); 
  #6 (permalink)  
Antiguo 28/04/2011, 06:53
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Crear un array a partir de la cantidad de otro

Yoom agradezco mucho tu ayuda pero no lo tengo que limitar porque los datos que me generan los checkbox pueden ser 4 o 10 o 20, es decir, lo que este en la tabla.

La creación de los select debe hacerse según la cantidad de checkbox (que no sabemos cual es) por eso me imagino que hay que hacer un ciclo que pregunte cuantos checkbox se generaron para poder generar los select.

?????
__________________
Caminando con el corazón partío
  #7 (permalink)  
Antiguo 28/04/2011, 07:00
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 3 meses
Puntos: 128
Respuesta: Crear un array a partir de la cantidad de otro

Si a la hora de imprimir el checkbox aprovechas de imprimir el select creo que debiese resultar los select´s igual lo guardas en un array para recorrerlo posteriormente. Si no resultase crea un for mas menos de esta caracteristica:

Código PHP:
Ver original
  1. for ($i=0;$i<=count($rs);$i++)
  2. {
  3.     //acá el select
  4. }


Saludos
__________________
Si no vivimos como pensamos, pronto empezaremos a pensar como vivimos.
Más vale un Gracias sincero, que un número que aumente "popularidad" ¬¬°

Universidad de chile, campeón
  #8 (permalink)  
Antiguo 28/04/2011, 09:57
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Crear un array a partir de la cantidad de otro

Lo hice asi:

Código PHP:
Ver original
  1. $rs2 = mysql_query("SELECT * FROM horas");
  2. for ($i=0;$i<=count($rs);$i++)
  3. {
  4.     echo '<select name= "horas1">';
  5.         while ($row=mysql_fetch_array($rs2)){
  6.             echo '<option value= "'.$row["hora"].'">'.$row["hora"].'</option>';
  7. }
  8. echo '</select>';
  9. }

pero solo me imprime 2 select y el segundo está vacio.

que estoy haciendo mal???
__________________
Caminando con el corazón partío
  #9 (permalink)  
Antiguo 28/04/2011, 10:23
Avatar de ginitofl  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima Perú
Mensajes: 349
Antigüedad: 17 años, 4 meses
Puntos: 22
Respuesta: Crear un array a partir de la cantidad de otro

Hola nuevamente Kimmy haber si entendi bien lo que deseas es tener un select por cada check que muestras cierto?, bueno si es asi tienes que hacer como se dice un while anidado de la siguiente manera:

tu tienes esto:

Código PHP:
while ($row=mysql_fetch_array($rs))
{
     
//imprimes tu chexbox y luego tienes que hacer esto:
     
    
$rs2 mysql_query("SELECT * FROM horas");
    echo 
'<select name= "horas1">';
    while (
$row=mysql_fetch_array($rs2)){
          echo 
'<option value= "'.$row["hora"].'">'.$row["hora"].'</option>';
    }
    echo 
'</select>';

de esta manera se imprimira igual de select como checbox que tengas.

Saludos.

ahora tienes que cambiar el nombre del select por que no puede ser igual, en ese ejemplo de saldran todos con el nombre horas1.

Última edición por ginitofl; 28/04/2011 a las 10:28 Razón: editar
  #10 (permalink)  
Antiguo 28/04/2011, 10:36
Avatar de ginitofl  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima Perú
Mensajes: 349
Antigüedad: 17 años, 4 meses
Puntos: 22
Respuesta: Crear un array a partir de la cantidad de otro

para los nombres se me ocurre esto:

Código PHP:
$i=1;
while (
$row=mysql_fetch_array($rs))
{
     
//imprimes tu chexbox y luego tienes que hacer esto:
     
    
$rs2 mysql_query("SELECT * FROM horas");
    echo 
'<select name= "horas'.$i.'">';
    while (
$row=mysql_fetch_array($rs2)){
          echo 
'<option value= "'.$row["hora"].'">'.$row["hora"].'</option>';
    }
    echo 
'</select>';
    
$i++;

Saludos.
  #11 (permalink)  
Antiguo 28/04/2011, 10:51
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Crear un array a partir de la cantidad de otro

ginitofl gracias pero no me arroja nada. Ahora cambien el for asi:

Código PHP:
Ver original
  1. for ($i=0;$i<=count($rs);$i++)
  2. {
  3.     $rs2 = mysql_query("SELECT * FROM horas");
  4.     echo '<select name= "horas1">';
  5.         while ($row=mysql_fetch_array($rs2)){
  6.             echo '<option value= "'.$row["hora"].'">'.$row["hora"].'</option>';
  7. }
  8. echo '</select>';
  9. }

y me muestra dos select con sus datos pero me faltan los demás que no se porque no los crea. Alguna idea???
__________________
Caminando con el corazón partío
  #12 (permalink)  
Antiguo 28/04/2011, 10:55
Avatar de ginitofl  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima Perú
Mensajes: 349
Antigüedad: 17 años, 4 meses
Puntos: 22
Respuesta: Crear un array a partir de la cantidad de otro

has verificado cuanto arroja el count($rs)????, hasle un echo para que veas cuanto tiene.
  #13 (permalink)  
Antiguo 28/04/2011, 11:00
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Crear un array a partir de la cantidad de otro

Código PHP:
Ver original
  1. echo count($rs);

me arroja dos unos. No entiendo porque no ve que son cuatro checkbox
__________________
Caminando con el corazón partío
  #14 (permalink)  
Antiguo 28/04/2011, 11:02
Avatar de ginitofl  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima Perú
Mensajes: 349
Antigüedad: 17 años, 4 meses
Puntos: 22
Respuesta: Crear un array a partir de la cantidad de otro

usa en vez de count($rs) esto:

mysql_num_rows($rs)
  #15 (permalink)  
Antiguo 28/04/2011, 11:11
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Crear un array a partir de la cantidad de otro

ginitofl gracias por tu valiosa ayuda está muy bien, ya los muestra pero me agrega uno de mas. Coloca 5 en vez de los 4 que deberia. por qué???
__________________
Caminando con el corazón partío
  #16 (permalink)  
Antiguo 28/04/2011, 11:13
Avatar de ginitofl  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima Perú
Mensajes: 349
Antigüedad: 17 años, 4 meses
Puntos: 22
Respuesta: Crear un array a partir de la cantidad de otro

cambia esto for ($i=0;$i<=count($rs);$i++)
por esto:

for ($i=1;$i<=count($rs);$i++)
  #17 (permalink)  
Antiguo 28/04/2011, 11:22
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Crear un array a partir de la cantidad de otro

Mil gracias ginitofl, ya funciona :)
__________________
Caminando con el corazón partío
  #18 (permalink)  
Antiguo 28/04/2011, 11:25
Avatar de ginitofl  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima Perú
Mensajes: 349
Antigüedad: 17 años, 4 meses
Puntos: 22
Respuesta: Crear un array a partir de la cantidad de otro

Kimmy tienes que cambiar el name del select por que ahi todos se llaman horas1, ten cuidado con eso, te sugiero que lo concatenes con la variable $i de tal manera que los select se llamaran horas1, horas2, horas3 ... etc.

Saludos.
  #19 (permalink)  
Antiguo 28/04/2011, 11:36
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Crear un array a partir de la cantidad de otro

ok, gracias por la observación de verdad es importante pues tengo que usar esos datos según lo que el cliente escoja. lo puse asi pero no se si está bien porque no se como ver si se llaman horas1, horas2, horas3 ... etc.

Código PHP:
Ver original
  1. echo '<select name= "horas'.$i.'">';
__________________
Caminando con el corazón partío
  #20 (permalink)  
Antiguo 28/04/2011, 11:40
Avatar de ginitofl  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima Perú
Mensajes: 349
Antigüedad: 17 años, 4 meses
Puntos: 22
Respuesta: Crear un array a partir de la cantidad de otro

pues en el explorador dale click derecho y dale en ver codigo fuente de la pagina, ahi verifica si cambia los nombres.

GinoFL
  #21 (permalink)  
Antiguo 28/04/2011, 11:43
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 15 años, 9 meses
Puntos: 15
Respuesta: Crear un array a partir de la cantidad de otro

ah perfecto si les coloco el nombre a cada uno, mil gracias!!!
__________________
Caminando con el corazón partío
  #22 (permalink)  
Antiguo 28/04/2011, 12:18
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 3 meses
Puntos: 128
Respuesta: Crear un array a partir de la cantidad de otro

Tambien puedes utilizar esto:

Código PHP:
Ver original
  1. echo '<select name= "horas[]">';

Luego recorres el array y listo
__________________
Si no vivimos como pensamos, pronto empezaremos a pensar como vivimos.
Más vale un Gracias sincero, que un número que aumente "popularidad" ¬¬°

Universidad de chile, campeón

Etiquetas: cantidad
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 13:19.