PHP - Representar contenido adaptado

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

Representar contenido adaptado

Publicado por Javi (18 intervenciones) el 30/12/2019 16:37:24
En la base de datos tengo una serie de "Participantes" y estos tiene una serie de puntuaciones, el problema es que en la base de datos tengo únicamente 2 campos, "Nombre" y "Puntuaciones". Todas las puntuaciones de los participantes se guardan en este campo seguidas como letras, es decir, si tiene 5 puntuaciones, un 10, un 9, un 8, un 7 y un 6, en la base de guarda así: LJIHG, correspondiendo cada letra a una puntuación. Necesito mostrar en una página web esto valores desglosados, es decir, Puntuación 1: 10 Puntuación 2: 9 Puntuación 3: 8 Puntuación 4: 7 Puntuación 5: 6 pero no se como convertir las letras en números y como separar los valores del campo en distintos campos. Gracias y un saludo
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
Imágen de perfil de Bryan Alexander
Val: 116
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Representar contenido adaptado

Publicado por Bryan Alexander (45 intervenciones) el 30/12/2019 16:48:21
En PHP debes utilizar str_split() esta función partira tu string en un ARREGLO luego haces un Loop para ir letra por letra convirtiendola en valores y listo, si necesitas ayuda con el código, seria genial que mandes como esta tu DB y ayudarte de una mejor manera, quedo a la orden.
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: 30
Ha disminuido su posición en 11 puestos en PHP (en relación al último mes)
Gráfica de PHP

Representar contenido adaptado

Publicado por Javi (18 intervenciones) el 30/12/2019 17:31:35
La base de datos sería la siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE TABLE entries(
  QuId int,
  QuD1Score int,
  QuD1Hits int,
  QuD1Arrowstring varchar(90),
  QuD1Rank smallint(6)
  );
 
INSERT INTO entries(QuId , QuD1Score , QuD1Hits , QuD1Arrowstring, QuD1Rank ) VALUES
  (22900,252,30,'JIHJIIJIIJIGLJIIIILJILJIJIGJJJ',8),
  (22901,250,30,'LJJLIILJGJIGLJHLJJHGGJJIJHGJJJ',9),
  (22902,286,30,'LLJLLLJJJLJJLLJLLJLLLLLJLJJLJI',3),
  (22903,277,30,'LLJLJJLJJLJJJJIJJJLLJLJJJJJLJI',5);

Necesitaría mostrar esos 30 valores en una tabla (como se ve en la foto de este enlace: https://drive.google.com/open?id=18RrgwURzOFMWmZ581LKuw94koZcJUisc), cada letra tiene el siguiente valor:
L=10
J=9
I=8
H=7
G=6
F=5
E=4
D=3
C=2
B=1
A=0

Muchas Gracias y un saludo
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: 30
Ha disminuido su posición en 11 puestos en PHP (en relación al último mes)
Gráfica de PHP

Representar contenido adaptado

Publicado por Javi (18 intervenciones) el 30/12/2019 18:22:25
L=10
J=9
I=8
H=7
G=6
F=5
E=4
D=3
C=2
B=1
A=0
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 Bryan Alexander
Val: 116
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Representar contenido adaptado

Publicado por Bryan Alexander (45 intervenciones) el 30/12/2019 21:50:05
A este archivo le puse index.html

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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
 
    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    <link rel="stylesheet" href="studio_style.css">
 
    <title>Buscador</title>
  </head>
  <body>
    <div class="container-fluid">
      <header class="content__title">
        <h1 class="text-center">Representar valores</h1>
        <h6 class="text-center">Ejercicio La web del programador</h6>
      </header>
        <div class="row text-center">
          <div class="col">
            <button type="button" style="margin-top: 20px;" class="btn btn-primary" id="buscar">Leer DB</button>
          </div>
        </div>
          <div class="row">
            <div class="col" id="respuesta">
              Resultado...
            </div>
          </div>
    </div><!-- FIN DIV CONTAINER-FLUID-->
 
 
    <!-- Optional JavaScript -->
    <!-- jQuery first, then Popper.js, then Bootstrap JS -->
    <!--<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>-->
    <script src="https://code.jquery.com/jquery-3.4.1.js" integrity="sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU=" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js" integrity="sha256-T0Vest3yCU7pafRw9r+settMBX6JkKN06dqBnpQ8d30=" crossorigin="anonymous"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
    <script type="text/javascript">
      $("#buscar").click(function(){
        buscar();
      });
 
      function buscar(){
 
        $.ajax({ //Inicio del Ajax
        contentType: "application/x-www-form-urlencoded",
        type: "POST",
        url: "services.php",
        data: ({
            option: 'search_db'
        }),
        dataType: "json",
        success: function(r) {
            if(r.info != ''){
                $("#respuesta").html(r.info);
            }else{
                alert('No existe data!');
            }
 
        }
    });//Fin del Ajax
      }
    </script>
  </body>
</html>


A este le puse services.php

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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?php
 
	session_start();
	date_default_timezone_set('America/Guatemala');
 
	$servername = "localhost";
	$username = "root";
	$password = "12345";
	$db 	  = "buscador_lwp";
 
	// Create connection
	$conn = mysqli_connect($servername, $username, $password, $db);
 
	// Check connection
	if ($conn->connect_error) {
	    die("Connection failed: " . $conn->connect_error);
	}else{
		//echo "Connected successfully";
		//error_log('TESTING');
	}
 
	if(isset($_POST['option'])){
		$option = $_POST['option'];
 
		switch ($option) {
			case 'search_db':
				search_db();
				break;
		}
	}
 
	function search_db(){
		global $conn;
		$jsondata = array();
 
		//Query para buscar en la DB
		$query = "SELECT QuD1Arrowstring
					FROM entries";
 
		//ejecutar el query en la DB
		$query_exec = mysqli_query($conn, $query);
		$n = mysqli_num_rows($query_exec);
 
		if($n > 0){
 
			while ($query_result = mysqli_fetch_array($query_exec)) {
				$ArrowString = $query_result['QuD1Arrowstring'];
				$ArrowArray  = str_split($ArrowString);
 
				$resultado .= "
					<div class='row'>";
 
				foreach ($ArrowArray as $key => $value) {
 
					switch ($value) {
						case 'A':
							$v = 0;
							break;
						case 'B':
							$v = 1;
							break;
						case 'C':
							$v = 2;
							break;
						case 'D':
							$v = 3;
							break;
						case 'E':
							$v = 4;
							break;
						case 'F':
							$v = 5;
							break;
						case 'G':
							$v = 6;
							break;
						case 'H':
							$v = 7;
							break;
						case 'I':
							$v = 8;
							break;
						case 'J':
							$v = 9;
							break;
						case 'L':
							$v = 10;
							break;
						default:
							$v = $value;
							break;
					}
 
					$resultado .= "
					<div class='col'>
					$v
					</div>
					";
				}
 
				$resultado .= "
					</div>";
			}
 
 
		}else{
			$resultado = "No se tiene información!";
		}
 
 
		$jsondata['info'] = $resultado;
		echo json_encode($jsondata);
	}
 
?>

La DB la puse tal cual la enviaste arriba en tu código, cualquier cosa quedo a la orden vale, recuerda cambiarle los datos a la conexión de la base de datos para que funcione en tu maquina.
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