PHP - Ordenar input segun su valor.

 
Vista:
sin imagen de perfil

Ordenar input segun su valor.

Publicado por Dante (32 intervenciones) el 07/03/2015 01:07:07
Buenas... tengo la siguiente duda:

Yo tengo el siguiente código.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
	include("conexion.php");
	$query= "SELECT * FROM resultados_usuario";
	$resultado= mysql_query($query);
	 	$cantusuarios=mysql_num_fields($resultado)-1;
	 	echo $cantusuarios;
        $ultimo_campo_usuario = $cantusuarios;
        for ($i = 2; $i <= $ultimo_campo_usuario; $i++) {
        /*$calcular=mysql_field_name($resultado, 2);*/
        $calcular=mysql_field_name($resultado, $i);
       	$tabla="resultados_usuario";
		$comparacion="Resultado";
		$result = mysql_query("SELECT COUNT($calcular) as total FROM resultados_usuario  WHERE $comparacion=$calcular");
		$row = mysql_fetch_array($result, MYSQL_ASSOC);
		?>
 
 
		<div><label for=""><?php echo $calcular; ?></label><input type="text" value=<?php echo $row["total"]; ?>></div>
		<?php //echo $calcular; ?>
		<?php //echo $row["total"]; ?>
 
	<?php
        } /* for ($i = 2; $i <= $ultimo_campo_usuario; $i++) { */
	?>

Ésto me imprime, un div, que contiene un LABEL con $calcular y un input con $row["total"]...dependiendo de la cantidad de campos me lo imprime de la sig manera...

<div><label>Usuario 1</label><input>5</input></div>
<div><label>Usuario 2</label><input>6</input></div>
<div><label>Usuario 3</label><input>1</input></div>
<div><label>Usuario 4</label><input>8</input></div>

ok?, bueno lo que yo quiero es imprimirlos después según el valor del input... por ejemplo de la siguiente manera:

<div><label>Usuario 4</label><input>8</input></div>
<div><label>Usuario 2</label><input>6</input></div>
<div><label>Usuario 1</label><input>5</input></div>
<div><label>Usuario 3</label><input>1</input></div>

Y, ya que estamos, que me imprima solo los primeros 3...

<div><label>Usuario 4</label><input>8</input></div>
<div><label>Usuario 2</label><input>6</input></div>
<div><label>Usuario 1</label><input>5</input></div>


No sé si me explico... desde ya, muchas gracias.
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

Ordenar input segun su valor.

Publicado por MMan (59 intervenciones) el 07/03/2015 01:39:13
$result = mysql_query("SELECT COUNT($calcular) as total FROM resultados_usuario ORDER BY COUNT($calcular) DESC LIMIT 3 WHERE $comparacion=$calcular");
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

Ordenar input segun su valor.

Publicado por Dante (32 intervenciones) el 07/03/2015 01:45:01
Ahí no está ordenando el "total"... eso sería si quiera ordenar todo lo de una columna de la tabla... peor lo que quiero es ordenar $row["total"] que es el que se genera con la consulta y la comparación.

gracias...
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

Ordenar input segun su valor.

Publicado por MMan (59 intervenciones) el 07/03/2015 02:27:29
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// muy arriba afuera del bucle declaras un array
$datos = array();
 
....
....
$comparacion="Resultado";
$result = mysql_query("SELECT COUNT($calcular) as total FROM resultados_usuario WHERE $comparacion=$calcular");
 
$row = mysql_fetch_array($result, MYSQL_ASSOC); ?>
 
// metes los datos en el arrray
$datos[ $calcular ] = $row["total"];
 
<?php //echo $calcular; ?> 
<?php //echo $row["total"]; ?> 
 
<?php }
/* 
for ($i = 2; $i <= $ultimo_campo_usuario; $i++) { 
*/
?>
 
// cuando terminas el bucle anterior.. muestras los datos
 
// ordenas descendente
arsort($datos);
 
<div>
 
<?php
$cuenta = 0;
foreach ($datos  as $calcular => $total) {
='editor_indent'>echo '<label for="">' .$calcular .'</label>';
echo '<input type="text" value='. echo $total. '>';
 
// solo muestra 3 
$cuenta++;
if ($cuenta>3){
='editor_indent'>break;
}
}
?>
 
</div>
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