PHP - Ayuda con columna de los mejores votados

 
Vista:

Ayuda con columna de los mejores votados

Publicado por Pablo (8 intervenciones) el 17/11/2017 23:08:33
Hola, disculpen la molestia, pero es que tengo una pagina web de videojuegos y he intentado por mi cuenta resolver esto, pero no lo comprendo.

Tengo una columna a la derecha de mi pagina, que muestra los videojuegos mejor puntuados de la historia de la web. El problema es que los pocos juegos que tienen 10 son los que siempre muestra y algunos son de hace 5 años, lo que hace que esa columna no se renueve y se vea siempre igual. Lo ideal sería que se pueda mostrar los mejores puntuados de los últimos 60 días con lo cual la columna tendría variacion todo el tiempo, pero no se como aplicarlo al archivo. Adjunto el archivo que creo debe ser donde debería estar la correción, si no es ese, puedo adjuntar más.

Realmente he buscado una solucion pero no la he encontrado. Si alguno puede tirarme una mano, se lo agradecería enormemente.

Este es el archivo

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
var filterRightColumnTopRated = function ($console_id)
{
	//console.log("filterRightColumnTopRated");
	var onSuccess = function ($data)
	{
		var j_table = $("#right-column-top-rated-table");
		var j_tr
		var j_a
		var j_img
		var j_strong
		var j_span
		var j_div
 
		j_table.find("tbody > tr > td").fadeIn("slow");
		//console.log("onSuccess");
		if($data.length){
			//console.log($data);
			for(var i=0; i < 5; i++){
				j_tr = $(j_table.find("tr")[i + 1]);
 
				if($data[i]){
					j_a	= j_tr.find("td a");
					j_a.attr("href","?section=posts&action=read&post-id=" + $data[i].id_post);
 
					j_img = j_tr.find("div.image img");
					if ($data[i].imagen) {
						j_img.attr("src", $data[i].imagen + "-60x60.jpg");
					} else {
						j_img.attr("src", "website/frontend/content/games/default-60x60.jpg");
					}
 
					j_strong = j_tr.find("div.info strong");
					j_strong.text($data[i].nombre);
 
					j_div = j_tr.find("div.info .consoles-list-dark-background-small")
					j_div.html($data[i].consolas);
 
					j_span = j_tr.find("div.rating span");
					if(Number($data[i].puntuacion) == 10){
						$data[i].puntuacion = "10";
					}
					j_span.text($data[i].puntuacion);
 
					//console.log(11);
					j_tr.find("td > div").show();
				}else{
					//console.log(22);
					j_tr.find("td > div").hide();
				}
			}
 
			if(j_message_div.css("display") == "block"){
				j_message_div.fadeOut("slow");
			}
		}else{
			//console.log(2);
			j_table.find("tbody > tr > td > div").hide();
			j_message_div.fadeIn("slow");
		}
 
		j_loading_div.fadeOut("slow");
	}
 
	var j_message_div 	= $("#right-column-top-rated-message");
	var j_loading_div 	= $("#right-column-top-rated-loading");
	var j_table			= $("#right-column-top-rated-table");
 
	var j_filters_a = $("#right-column-top-rated-filters > strong > a");
		j_filters_a.removeClass("selected");
 
	if($console_id){
		j_filters_a.each(function($index, $value)
		{
			if($($value).attr("title") == $console_id){
				$($value).addClass("selected");
			}
		})
	}else{
		$(j_filters_a[0]).addClass("selected");
	}
 
	j_loading_div.fadeIn("slow", function()
	{
		$.ajax({
			url: "website/frontend/plugins/right-column-top-rated/php/get-right-column-top-rated.php",
			data: { "console-id": $console_id },
			type: "POST",
			dataType: "json",
			success: onSuccess
		});
	});
	j_table.find("tbody > tr > td").fadeOut("slow");
}
 
$(window).load(function()
{
	var j_filters_a = $("#right-column-top-rated-filters > strong > a");
	var j_a
 
	for(var i=0; i < j_filters_a.length; i++){
		j_a = $(j_filters_a[i]);
		j_a.click(function()
		{
			if(!$(this).hasClass("selected")){
				filterRightColumnTopRated($(this).attr("title"));
			}
		});
	}
 
	filterRightColumnTopRated(0);
})
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
sin imagen de perfil
Val: 604
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Ayuda con columna de los mejores votados

Publicado por Miguel (218 intervenciones) el 18/11/2017 02:26:57
Amigo, eso lo tienes que programar en el archivo get-right-column-top-rated.php y no en el front-end. Si colocas el código de ese archivoy la estructura de la tabla rating posiblemente te pueda ayudar.
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

Ayuda con columna de los mejores votados

Publicado por Pablo (8 intervenciones) el 18/11/2017 02:52:02
Gracias por tu respuesta!

te dejo el contenido del archivo que me dices

1
2
3
4
5
6
7
8
9
10
11
12
<?php
	include_once '../../../../backend/core/configuration.php';
	include_once '../../../../backend/core/db.class.php';
	include_once '../../../core/index.class.php';
 
	$index = new index();
 
	$id = $_POST["console-id"];
	$text_json = json_encode($index->obtenerTopRatedAnalisis($id));
 
	echo $text_json;
?>

¿Y la estructura de la tabla podría ser esta?

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
<div id="right-column-top-rated">
	<div class="title">
		<h3>Análisis mas votados</h3>
    </div>
	<div class="consoles-list-dark-background" id="right-column-top-rated-filters">
		<?php echo $index->generarListaDeConsolasHTML(NULL, true); ?>
	</div>
	<div class="list">
		<div id="right-column-top-rated-message" class="message-screen" style="display:none">
			<span>No hay análisis para la consola seleccionada</span>
		</div>
		<div id="right-column-top-rated-loading" class="loading-screen"></div>
		<table id="right-column-top-rated-table">
			<thead>
				<tr>
					<td><i class="icon-arrow-01">></i><strong>Juego</strong></td>
					<td><i class="icon-arrow-01">></i><strong>Puntaje</strong></td>
				</tr>
			</thead>
			<tbody>
		       	<?php for ($i=0;$i < 5;$i++) { ?>
		        <tr>
					<td style="display:none">
						<div class="content">
			    			<div class="image">
								<a href="#"><img src="" alt="" /></a>
			    			</div>
			    			<div class="info">
								<a href="#"><strong></strong></a>
								<div class="consoles-list-dark-background-small"></div>
							</div>
						</div>
					</td>
					<td style="display:none">
						<div class="content">
		    				<div class="rating">
								<span></span>
							</div>
						</div>
					</td>
				</tr>
				<?php } ?>
			</tbody>
		</table>
	</div>
	<div class="footer">
        <a href="?section=posts&post-type=1&filter=1"><i class="icon-arrow-02">></i><strong>Ver listado de análisis más votados</strong></a>
	</div>
</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
sin imagen de perfil
Val: 604
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Ayuda con columna de los mejores votados

Publicado por Miguel (218 intervenciones) el 18/11/2017 07:48:51
Ok. Al parecer el código se encuentra en la función index::obtenerTopRatedAnalisis() del archivo ../../../core/index.class.php.
Con la 'estructura de la tabla' me refiero a la de la base de datos... pero por el momento solo coloca el contenido de index.class.php para ver qué tiene.
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

Ayuda con columna de los mejores votados

Publicado por Pablo (8 intervenciones) el 18/11/2017 15:06:30
Acá te lo dejo, te agradezco tu gentileza.

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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
class index extends DB {
 
	public function generarListaDeConsolasHTML ($consolas = NULL, $link = false, $variables_url = NULL, $consola_seleccionada = 0)
	{
		if(!function_exists("obtenerLink"))
		{
			function obtenerLink ($id_consola, $variables_url)
			{
				$href = "";
				foreach ($variables_url as $name=>$value)
				{
					if($value && $name != "console-id")
					{
						if($href)
						{
							$href .= "&";
						}
						else
						{
							$href .= "?";
						}
						$href .= $name."=".$value;
					}
				}
				$href .= "&console-id=".$id_consola;
				return $href;
			}
		}
 
		if ($consolas == NULL) {
			$arr_con = $this->obtenerConsolasMenu();
			$consolas = array();
			foreach ($arr_con as $con) {
				$consolas[] = array("id" => $con['id'], "nombrecorto" => $con['nombrecorto']);
			}
		}
 
		$string		= "";
		$divisor	= "<span> | </span>";
 
		$string .= "<strong>";
		if($link){
			if($variables_url){
				$href = obtenerLink(0, $variables_url);
			}else{
				$href = "javascript:";
			}
			if($consola_seleccionada == 0){
				$string .= "<a href='{$href}' class='selected' title='0'>";
			}else{
				$string .= "<a href='{$href}' title='0'>";
			}
			$string .= "Todos";
			$string .= "</a>";
		}
		$string .= "</strong>";
		if($link){
			$string .= $divisor;
		}
 
		$i = 0;
		foreach ($consolas as $console) {
			$string .= "<strong>";
			if($link){
				if($variables_url){
					$href = obtenerLink($console['id'], $variables_url);
				}else{
					$href = "javascript:";
				}
				if($console['id'] == $consola_seleccionada){
					$string .= "<a href='{$href}' class='selected' title='{$console['id']}'>";
				}else{
					$string .= "<a href='{$href}' title='{$console['id']}'>";
				}
				$string .= $console['nombrecorto'];
				$string .= "</a>";
			}else{
				$string .= $console['nombrecorto'];
			}
			$string .= "</strong>";
			if($i < count($consolas) - 1){
				$string .= $divisor;
			}
			$i++;
		}
		return $string;
	}
	public function obtenerCountConsolas() {
		// modificar en activado = 1
		$sql = "SELECT COUNT(activado) AS contador FROM consolas WHERE activado = 0";
		$resultado = mysql_query($sql);
		$contador = 2;
		while ($row = mysql_fetch_array($resultado)){
			$contador = $row['contador'];
		}
		return $contador;
	}
	public function obtenerConsolasMenu() {
		$datosConsolas = array();
		$sql = "SELECT * FROM consolas ORDER BY orden ASC";
		$resultado = mysql_query($sql);
		while ($row = mysql_fetch_array($resultado)){
			$datosConsolas[] = array(
				"id" => $row['id_consola'],
				"nombre" => $row['nombre'],
				"icono" => $row['icono'],
				"nombrecorto" => $row['nombrecorto']
			);
		}
		return $datosConsolas;
	}
	public function obtenerArrayConsolas($id_juego) {
		$sql = "SELECT id_consola,nombrecorto FROM consolas WHERE id_consola = ANY (SELECT fk_id_consola FROM consolasxjuego WHERE fk_id_juego = {$id_juego})";
		$resultado = mysql_query($sql);
		while ($row = mysql_fetch_array($resultado)){
			$arr_nombrecorto[] = array("id" => $row['id_consola'], "nombrecorto" => $row['nombrecorto']);
		}
		return $arr_nombrecorto;
	}
	public function obtenerNombreJuego($id_juego = NULL) {
		$sql = "SELECT nombre FROM juegos WHERE id_juego = ".$id_juego;
		$resultado = mysql_query($sql);
		while ($row = mysql_fetch_array($resultado)){
			$nombreJuego = $row['nombre'];
		}
		return $nombreJuego;
	}
	public function obtenerNombreConsola($id_consola) {
		$sql = "SELECT nombre FROM consolas WHERE id_consola = ".$id_consola;
		$resultado = mysql_query($sql);
		while ($row = mysql_fetch_array($resultado)){
			$nombreConsola = $row['nombre'];
		}
		return $nombreConsola;
	}
	public function obtenerImagenJuego($id_juego, $id_post) {
		$imagen = "";
		if ($id_juego > 0) {
			$sql = "SELECT imagen FROM juegos WHERE id_juego = ".$id_juego;
			$resultado = mysql_query($sql);
			while ($row = mysql_fetch_array($resultado)){
				$imagen = $row['imagen'];
			}
			if (is_null($imagen) || $imagen == "") $imagen = "content/games/default";
		} else {
			$sql = "SELECT imagen_miniatura FROM posts WHERE id_post = {$id_post}";
			$resultado = mysql_query($sql);
			while ($row = mysql_fetch_array($resultado)) {
				$imagen = $row['imagen_miniatura'];
			}
			if (is_null($imagen) || $imagen == "") $imagen = "content/news/default";
		}
		return $imagen;
	}
	public function obtenerTopRatedAnalisis($consola = 0,$cantidad = 5) {
		$datos = array();
		if ($consola == 0) {
			$sql = "SELECT id_post,fk_id_juego,puntuacion_pnm,nombre,imagen
					FROM posts p ,juegos j 
					WHERE p.tipo = 1 AND p.fk_id_juego = j.id_juego AND p.estado = 1 
					ORDER BY puntuacion_pnm DESC LIMIT 0,".$cantidad;
		} else {
			$sql = "SELECT id_post,fk_id_juego,puntuacion_pnm,nombre,imagen
					FROM posts p ,juegos j 
					WHERE p.tipo = 1 AND p.fk_id_juego = j.id_juego AND p.estado = 1 
					AND p.fk_id_juego = ANY 
					(SELECT fk_id_juego FROM consolasxjuego WHERE fk_id_consola = ".$consola.")
					ORDER BY puntuacion_pnm DESC LIMIT 0,".$cantidad;
		}
		$resultado = mysql_query($sql);
		while ($row = mysql_fetch_array($resultado)){
			$datos[] = array(
				"id_post" => $row['id_post'],
				"id_juego" => $row['fk_id_juego'],
				"puntuacion" => $row['puntuacion_pnm'],
				"nombre" => htmlspecialchars_decode($row['nombre'], ENT_QUOTES),
				"imagen" => $row['imagen'],
				"consolas" => ""
			);
		}
		for ($i=0;$i<count($datos);$i++) {
			$datos[$i]['puntuacion'] = number_format($datos[$i]['puntuacion'],1);
			$datos[$i]['consolas'] = $this->generarListaDeConsolasHTML($this->obtenerArrayConsolas($datos[$i]['id_juego']));
		}
		return $datos;
	}
	public function obtenerHighlightedPosts() {
		$configuration = simplexml_load_file("website/frontend/plugins/highlighted-posts/xml/configuration.xml");
		foreach ($configuration->post as $id_post) {
			if (strlen($id_post) > 0 && $id_post > 0 && $id_post != "") {
				$sql = "SELECT id_post,tipo,fecha_creacion,titulo,descripcion,fk_id_juego,imagen_cabecera
					    FROM posts WHERE estado = 1 AND imagen_cabecera <> '' AND id_post = {$id_post}";
				$resultado = mysql_query($sql);
				while ($row = mysql_fetch_array($resultado)){
					$datos[] = array(
						"id" => $row['id_post'],
						"tipo" => $row['tipo'],
						"fecha" => $row['fecha_creacion'],
						"titulo" => $row['titulo'],
						"descripcion" => $row['descripcion'],
						"id_juego" => $row['fk_id_juego'],
						"imagen" => $row['imagen_cabecera']
					);
				}
			}
		}
		return $datos;
	}
	public function obtenerHighlightedConsolas($id_consola,$limite = 3) {
		$datos = array();
		if ($id_consola != 0) {
		$sql = "SELECT p.id_post AS id_post,j.id_juego AS id_juego,j.imagen AS imagen,p.fecha_actualizacion AS fecha,p.titulo AS titulo,p.tipo AS tipo,p.descripcion AS p_descripcion
				FROM posts p, juegos j WHERE p.estado = 1 AND j.id_juego = p.fk_id_juego AND p.fk_id_juego = ANY 
				(SELECT fk_id_juego FROM consolasxjuego WHERE fk_id_consola = ".$id_consola.")
			    ORDER BY p.fecha_actualizacion DESC LIMIT 0,".$limite;
		} else {
		$sql = "SELECT p.id_post AS id_post,j.id_juego AS id_juego,j.imagen AS imagen,p.fecha_actualizacion AS fecha,p.titulo AS titulo,p.tipo AS tipo,p.descripcion AS p_descripcion
				FROM posts p, juegos j WHERE p.estado = 1 AND j.id_juego = p.fk_id_juego
				ORDER BY p.fecha_actualizacion DESC LIMIT 0,".$limite;
		}
		$resultado = mysql_query($sql);
		while ($row = mysql_fetch_array($resultado)){
			$datos[] = array(
				"id_post" => $row['id_post'],
				"id_juego" => $row['id_juego'],
				"imagen" => $row['imagen'],
				"fecha" => $row['fecha'],
				"titulo" => $row['titulo'],
				"tipo" => $row['tipo'],
				"p_descripcion" => $row['p_descripcion'],
				"consolas" => ""
			);
		}
		for ($i=0;$i<count($datos);$i++) {
			$datos[$i]['fecha'] = $this->obtenerFechaProcesada($datos[$i]['fecha']);
			$datos[$i]['consolas'] = $this->generarListaDeConsolasHTML($this->obtenerArrayConsolas($datos[$i]['id_juego']));
		}
		return $datos;
	}
	public function obtenerUltimasImagenes() {
		$sql = "SELECT g.id_galeria, c.id_contenidoxgaleria, c.imagen, c.titulo
		FROM contenidoxgaleria c, galerias g 
		WHERE c.fk_id_galeria = g.id_galeria AND g.tipo = 0 AND c.fecha_creacion = (
			SELECT MAX(fecha_creacion) 
			FROM contenidoxgaleria 
			WHERE fk_id_galeria = g.id_galeria) 
		GROUP BY g.id_galeria
		ORDER BY g.fecha_actualizacion DESC LIMIT 0,4";
		$resultado = mysql_query($sql);
		$imagenes = array();
		while ($row = mysql_fetch_array($resultado)) {
			$nombre = explode("gallery-images/",$row['imagen']);
			$imagenes[] = array(
				"imagen" => $row['imagen'],
				"titulo" => $row['titulo'],
				"id_contenidoxgaleria" => $row['id_contenidoxgaleria']
			);
		}
		return $imagenes;
	}
	public function obtenerFechaProcesada($fecha) {
		$mes = date("m",$fecha);
		switch ($mes) {
		    case 1: $mes = "Enero"; break;
		    case 2: $mes = "Febrero"; break;
		    case 3: $mes = "Marzo"; break;
		    case 4: $mes = "Abril"; break;
		    case 5: $mes = "Mayo"; break;
		    case 6: $mes = "Junio"; break;
		    case 7: $mes = "Julio"; break;
		    case 8: $mes = "Agosto"; break;
		    case 9: $mes = "Septiembre"; break;
		    case 10: $mes = "Octubre"; break;
		    case 11: $mes = "Noviembre"; break;
		    case 12: $mes = "Diciembre"; break;
		}
		$dia = $mes.date(" d, Y H:i\h\s",$fecha);
		return $dia;
	}
}
?>
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: 604
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Ayuda con columna de los mejores votados

Publicado por Miguel (218 intervenciones) el 18/11/2017 20:26:04
Bien, al parecer la lista de los más votados se toma en base a puntuaciones de la tabla posts. Supongo que usando la fecha de cada post (fecha_creacion) se podría obtener lo que quieres. Modificando la función quedaría así:

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
//  el parámetro  $desde debe ser un objeto DateTime que represente la fecha desde la cual se quiere obtener la lista de mejores votados
public function obtenerTopRatedAnalisis($consola = 0, $cantidad = 5, $desde = false)
{
	$datos = array();
 
	// si no se especifica el parámetro $desde se le da el valor de 60 días atrás, como comentas que deseas
	if ($desde == false) $desde = new DateTime("-60 days");
	$hasta = new DateTime();
 
	$sDesde = $desde->format("Y-m-d");
	$sHasta = $hasta->format("Y-m-d");
 
	if ($consola == 0)
	{
		$sql = "SELECT id_post,fk_id_juego,puntuacion_pnm,nombre,imagen
				FROM posts p ,juegos j 
				WHERE p.tipo = 1 AND p.fk_id_juego = j.id_juego AND p.estado = 1
				AND DATE(p.fecha_creacion) BETWEEN '" . $sDesde . "' AND '" . $sHasta . "'
				ORDER BY puntuacion_pnm DESC LIMIT 0," . $cantidad;
	}
	else
    {
		$sql = "SELECT id_post,fk_id_juego,puntuacion_pnm,nombre,imagen
				FROM posts p ,juegos j 
				WHERE p.tipo = 1 AND p.fk_id_juego = j.id_juego AND p.estado = 1 
				AND DATE(p.fecha_creacion) BETWEEN '" . $sDesde . "' AND '" . $sHasta . "'
				AND p.fk_id_juego = ANY 
				(SELECT fk_id_juego FROM consolasxjuego WHERE fk_id_consola = ".$consola.")
				ORDER BY puntuacion_pnm DESC LIMIT 0," . $cantidad;
	}
 
	$resultado = mysql_query($sql);
 
	while ($row = mysql_fetch_array($resultado)
    {
		$datos[] = array(
			"id_post" => $row['id_post'],
			"id_juego" => $row['fk_id_juego'],
			"puntuacion" => $row['puntuacion_pnm'],
			"nombre" => htmlspecialchars_decode($row['nombre'], ENT_QUOTES),
			"imagen" => $row['imagen'],
			"consolas" => ""
		);
	}
	for ($i = 0; $i < count($datos); $i++)
	{
		$datos[$i]['puntuacion'] = number_format($datos[$i]['puntuacion'],1);
		$datos[$i]['consolas'] = $this->generarListaDeConsolasHTML($this->obtenerArrayConsolas($datos[$i]['id_juego']));
	}
 
	return $datos;
}
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

Ayuda con columna de los mejores votados

Publicado por Pablo (8 intervenciones) el 18/11/2017 21:05:50
Te agradezco la ayuda Miguel.

Te consulto si tengo que hacer algo más aparte de cambiar el codigo de este archivo, o por ahi lo hice mal, ya que directamente toda la pagina no carga al ingresar el nuevo codigo (se queda todo en blanco). Por supuesto hice una copia de seguridad.

Gracias por tu ayuda!
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: 604
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Ayuda con columna de los mejores votados

Publicado por Miguel (218 intervenciones) el 18/11/2017 21:30:20
Mmm, qué raro... Solamente era cambiar la función obtenerTopRatedAnalisis del archivo index.class.php.

También puedes activar la opción de mostrar errores para ver en dónde está fallando.
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

Ayuda con columna de los mejores votados

Publicado por Pablo (8 intervenciones) el 18/11/2017 21:41:40
No encuentro el archivo .ini para activar los errores, te paso como quedo el archivo

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
public function obtenerTopRatedAnalisis($consola = 0, $cantidad = 5, $desde = false)
{
	$datos = array();
	if ($desde == false) $desde = new DateTime("-60 days");
	$hasta = new DateTime();
 
	$sDesde = $desde->format("Y-m-d");
	$sHasta = $hasta->format("Y-m-d");
 
	if ($consola == 0)
	{
		$sql = "SELECT id_post,fk_id_juego,puntuacion_pnm,nombre,imagen
			FROM posts p ,juegos j 
			WHERE p.tipo = 1 AND p.fk_id_juego = j.id_juego AND p.estado = 1
			AND DATE(p.fecha_creacion) BETWEEN '" . $sDesde . "' AND '" . $sHasta . "'
			ORDER BY puntuacion_pnm DESC LIMIT 0," . $cantidad;
	}
	else
    {
		$sql = "SELECT id_post,fk_id_juego,puntuacion_pnm,nombre,imagen
			FROM posts p ,juegos j 
			WHERE p.tipo = 1 AND p.fk_id_juego = j.id_juego AND p.estado = 1 
			AND DATE(p.fecha_creacion) BETWEEN '" . $sDesde . "' AND '" . $sHasta . "'
			AND p.fk_id_juego = ANY 
			(SELECT fk_id_juego FROM consolasxjuego WHERE fk_id_consola = ".$consola.")
			ORDER BY puntuacion_pnm DESC LIMIT 0," . $cantidad;
	}
 
	$resultado = mysql_query($sql);
 
	while ($row = mysql_fetch_array($resultado)
    {
		$datos[] = array(
			"id_post" => $row['id_post'],
			"id_juego" => $row['fk_id_juego'],
			"puntuacion" => $row['puntuacion_pnm'],
			"nombre" => htmlspecialchars_decode($row['nombre'], ENT_QUOTES),
			"imagen" => $row['imagen'],
			"consolas" => ""
		);
	}
	for ($i = 0; $i < count($datos); $i++)
	{
		$datos[$i]['puntuacion'] = number_format($datos[$i]['puntuacion'],1);
		$datos[$i]['consolas'] = $this->generarListaDeConsolasHTML($this->obtenerArrayConsolas($datos[$i]['id_juego']));
	}
 
	return $datos;
}
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: 604
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Ayuda con columna de los mejores votados

Publicado por Miguel (218 intervenciones) el 18/11/2017 22:48:52
Pero recuerda que en el archivo también hay otras funciones, así que solo es reemplazar la función obtenerTopRatedAnalisis.

Para mostrar los errores coloca esto en la parte superior (del último archivo a ejecutar):

1
2
3
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
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

Ayuda con columna de los mejores votados

Publicado por Pablo (8 intervenciones) el 19/11/2017 06:21:31
Si, solo cambie la parte que me dejaste ahi, en el archivo index.class.php

Disculpa, cual sería el último archivo a ejecutar?
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: 604
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Ayuda con columna de los mejores votados

Publicado por Miguel (218 intervenciones) el 19/11/2017 06:42:07
Es el que solicitas con AJAX: website/frontend/plugins/right-column-top-rated/php/get-right-column-top-rated.php
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

Ayuda con columna de los mejores votados

Publicado por Pablo (8 intervenciones) el 19/11/2017 15:57:04
Disculpa, debería quedar asi el archivo?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
 
<?php
 
        include_once '../../../../backend/core/configuration.php';
	include_once '../../../../backend/core/db.class.php';
	include_once '../../../core/index.class.php';
 
	$index = new index();
 
	$id = $_POST["console-id"];
	$text_json = json_encode($index->obtenerTopRatedAnalisis($id));
 
	echo $text_json;
?>
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: 604
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Ayuda con columna de los mejores votados

Publicado por Miguel (218 intervenciones) el 19/11/2017 23:57:58
Pero dentro del bloque <?php sino se imprimirá.
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

Ayuda con columna de los mejores votados

Publicado por Pablo (8 intervenciones) el 20/11/2017 00:11:29
No hay caso Miguel, te agradezco la ayuda. Me pasas dos cosas:

Si modifico ambos archivos (index.php.class y get-right-column-top-rated) la pagina se pone totalmente en blanco. No hay ningun tipo de indicador de error por ningun lado. Si dejo el archivo index como estaba antes, la pagina vuelve normalmente, pero la columna con los analisis más votados no carga, se queda con un icono girando como si estuviera cargando el contenido de la misma de forma indefinida.

¡Te agradezco la valentía y la paciencia!

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