PHP - Mostrar Array

 
Vista:
sin imagen de perfil
Val: 10
Ha disminuido su posición en 163 puestos en PHP (en relación al último mes)
Gráfica de PHP

Mostrar Array

Publicado por Ricardo (6 intervenciones) el 25/05/2020 00:50:59
Hola muy buena
Haber si me podéis ayudar quiero mostrar los datos de mi array uno por uno cuando presiono el boton como puedo hacerlo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function cargarPreguntas($id_tema){
    $id = $id_tema;
    $conexion = conectarBD();
 
    $consulta = "SELECT * FROM preguntas WHERE id_tema = \"$id\";";
    $resultado = $conexion->query($consulta);
 
    $i = 0;
    $datos = array();
    while($preguntas = $resultado->fetch_array()){
        $datos[$i] = $preguntas;
        $i++;
    }
    print_r($datos);
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Mostrar Array

Publicado por Alejandro (3 intervenciones) el 25/05/2020 01:21:16
Si te he entendido bieen, lo que necesitas es poner el print_r dentro del while.

1
2
3
4
5
while($preguntas = $resultado->fetch_array()){
    print_r($preguntas);
    $datos[$i] = $preguntas;
    $i++;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 10
Ha disminuido su posición en 163 puestos en PHP (en relación al último mes)
Gráfica de PHP

Mostrar Array

Publicado por Ricardo (6 intervenciones) el 25/05/2020 01:41:03
entonces cuando presiono en el botón llamo a la función??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Mostrar Array

Publicado por joel (1269 intervenciones) el 25/05/2020 08:08:31
A que botón haces referencia? si es un botón de una pagina web, tendrás que llamar al archivo PHP y luego llamar a la función...

PHP se ejecuta en el servidor y el botón en el navegador del cliente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 10
Ha disminuido su posición en 163 puestos en PHP (en relación al último mes)
Gráfica de PHP

Mostrar Array

Publicado por Ricardo (6 intervenciones) el 28/05/2020 14:52:36
lo tengo de esta forma

funciones.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function cargarPreguntas($id_tema){
    $id = $id_tema;
    $conexion = conectarBD();
 
    $consulta = "SELECT * FROM preguntas WHERE id_tema = \"$id\" ORDER BY RAND() LIMIT 10;";
    $resultado = $conexion->query($consulta);
 
    $datos = array();
    while ( $preguntas = $resultado->fetch_array() ) {
        $datos[] = $preguntas;
    }
 
    foreach ($datos as $dato) {
        echo $dato['pregunta'];
    }
}

y en el fichero pregunta.php
hay un botón que será comenzar que al darle clic quiero que muestre el primer elemento y cuando le de al botón siguiente muestre el segundo elemento del array hasta que lo recorra todo y cuando ya no haiga mas salga un mensaje de finalizado y aqui es donde me quedo estancado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Mostrar Array

Publicado por joel (1269 intervenciones) el 28/05/2020 17:05:07
No se muy bien como quieres hacerlo, pero cuando pulsen el boton, tendras que llamar a un archivo php, que dicho archivo llame a esta funcion... y tendras que guardar en algun sitio la posicion del array que estas viendo para luego hacer la consulta SQL y devolver el siguiente, anterior, etc...

Para ello, tendras que utilizar LIMIT en tu consulta SQL
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de javier
Val: 1.542
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Mostrar Array

Publicado por javier (546 intervenciones) el 28/05/2020 19:59:09
hola,

esto que haces en dos bucles es redundante y sobra un bucle.

solo con hacer esto deberia servir.

1
2
3
while ( $preguntas = $resultado->fetch_array() ) {
    echo $preguntas['pregunta'];
}

para que recorrer dos veces el array?

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 10
Ha disminuido su posición en 163 puestos en PHP (en relación al último mes)
Gráfica de PHP

Mostrar Array

Publicado por Ricardo (6 intervenciones) el 28/05/2020 21:58:25
estoy haciendo un juego de test de preguntas y las preguntas las almaceno en el array pero lo que quiero es mostrarlo 1 por 1 la pregunta y para pasar la pregunta le doy al botón y me muestra la siguiente por eso hice 2 bucles pero hay estoy estancado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de javier
Val: 1.542
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Mostrar Array

Publicado por javier (546 intervenciones) el 29/05/2020 08:36:17
podrias hacerte un paginador que te mostrara las preguntas de una en una.

Y solo te haria falta un bucle, el del while.

http://facturacionweb.site/blog/paginacion-simple-usando-php-mysqli/

eso o si son 10 preguntas o las que sean, empezando por que la consulta no te devuelva un array asociativo, si no de indice numerico,
almacenas en una variable de sesion que empiezas por la pregunta 0, despues cuando de al boton de siguiente pregunta, le sumas uno a la variable de sesion y muestras la segunda pregunta y asi hasta el final

1
2
3
4
5
6
7
8
9
10
11
12
mas o menos para que cojas una idea
<?php
$consulta = "SELECT * FROM preguntas WHERE id_tema = \"$id\" ORDER BY RAND() LIMIT 10;";
$resultado = $conexion->query($consulta);
 
 
$preguntas = $resultado->fetch_array() ;
 
echo $pregunta[0];
 
$_SESSION['preguntas'] = $preguntas;//para guardar el array de preguntas y mantenerlo de pagina en pagina
$_SESSION['numeroPregunta'] = 0;

despues cuando le de a siguiente pregunta le sumas uno a la variable de session y muestras la segunda pregunta

1
2
3
4
5
$_SESSION['numeroPregunta'] = $_SESSION['numeroPregunta'] + 1;
 
$numPreg = $_SESSION['numeroPregunta'] ;
 
echo $pregunta[$numPreg];

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar