Lunes 23 de Diciembre de 2024, 04:44
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación Web y Scripting
»
PHP
(Moderador:
F_Tanori
) »
Select que recorra varias filas.
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Select que recorra varias filas. (Leído 1929 veces)
Gaug
Miembro activo
Mensajes: 26
Select que recorra varias filas.
«
en:
Jueves 30 de Julio de 2009, 00:43 »
0
Hola.
Tengo un ciclo 'for' en mi página que toma valores de mi BD e imprime categorías y subcategorías, lo más seguro es que no me explique, así que pondé un ejemplo de mi BD y un ejemplo de como quiero que aparezca en la página.
Así está más o menos mi BD:
[php:2bvfd1db]
Tabla: tabla1
Continentes Países Ciudades
(
campos
)
América México D.F.
(
valores
)
América Estados Unidos Washington
Europa España Madrid
Europa Inglaterra Liverpool
África Egipto El Cairo
Asia Japón Hong Kong.
Asia China Beijing
Oceanía Australia Sydney.
Europa Francia Paris
[/php:2bvfd1db]
Y en la página como les repito, es un ciclo for, me gustaría hacer un 'SELECT' de alguna manera para que en la página ya apareciera algo así:
América -> México -> D.F.
Europa -> Inglaterra -> Liverpool
etc.
Así como en la base de datos, pero por orden, yo intenté pero sólo me toma un valor no todos, sino me explico díganme y seré más detallado.
Digamos que primero se hace una consulta para ver el total de lineas que se van a tomar en cuenta con ésto:
[php:2bvfd1db]
$query
=
"select llave FROM tabla1 WHERE llave = '"
.
$llave
.
"'"
;
$result
=
mysql_query
(
$query
)
;
$activ_rows
=
mysql_num_rows
(
$result
)
;
[/php:2bvfd1db]
Y luego el ciclo 'for':
[php:2bvfd1db]
for
(
$filas
=
0
;
$filas
+1
<=
$activ_rows
;
$filas
++
)
{
Aquí iria lo de
"América -> México -> D.F."
, etc.
}
[/php:2bvfd1db]
Me faltó agregar al ejemplo de mi BD que lleva una llave, para separar, aunque en el ejemplo que les mostré arriba todos llevan la misma llave, así que no importa.
Espero puedan ayudarme, se los agradezco de antemano.
Saludos.
Tweet
RadicalEd
Moderador
Mensajes: 2430
Nacionalidad:
Re: Select que recorra varias filas.
«
Respuesta #1 en:
Jueves 30 de Julio de 2009, 05:38 »
0
Para eso debes hacer una consulta multiple y que tus tablas estén relacionadas, algo así:
Código: SQL
SELECT
con
.
nombre
,
pais
.
nombre
,
ciu
.
nombre
FROM
continentes
AS
con
,
paises
AS
pais
,
ciudades
AS
ciu
WHERE
ciu
.
id_pais
=
pais
.
id
AND
pais
.
id_conti
=
con
.
id
Y te dejo las tablas que creé para la prueba
Código: SQL
CREATE
TABLE
IF
NOT
EXISTS
`continentes`
(
`id`
INT
(
2
)
NOT
NULL
AUTO_INCREMENT
,
`nombre`
VARCHAR
(
10
)
NOT
NULL
,
PRIMARY
KEY
(
`id`
)
)
ENGINE
=
MyISAM
DEFAULT
CHARSET
=
latin1
AUTO_INCREMENT
=
6
;
INSERT
INTO
`continentes`
(
`id`
,
`nombre`
)
VALUES
(
1
,
'Africa'
)
,
(
2
,
'America'
)
,
(
3
,
'Asia'
)
,
(
4
,
'Europa'
)
,
(
5
,
'Oceania'
)
;
CREATE
TABLE
IF
NOT
EXISTS
`paises`
(
`id`
INT
(
2
)
NOT
NULL
AUTO_INCREMENT
,
`id_conti`
INT
(
2
)
NOT
NULL
,
`nombre`
VARCHAR
(
10
)
NOT
NULL
,
PRIMARY
KEY
(
`id`
)
)
ENGINE
=
MyISAM
DEFAULT
CHARSET
=
latin1
AUTO_INCREMENT
=
11
;
INSERT
INTO
`paises`
(
`id`
,
`id_conti`
,
`nombre`
)
VALUES
(
1
,
1
,
'Angola'
)
,
(
2
,
1
,
'Botswana'
)
,
(
3
,
2
,
'Colombia'
)
,
(
4
,
2
,
'Argentina'
)
,
(
5
,
3
,
'Japon'
)
,
(
6
,
3
,
'China'
)
,
(
7
,
4
,
'Francia'
)
,
(
8
,
4
,
'Alemania'
)
,
(
9
,
5
,
'Australia'
)
,
(
10
,
5
,
'Vanuatu'
)
;
CREATE
TABLE
IF
NOT
EXISTS
`ciudades`
(
`id`
INT
(
2
)
NOT
NULL
AUTO_INCREMENT
,
`id_conti`
INT
(
2
)
NOT
NULL
,
`id_pais`
INT
(
2
)
NOT
NULL
,
`nombre`
VARCHAR
(
10
)
NOT
NULL
,
PRIMARY
KEY
(
`id`
)
)
ENGINE
=
MyISAM
DEFAULT
CHARSET
=
latin1
AUTO_INCREMENT
=
21
;
INSERT
INTO
`ciudades`
(
`id`
,
`id_conti`
,
`id_pais`
,
`nombre`
)
VALUES
(
1
,
1
,
1
,
'Benguela'
)
,
(
2
,
1
,
1
,
'Cabinda'
)
,
(
3
,
1
,
2
,
'Gaborone'
)
,
(
4
,
1
,
2
,
'Jwaneng'
)
,
(
5
,
2
,
3
,
'Cali'
)
,
(
6
,
2
,
3
,
'Bogota'
)
,
(
7
,
2
,
4
,
'Mar del Pl'
)
,
(
8
,
2
,
4
,
'Buenos Air'
)
,
(
9
,
3
,
5
,
'Sapporo'
)
,
(
10
,
3
,
5
,
'Osaka'
)
,
(
11
,
3
,
6
,
'Baotou'
)
,
(
12
,
3
,
6
,
'Beijing'
)
,
(
13
,
4
,
7
,
'Paris'
)
,
(
14
,
4
,
7
,
'Bobigni'
)
,
(
15
,
4
,
8
,
'Frankfurt'
)
,
(
16
,
4
,
8
,
'Aachen'
)
,
(
17
,
5
,
9
,
'Sidney'
)
,
(
18
,
5
,
9
,
'Tasmania'
)
,
(
19
,
5
,
10
,
'Port Villa'
)
,
(
20
,
5
,
10
,
'Ambae Isla'
)
;
El pasado son solo recuerdos, el futuro son solo sueños
Gaug
Miembro activo
Mensajes: 26
Re: Select que recorra varias filas.
«
Respuesta #2 en:
Jueves 30 de Julio de 2009, 16:02 »
0
Muchas gracias Edo, en PHPMYADMIN funciona perfecto, pero quiero ejecutar eso en mi página php, el problema más bien radicaría en incluir eso en el ciclo, o en su defecto quitar el ciclo y hacer las consultas con 'do while', pero también estoy confundido en sobre como hacer las consultas, estaba pensando en algo así, míralo y dime que piensas:
Código: PHP
$query_Recordsetcont
=
"CONSULTA CONTINENTE"
;
$Recordsetcont
=
mysql_query
(
$query_Recordsetcont
,
$conex
)
or
die
(
mysql_error
(
)
)
;
$row_Recordsetcont
=
mysql_fetch_assoc
(
$Recordsetcont
)
;
do
{
$id_continente
=
$row_Recordsetcont
[
'id_continente'
]
;
$continente
=
$row_Recordsetcont
[
'continente'
]
;
$query_Recordsetpais
=
"CONSULTA PAIS "
;
$Recordsetpais
=
mysql_query
(
$query_Recordsetpais
,
$conex
)
or
die
(
mysql_error
(
)
)
;
$row_Recordsetpais
=
mysql_fetch_assoc
(
$Recordsetpais
)
;
do
{
$id_pais
=
$row_Recordsetpais
[
'id_pais'
]
;
$pais
=
$row_Recordsetpais
[
'pais'
]
;
$query_Recordset
=
"CONSULTA CIUDAD"
;
$Recordset
=
mysql_query
(
$query_Recordset
,
$conex
)
or
die
(
mysql_error
(
)
)
;
$row_Recordset
=
mysql_fetch_assoc
(
$Recordset
)
;
do
{
$ciudad
=
$row_Recordset
[
'ciudad'
]
;
////Aquí se imprimen///
}
while
(
$row_Recordset
=
mysql_fetch_assoc
(
$Recordset
)
)
;
}
while
(
$row_Recordsetpais
=
mysql_fetch_assoc
(
$Recordsetpais
)
)
;
}
while
(
$row_Recordsetcont
=
mysql_fetch_assoc
(
$Recordsetcont
)
)
;
Además, quisiera que la consulta fuera con todos, osea los continentes, paises y ciudades dentro de la misma tabla, no importa si usas un 'id' para identificarlos o ya sea el nombre, es lo de menos en realidad, lo que me importa es la consulta y que se impriman, en realidad lo que yo tengo planeado con esto, es que se impriman de acuerdo al número de ciudades, si en total son 10 ciudades, pues que todo se imprima 10 veces, ¿me explico?
Saludos.
RadicalEd
Moderador
Mensajes: 2430
Nacionalidad:
Re: Select que recorra varias filas.
«
Respuesta #3 en:
Jueves 30 de Julio de 2009, 16:18 »
0
La consulta que te hicé te mola en el PHP, solamente debes recoger el array que te suelta el query e imprimirlo después, solo tienes que usar para recorrer ese array.
El pasado son solo recuerdos, el futuro son solo sueños
Gaug
Miembro activo
Mensajes: 26
Re: Select que recorra varias filas.
«
Respuesta #4 en:
Jueves 30 de Julio de 2009, 16:27 »
0
Es que ya tengo esos datos dentro de 1 tabla, y en realidad no estoy usando nombres para continentes y paises, estoy usando 'ids' y pues para la ciudad estoy usando el nombre, podrías ayudarme con la/las consulta/s, y con un ejemplo, es que no me queda muy claro lo que me quieres decir del array.
De nuevo, gracias por tu ayuda.
RadicalEd
Moderador
Mensajes: 2430
Nacionalidad:
Re: Select que recorra varias filas.
«
Respuesta #5 en:
Viernes 31 de Julio de 2009, 17:16 »
0
Es lo mismo, realmente no entiendo en qué estás enredado, sino tienes los nombres de continente y país entonces cómo los imprimes???
Realmente qué es lo que no sabes hacer para explicarte mejor.
El pasado son solo recuerdos, el futuro son solo sueños
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación Web y Scripting
»
PHP
(Moderador:
F_Tanori
) »
Select que recorra varias filas.