Foros del Web » Programando para Internet » PHP »

Cómo trabajar con los arrays

Estas en el tema de Cómo trabajar con los arrays en el foro de PHP en Foros del Web. Colegas, me pueden ayudar o enseñarme como puedo guardar diferentes datos de una consulta en un array, por ejemplo: Tengo una tabla temas y una ...
  #1 (permalink)  
Antiguo 25/05/2009, 08:22
Avatar de boy-computer  
Fecha de Ingreso: diciembre-2006
Ubicación: Cuba, Pinar del Río
Mensajes: 337
Antigüedad: 17 años, 4 meses
Puntos: 1
Pregunta Cómo trabajar con los arrays

Colegas, me pueden ayudar o enseñarme como puedo guardar diferentes datos de una consulta en un array, por ejemplo:

Tengo una tabla temas y una tabla clases, tengo una consulta que me da todas las clases por temas, y lo que quiero es guardar los temas en un array y las clases en otro, no se si con un array multidimensional se puede, pero que le correspondan por ejemplo al tema 1 sus respectivas clases.

Mi objetivo es hacer un menú dinámico de la siguiente forma:

Tema 1
- Clase 1
- Clase 2
- Clase 3

Tema 2
- Clase 4
- Clase 5
- Clase 6

Tema 3
- Clase 7
- Clase 8
- Clase 9

Y que de esta forma se creen en la página Web el título del menú con sus subtitulos, es decir, si inserto un nuevo tema, este solo aparecerá cuando tenga clases y deben aparecer automáticamente en la página Web, pero siempre separados por grupos.
  #2 (permalink)  
Antiguo 25/05/2009, 08:26
Usuario no validado
 
Fecha de Ingreso: octubre-2008
Ubicación: BRUSELAS
Mensajes: 211
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: Cómo trabajar con los arrays

pseudocodigo:

SELECCIONAS TODOS LOS TEMAS
while..
{
MOSTRAR TEMA// echo ....
SELECCIONAS LAS CLASE DEL TEMA CORRESPONDIENTE...
WHILE...
{
MOSTRAR CLASE// echo ...
}
}

pon la structura de las tablas asi te podremos ayudar
  #3 (permalink)  
Antiguo 25/05/2009, 08:30
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Cómo trabajar con los arrays

como obtienes los valores en tu consulta, o como tienes el codigo para crear los array para ver en como ayudarte
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #4 (permalink)  
Antiguo 25/05/2009, 10:40
Avatar de boy-computer  
Fecha de Ingreso: diciembre-2006
Ubicación: Cuba, Pinar del Río
Mensajes: 337
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: Cómo trabajar con los arrays

La estructura d emis tablas es de la siguiente forma:

Unidades (Que sería la tabla temas)
id_unidad ------------ int(2)
unidad --------------- varchar(100)
id_habilidad --------- int(2)


Temas (Que sería la tabla clases)
id_tema -------- int(4)
tema----------------varchar(100)
id_unidad----------- int(2)


Los nombre reales de mis tablas son Unidades y Temas pero el funcionamiento es el mismo. Además en la consulta:

Código:
select unidades.unidad, temas.tema from unidades inner join temas on ( unidades.id_unidad=temas.id_unidad )
Yo no le paso en ningun momento una condición para que sepa que tema seleccionar, sencillamente lo que me hace esta consulta es que me muestra varios registros donde me pone la Unidad y el tema, pero como que en una misma unidad hay varios temas, entonces me pone varias veces el nombre de la unidad aunque sea con diferentes temas. El objetivo es poder mostrar en la página, una sola vez el nombre de la unidad y debajo sus temas, no es mostrar la unidad y el tema, porque eso enonces me esta repitiendo las cosas.

Última edición por boy-computer; 25/05/2009 a las 10:51 Razón: Exclaresiendo más la idea
  #5 (permalink)  
Antiguo 25/05/2009, 11:49
Usuario no validado
 
Fecha de Ingreso: octubre-2008
Ubicación: BRUSELAS
Mensajes: 211
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: Cómo trabajar con los arrays

Código PHP:
$sql="SELECT * FROM Unidades";
$respuesta=mysql_query($sql) or die(mysql_error());
while(
$datos=mysql_fetch_array($respuesta))
{
     echo 
$datos['unidad'];
     
$sql2="SELECT * FROM Temas WHERE id_unidad=".$datos['id_unidad'];
     
$respuesta2=mysql_query($sql2) or die(mysql_error());
     while(
$datos2=mysql_fetch_array($respuesta2))
     {
          echo 
$datos2['tema'];
     }


creo que esto te puede solucionar el problema
  #6 (permalink)  
Antiguo 25/05/2009, 11:55
Avatar de boy-computer  
Fecha de Ingreso: diciembre-2006
Ubicación: Cuba, Pinar del Río
Mensajes: 337
Antigüedad: 17 años, 4 meses
Puntos: 1
De acuerdo Respuesta: Cómo trabajar con los arrays

Colega ahora si es como lo estaba buscando hacer solo me queda una cosita, si la Unidad no tiene temas, se podrá ocultar hasta que tenga temas, es decir, que solo muestre la unidades que tienen temas.
  #7 (permalink)  
Antiguo 25/05/2009, 12:09
Usuario no validado
 
Fecha de Ingreso: octubre-2008
Ubicación: BRUSELAS
Mensajes: 211
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: Cómo trabajar con los arrays

Código PHP:
$sql="SELECT * FROM Unidades";
$respuesta=mysql_query($sql) or die(mysql_error());
while(
$datos=mysql_fetch_array($respuesta))
{
     
$sql3="SELECT COUNT(*) as Total FROM Temas WHERE id_unidad=".$datos['id_unidad'];
     
$respuesta4=mysql_query($sql3) or die(mysql_error());
     
$hay_temas=mysql_fetch_array($respuesta4);
     if(
$hay_temas['Total'])// se me olvido poner ['TOTAL']..
          
echo $datos['unidad'];
     
     
$sql2="SELECT * FROM Temas WHERE id_unidad=".$datos['id_unidad'];
     
$respuesta2=mysql_query($sql2) or die(mysql_error());
     while(
$datos2=mysql_fetch_array($respuesta2))
     {
          echo 
$datos2['tema'];
     }

saludos

Última edición por fatasma; 25/05/2009 a las 12:20
  #8 (permalink)  
Antiguo 25/05/2009, 14:49
Avatar de boy-computer  
Fecha de Ingreso: diciembre-2006
Ubicación: Cuba, Pinar del Río
Mensajes: 337
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: Cómo trabajar con los arrays

Ahora si colega, me has dado tremenda ayuda, te lo agradezco .
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 03:29.