Foros del Web » Programando para Internet » PHP »

PHP OO Mostrar registros de manera secuencial en php

Estas en el tema de Mostrar registros de manera secuencial en php en el foro de PHP en Foros del Web. BUEN DÍA A TODOS: Estoy haciendo un cuestionario dinámico en php y mysql, y quiero basarme en uno que encontré hace poco, pero este cuestionario ...
  #1 (permalink)  
Antiguo 28/07/2013, 20:51
 
Fecha de Ingreso: julio-2013
Ubicación: Guerrero
Mensajes: 5
Antigüedad: 11 años, 3 meses
Puntos: 0
Pregunta Mostrar registros de manera secuencial en php

BUEN DÍA A TODOS:

Estoy haciendo un cuestionario dinámico en php y mysql, y quiero basarme en uno que encontré hace poco, pero este cuestionario lo que hace es mostrar los registros de manera aleatoria, ya intente cambiarle muchas veces para que se muestre de manera secuencial, pero no lo he logrado.
Alguno de ustedes que sepa manejar bien los arreglos y rangos, que me pudieran ayudar a mostrar los registro de manera secuencial
ó algún otro código que me proporcionen. Se los agradecería mucho.


este es el código:
Código PHP:
<?php
session_start
();

require(
"conexion.php");

$arr range(a,z);
$num range(1,9);

if(!isset(
$_POST['sno'])){
    
$sno=1;
    

$qusid range(1,9);
$qus array_rand($qusid);

$_SESSION['qid'] = $qus;

$str $arr[array_rand($arr)].$num[array_rand($num)];

$_SESSION['tabla'] = str_shuffle($str);
mysql_query("create tabla sino existe ".$_SESSION['tabla']."(sno int(11) null auto_increment, usrans varchar(11) not null, qid int(11), primary key(sno));") or die(mysql_error());
    
}else{
    
$sno=$_POST['sno'];
    
$sno++;    
    
$ans=$_POST['op'];
    
    
$s=$_POST['s'];
    
    
$qusid range(1,9);
    
$qus array_rand($qusid);
    
    
mysql_query("insert into ".$_SESSION['tabla']." values(null, '$ans', '$s');");
    if(
$sno==11){
    
header("Location: resultados.php");
    }
}
    
?>
<html>
<head>
<title>.:Cuestionario:.</title>
<link rel="stylesheet" href="style.css" type="text/css"/>
</head>
<body>
<div id="main">
<?php

$query 
mysql_query("select * from qb where sno=$qus") or die(mysql_error());
$fetch mysql_fetch_assoc($query) or die(mysql_error());

?>
<form name="fm" id="fm" action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
<input type="hidden" id="sno" name="sno" value="<?php echo $sno?>" />

<?php

echo "<table border='2' cellpadding='15'>";
echo 
"<tr><td>".$sno."</td><td>".$fetch['question']."</tr></td>";
echo 
"<tr><td colspan='2'>"."<input type='radio' name='op' id='op' value='a'>".$fetch['a']."</tr></td>";
echo 
"<tr><td colspan='2'>"."<input type='radio' name='op' id='op' value='b'>".$fetch['b']."</tr></td>";
echo 
"<tr><td colspan='2'>"."<input type='radio' name='op' id='op' value='c'>".$fetch['c']."</tr></td>";
echo 
"<tr><td colspan='2'>"."<input type='radio' name='op' id='op' value='d'>".$fetch['d']."</tr></td>";

?>
<tr><td colspan='2'><input type="hidden" name="s" id="s" value="<?php echo $fetch['sno']; ?>"><input type="submit" name="sb" id="sb"/></td></tr>
</table>
</form>
</div>

</body>
</html>
  #2 (permalink)  
Antiguo 29/07/2013, 13:01
(Desactivado)
 
Fecha de Ingreso: julio-2006
Mensajes: 273
Antigüedad: 18 años, 3 meses
Puntos: 5
Respuesta: Mostrar registros de manera secuencial en php

Hola amigo.

Lo que se me ocurre es que en alguna tabla coloques el orden de secuencia. digamos tenemos dos arrays.

primer grupo id: 1

pregunta 1: orden de secuencia tercera
pregunta 2: orden de secuencia: primera
pregunta 3: orden de secuencia: segunda

segundo grupo id: 2

pregunta 1: orden de secuencia segunda
pregunta 2: orden de secuencia: primera
pregunta 3: orden de secuencia: tercera

y por medio de la funcion rand simplemente llamas a los grupos 1 o 2 o 3 y asi sucesivamente.

es lo que se me ocurre.
  #3 (permalink)  
Antiguo 30/07/2013, 00:39
 
Fecha de Ingreso: julio-2013
Ubicación: Guerrero
Mensajes: 5
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Mostrar registros de manera secuencial en php

Gracias por responder Eduardo, pero si sigo utilizando la funcion rand me escoge los arreglos de manera aleatoria y no de manera secuencial que es lo que necesito.

si te ayuda añadi la parte de resultados:

resutls.php

Código PHP:
Ver original
  1. <?php
  2. ?>
  3. <html>
  4. <head>Resultado de Cuestionario :.</title>
  5. <link rel="stylesheet" href="style.css" type="text/css"/>
  6. </head>
  7. <body>
  8. <div id="main">
  9. <?php
  10.  
  11. require("conexion.php");
  12.  
  13.  
  14. $query = mysql_query("select * from ".$_SESSION['tabla']) or die(mysql_error());
  15. $cc=0;
  16. while($fetch = mysql_fetch_assoc($query)){
  17.     $query_q = mysql_query("select correctans from qb where sno=".$fetch['sno']);
  18.     $fetch_q = mysql_fetch_assoc($query_q);
  19.     if($fetch['usrans']==$fetch_q['correctans']){
  20.             $cc+=1;
  21.     }
  22. }
  23. if($cc==5){
  24.     echo "Pasaste el cuestionario!";   
  25. }else{
  26.     echo "Fallaste!";
  27. }
  28.  
  29. echo "<br />";
  30. echo "<br />";
  31. mysql_query("drop table ".$_SESSION['tabla']) or die("Error !");
  32.  
  33. echo "<h3><p> tu puntuacion en el cuestionario es ".$cc."/10 </p></h3><br />";
  34.  
  35. echo "<p>Quieres hacer el examen otra vez? <a href='index.php'>Click aqui</a>.</p>";
  36.  
  37. ?>
  38. </div>
  39. </body>
  40. </html>

Etiquetas: html, manera, mysql, registro, registros, select, sql, tabla
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 09:22.