Ago 04

Cambiando a MySqli en ajedrezenmadrid.com

Una vez preparados los datos con los nuevos campos y las modificaciones en las vistas, voy a proceder a realizar los cambios necesarios para que las consultas a la base de datos se realice mediante MySqli.

Realizando los cambios

  • application/config/database.php -> $db[‘default’][‘dbdriver’] = ‘mysqli’;
  • application/controllers/noticia.php -> $filanoticia = mysqli_fetch_array($ssqldatos_noticia);
  • application/models/torneos_model.php -> reemplazar:
    • mysql_query por mysqli_query
    • tabla_torneos_8x8 por tabla_torneos (si se copia desde ajedrez_8x8)
    • tabla_noticias_8x8 por tabla_noticias (si se copia desde ajedrez_8x8)
  • system/database/DB_driver.php -> var $dbdriver = ‘mysqli’;
  • application/views/plantillas/inicio_titulares_noticias.php -> if (mysqli_num_rows($rs_hoytitulares)!=0){
    while ($fila = mysqli_fetch_array($rs_hoytitulares)) {
  • En todas las funciones que contengan return mysql_query, incluir la línea que define el $link, la línea que define el encoding UTF8 y añadir ese parámetro a la instrucción mysqli_query
    • $link = mysqli_connect(«localhost», «luismase_admin», «Rioja/17»,
    • if (!$link->set_charset(«utf8»)); «Esto es muy importante para evitar que salgan ñakas en lugar de acentos y ñ» Más información
    • return mysqli_query($link, $ssqlultorpub);
  • En todas las vistas(inicio_noticias.php, inicio_partidas_en_directo.php, inicio_partidas_actualidad.php, inicio_fotos_actualidad.php) que contengan if (mysql_num_rows($rs_hoynoticias)!=0) o if (mysql_num_rows($rs_hoytorneos)!=0) sustituirlos respectivamente por:
    • if(!empty($rs_hoynoticias) AND mysqli_num_rows($rs_hoynoticias) > 0)
    • if(!empty($rs_hoytorneos) AND mysqli_num_rows($rs_hoytorneos) > 0)
  • application\views\plantillas\inicio_partidas_en_directo.php sustituir:
    • $contaTordir = mysqli_num_rows($rs_tordir);
    • $contaDir = mysqli_num_rows($rs_dir);
  • application\views\plantillas\inicio_partidas_actualidad.php sustituir:
    • $contaToract = mysql_num_rows($rs_toract); -> $contaToract = mysqli_num_rows($rs_toract);
  • application\views\plantillas\inicio_fotos_actualidad.php sustituir:
    • $contaFotos = mysql_num_rows($rs_fotos); -> $contaFotos = mysqli_num_rows($rs_fotos);
  • application\views\plantillas\inicio_proximos_torneos.php incluir delante del while la línea y modificar el while:
    • if(!empty($rs_protorneos20) AND mysqli_num_rows($rs_protorneos20) > 0) {
    • while ($fila = mysql_fetch_array($rs_protorneos20)) { -> while ($fila = mysqli_fetch_array($rs_protorneos20)) {
    • Añadir un } tras el cierre del while.
  • application\views\plantillas\inicio_torneos_finalizados.php incluir delante del while la línea y modificar el while:
    • if(!empty($rs_fintorneos20) AND mysqli_num_rows($rs_fintorneos20) > 0) {
    • while ($fila = mysql_fetch_array($rs_fintorneos20)) { -> while ($fila = mysqli_fetch_array($rs_fintorneos20)) {
    • Añadir un } tras el cierre del while.
  • application\views\plantillas\lista_torneos_julio.php incluir delante del while la línea y modificar el while:
    • if(!empty($rs_torneos07) AND mysqli_num_rows($rs_torneos07) > 0) {
    • while ($fila = mysql_fetch_array($rs_torneos07)) { -> while ($fila = mysqli_fetch_array($rs_torneos07)) {
    • $conta_jul += 1;
    • $c_pgn_jul += $fila[‘numpartidas_torneo’];
    • Añadir un } tras el cierre del while.
  • Realizar la operación anterior en las siguientes plantillas cambiando los datos relativos a cada mes: $rs_torneosxx y $conta_xxx 
    • application\views\plantillas\
      • lista_torneos_enero.php
      • lista_torneos_febreroo.php
      • lista_torneos_marzoo.php
      • lista_torneos_abril.php
      • lista_torneos_mayo.php
      • lista_torneos_junio.php
      • lista_torneos_agosto.php
      • lista_torneos_septiembre.php
      • lista_torneos_octubre.php
      • lista_torneos_noviembre.php
      • lista_torneos_diciembre.php
  • application\views\plantillas\lista_torneos_anual.php incluir delante del while la línea y modificar el while:
    • if(!empty($rs_torneos01) AND mysqli_num_rows($rs_torneos01) > 0) {
    • while ($fila = mysql_fetch_array($rs_torneos01)) { -> while ($fila = mysqli_fetch_array($rs_torneos01)) {
  • application\views\plantillas\lista_torneos_menu_anyodejuego.php añadir líneas de 2019 y 1999 (Esto de momento es manual, pero habrá que automatizarlo).

Una vez terminado he comprobado la funcionalidad de la web y parece que todo funciona correctamente.

¡He dado un gran paso!

 

Ago 03

Actuando sobre ajedrezenmadrid.com

Voy a empezar la modificación de la web ajedrezenmadrid.com con el añadido de dos campos nuevos y su consecuencia en la vista muestra_torneo.

Para ello hago un duplicado de la tabla original de tabla_torneos de ajedrezenmadrid.com sobre tabla_torneos_190803, y una copia de tabla_noticias sobre tabla_noticias_190803.

A continuación comienzo los cambios en tabla_torneos.

  • Paso 1 –  creo el campo pre_torneo y lo relleno con «20» que refleja los dos primeros dígitos del año del torneo.
  • Paso 2 – creo el campo formato_torneo, que nos dirá si el torneo se genera con tablas (valor 1) o con fichero de texto incrustado (como se hace ahora mismo) (valor predeterminado 0).
  •  

Cambios en la programación

Cambiar en applications/views/muestra_torneo:

<?php include ‘torneos/’ . substr($rs_tor[‘cdgo_torneo’], 0, 4) . ‘/’ . $rs_tor[‘info_torneo’]?>

por

<?php include ‘torneos/’ . $rs_tor[‘pre_torneo’] . substr($rs_tor[‘cdgo_torneo’], 0, 2) . ‘/’ . $rs_tor[‘info_torneo’]?>

 

Todo parece funcionar correctamente, así que ahora puedo incluir torneos de siglos anteriores y serán visibles en el listado de torneos.

Jul 31

El código de torneo nuevo

Voy a empezar la modificación de la web ajedrez8x8.com con el añadido de dos campos nuevos y su consecuencia en la vista muestra_torneo.

Para ello hago un duplicado de la tabla original de ajedrezenmadrid.com sobre ajedrez8x8.com

  • Paso 1 –  creo el campo pre_torneo y lo relleno con «20» que refleja los dos primeros dígitos del año del torneo.
  • Paso 2 – creo el campo formato_torneo, que nos dirá si el torneo se genera con tablas (valor 1) o con fichero de texto incrustado (como se hace ahora mismo) (valor predeterminado 0).
  •  

Cambios en la programación

Cambiar en applications/views/muestra_torneo:

<?php include ‘torneos/’ . substr($rs_tor[‘cdgo_torneo’], 0, 4) . ‘/’ . $rs_tor[‘info_torneo’]?>

por

<?php include ‘torneos/’ . $rs_tor[‘pre_torneo’] . substr($rs_tor[‘cdgo_torneo’], 0, 2) . ‘/’ . $rs_tor[‘info_torneo’]?>

 

Si todo funciona correctamente me puedo plantear aplicar estos cambios a la web de ajedrezenmadrid.com, incluyendo los referidos a MySql.

Esto sería un paso muy importante porque me dejaría solucionado el problema de no quedarme obsoleto por la sentencia MySql, y por otro lado estaría iniciado el camino para las mejoras en cuanto a torneos y noticias, siendo todo ello transparente para los usuarios.

Jul 31

Nuevo replanteamiento

Voy a reflexionar sobre la situación de los cambios que pretendo hacer en la web de Ajedrez en Madrid.

Torneos

Para el nuevo formato de torneo que me gustaría implementar serían necesarias distintas nuevas tablas:

  • Clasificaciones
  • Rondas
  • Ordenes de fuerza
  • Bases
  • Crónicas
    • Crónicas con pestaña propia en la ficha del torneo
      • Crónicas previas
      • Crónica final
    • Crónicas embebidas en la ronda

Para complicar más las cosas las bases sólo son activas si son el único elemento a mostrar, en cualquier otro caso la pestaña activa sería la clasificación, que debe existir obligatoriamente.

Hay que pensar que para montar la ficha del torneo hay que recorrer todas las tablas mencionadas.

Noticias

Para las noticias hay que presentar:

  • Clasificación
  • Ronda

La crónica final o las de ronda es duda si se pueden mostrar en noticias o no.

Reflexiones

El código de torneo

Para solucionar el tema del código de torneo me inclino a pensar que podría incluirlo al final del código de torneo. Ésto permitiría que los torneos anteriores seguirían funcionando aunque tengan dos caracteres más, ya que éstos estarían en blanco.

En este caso tendría que chequear siempre las dos últimas posiciones del código de torneo, si no existen damos por sentado que es un 20, en caso contrario tomamos los dos dígitos que vengan (por ejemplo 19) y eso nos permitirá acceder a los directorios de torneos de siglos anteriores.

No obstante creo que habría que habilitar un campo con el código de siglo para otras funcionalidades de la aplicación.

Los torneos con datos en tablas

Se clasifican los torneos en dos tipos

  • Tipo 0 – los que no generan noticias (todos los antiguos o que no nos interesen).
  • Tipo 1 – los que generan noticias

Los torneos de tipo 1 están gestionados por tablas (clasificación, rondas, orden de fuerza, bases, etc.) y son los que cuando se mantienen actualizados generan noticias automáticas en la web, sin necesidad de que haya que incluir una noticia en la tabla de noticias.

Jul 29

Generar noticias a partir de torneos

La idea es generar a partir de la información de los torneos las noticias del día ¿Qué implica esto?

Para empezar habrá al menos tres tipos de noticias:

  • La información de resultados de ronda y clasificación de un torneo.
  • Los problemas de AjedrezPlus.
  • Alguna noticia «especial» que tenga que incluirse en primera página.

Divagando

Ahora mismo tenemos una base de noticias que es a partir de la cual generamos la primera página de la web. Si diferencio estos tres tipos de noticias la información podría venir de dos fuentes diferentes (no sé si eso es bueno).

Por otro lado la información de los torneos pasaría a ser de un cuerpo de texto del torneo creado a mano, a ser generado por programa a partir de unas bases de datos en las que habría resultados de rondas y clasificaciones según rondas, orden de fuerza, e incluso las bases del torneo.

Posible registro de ronda

  • Torneo 
  • Número de ronda (texto)
  • Cuerpo de ronda (igual que el texo de la noticia)
  • Fecha de ronda aaaa-mm-dd

Posible registro de clasificación

  • Torneo
  • Número de ronda o final (texto)
  • Cuerpo de clasificación
  • Fecha de clasificación aaaa-mm-dd

Posible registro de orden de fuerza

  • Torneo
  • Cuerpo de Orden de fuerza

Posible registro de bases

  • Torneo
  • Fichero pdf de bases

¿Con estos mimbres podría componer la página del torneo?

Veamos

  • 1º comprobaríamos si hay clasificación, si la hay se incorpora.
  • 2º comprobaríamos las rondas que tenemos de ese torneo, si las hay se incorporan.
  • 3º buscaríamos las bases del torneo y las incorporaríamos siempre.

El contenido de una página de torneo está dividido en dos partes:

  • El menú de enlaces (clasificación, Ronda 1, Ronda 2… , Ronda 9, Participantes, Bases)
  • Los contenidos a los que apuntan los enlaces

 

 

 

 

Jul 29

Nueva estrategia

Una vez finalizada la conversión de la web de MySql a MySqli y del aumento del tamaño del código de torneo, tenía previsto realizar el cambio inmediatamente en Ajedrez en Madrid.

Sin embargo he estado pensando y he llegado a la conclusión de que es un buen momento para acometer otros cambios que quiero realizar en la web, y mientras el problema de seguir utilizando MySql no impida el funcionamiento de la web, puedo ir avanzando en otras mejoras en Ajedrez8x8 y en un momento «especial» volcar todas las novedades de golpe. Algo así como darle más contenido a la versión 4.0 que estoy realizando.

De alguna manera me he quitado la presión de que se me quede colgada la web porque tengo muy bien documentado todo lo que tendría que hacer para que fuera operativa. Lo cual no tardaría más de un día en tenerlo todo en marcha.

Así que ahora toca dedicarse a las mejoras que se me han ido ocurriendo durante este tiempo:

  • Cambiar el diseño de la página principal, diferenciando noticias, problemas y torneos.
  • Cambiar la información de los torneos (rondas, clasificación, orden de fuerza, bases) de manera que vayan en ficheros diferentes y así poder utilizar esos datos para generar información en la página principal.
  • Generar noticias a partir de torneos. Esto implicará tablas de rondas y clasificaciones específicas. Esta será una tarea compleja, pero que si la saco adelante reduciré el trabajo y daré más vistosidad a la web.

 

 

Jul 27

Cambiar MySql por MySqli

Aunque tengo ya preparado el cambio del tamaño del código de torneo, mi atención se ha desviado ahora al cambio de la conexión a las bases de datos ¿porqué?

Pues porque la conexión MySql está obsoleta, y en cualquier momento me puedo quedar con la web colgada. Así que mi objetivo prioritario ahora es solucionar este problema.

 

Empezando cambios

  • application/config/database.php -> $db[‘default’][‘dbdriver’] = ‘mysqli’;
  • application/controllers/noticia.php -> $filanoticia = mysqli_fetch_array($ssqldatos_noticia);
  • application/models/torneos_model.php -> reemplazar mysql_query por mysqli_query
  • system/database/DB_driver.php -> var $dbdriver = ‘mysqli’;
  • application/views/plantillas/inicio_titulares_noticias.php -> if (mysqli_num_rows($rs_hoytitulares)!=0){
    while ($fila = mysqli_fetch_array($rs_hoytitulares)) {
  • En todas las funciones que contengan return mysql_query, incluir la línea que define el $link, la línea que define el encoding UTF8 y añadir ese parámetro a la instrucción mysqli_query
    • $link = mysqli_connect(«localhost», «luismase_admin», «Rioja/17»,
    • if (!$link->set_charset(«utf8»)); «Esto es muy importante para evitar que salgan ñakas en lugar de acentos y ñ» Más información
    • return mysqli_query($link, $ssqlultorpub);
  • En todas las vistas(inicio_noticias.php, inicio_partidas_en_directo.php, inicio_partidas_actualidad.php, inicio_fotos_actualidad.php) que contengan if (mysql_num_rows($rs_hoynoticias)!=0) o if (mysql_num_rows($rs_hoytorneos)!=0) sustituirlos respectivamente por:
    • if(!empty($rs_hoynoticias) AND mysqli_num_rows($rs_hoynoticias) > 0)
    • if(!empty($rs_hoytorneos) AND mysqli_num_rows($rs_hoytorneos) > 0)
  • application\views\plantillas\inicio_partidas_en_directo.php sustituir:
    • $contaTordir = mysqli_num_rows($rs_tordir);
    • $contaDir = mysqli_num_rows($rs_dir);
  • application\views\plantillas\inicio_partidas_actualidad.php sustituir:
    • $contaToract = mysql_num_rows($rs_toract); -> $contaToract = mysqli_num_rows($rs_toract);
  • application\views\plantillas\inicio_fotos_actualidad.php sustituir:
    • $contaFotos = mysql_num_rows($rs_fotos); -> $contaFotos = mysqli_num_rows($rs_fotos);
  • application\views\plantillas\inicio_proximos_torneos.php incluir delante del while la línea y modificar el while:
    • if(!empty($rs_protorneos20) AND mysqli_num_rows($rs_protorneos20) > 0) {
    • while ($fila = mysql_fetch_array($rs_protorneos20)) { -> while ($fila = mysqli_fetch_array($rs_protorneos20)) {
    • Añadir un } tras el cierre del while.
  • application\views\plantillas\inicio_torneos_finalizados.php incluir delante del while la línea y modificar el while:
    • if(!empty($rs_fintorneos20) AND mysqli_num_rows($rs_fintorneos20) > 0) {
    • while ($fila = mysql_fetch_array($rs_fintorneos20)) { -> while ($fila = mysqli_fetch_array($rs_fintorneos20)) {
    • Añadir un } tras el cierre del while.
  • application\views\plantillas\lista_torneos_julio.php incluir delante del while la línea y modificar el while:
    • if(!empty($rs_torneos07) AND mysqli_num_rows($rs_torneos07) > 0) {
    • while ($fila = mysql_fetch_array($rs_torneos07)) { -> while ($fila = mysqli_fetch_array($rs_torneos07)) {
    • $conta_jul += 1;
    • $c_pgn_jul += $fila[‘numpartidas_torneo’];
    • Añadir un } tras el cierre del while.
  • Realizar la operación anterior en las siguientes plantillas cambiando los datos relativos a cada mes: $rs_torneosxx y $conta_xxx 
    • application\views\plantillas\
      • lista_torneos_enero.php
      • lista_torneos_febreroo.php
      • lista_torneos_marzoo.php
      • lista_torneos_abril.php
      • lista_torneos_mayo.php
      • lista_torneos_junio.php
      • lista_torneos_agosto.php
      • lista_torneos_septiembre.php
      • lista_torneos_octubre.php
      • lista_torneos_noviembre.php
      • lista_torneos_diciembre.php
  • application\views\plantillas\lista_torneos_anual.php incluir delante del while la línea y modificar el while:
    • if(!empty($rs_torneos01) AND mysqli_num_rows($rs_torneos01) > 0) {
    • while ($fila = mysql_fetch_array($rs_torneos01)) { -> while ($fila = mysqli_fetch_array($rs_torneos01)) {
  • application\views\plantillas\lista_torneos_menu_anyodejuego.php añadir líneas de 2019 y 1999 (Esto de momento es manual, pero habrá que automatizarlo).

 

 

Jul 25

Primera prueba general

Voy a realizar el cambio masivo de los códigos de torneo en las dos tablas (torneos y noticias). Para ello, de nuevo, voy a volver a cargar las tablas originales, cambiar los tamaños de campos y comenzar a realizar las sentencias sql para realizar el cambio de los datos.

Paso 1 – Duplicado de tablas originales.

  • tabla_torneos -> tabla_torneos_8x8
  • tabla_noticias -> tabla_noticias_8x8

Paso 2 – Estructura – Cambio de tamaño de campos de código de torneo de 8 a 10 posiciones.

  • tabla_torneos_8x8
    • cdgo_torneo VARCHAR 10
    • anterior_torneo VARCHAR 10
    • siguiente_torneo VARCHAR 10
    • historial_torneo VARCHAR 10
    • certamen_torneo VARCHAR 10
  • tabla_noticias_8x8
    • torneo_noticia VARCHAR 10

Paso 3 – Copias de seguridad – Con las tablas modificadas genero unas nuevas copias de seguridad a partir de éstas.

  • tabla_torneos_8x8 -> tabla_torneos_8x8_copia
  • tabla_noticias_8x8 -> tabla_noticias_8x8_copia

Paso 4 – Cambiar códigos de torneo en tabla_torneos_8x8.

  • UPDATE tabla_torneos_8x8 SET cdgo_torneo = CONCAT(’20’, cdgo_torneo); -> 11.532
  • UPDATE tabla_torneos_8x8 SET anterior_torneo = CONCAT(’20’, anterior_torneo) WHERE anterior_torneo NOT LIKE »; -> 6.183
  • UPDATE tabla_torneos_8x8 SET siguiente_torneo = CONCAT(’20’, siguiente_torneo) WHERE siguiente_torneo NOT LIKE »; -> 6.183
  • UPDATE tabla_torneos_8x8 SET historial_torneo = CONCAT(’20’, historial_torneo) WHERE historial_torneo NOT LIKE »; ->  5.094
  • UPDATE tabla_torneos_8x8 SET certamen_torneo = CONCAT(’20’, certamen_torneo) WHERE certamen_torneo NOT LIKE »; -> 2.083

Paso 5 – Cambiar código de torneo en tabla_noticias_8x8.

  • UPDATE tabla_noticias_8x8 SET torneo_noticia = CONCAT(’20’, torneo_noticia) WHERE torneo_noticia NOT LIKE »; -> 12.409

Paso 6 – En el visor de partidas también hay que hacer cambios.

Hay que cambiar en el fichero application/views/visor_partidas.php las siguientes líneas referidas a la creación de la ruta para la localización del fichero pgn.

  • <a class=»linkItem» href=»<?php echo base_url(‘visor/20’ . substr($rs_tor[‘cdgo_torneo’], 0, 2) . ‘/’ . $rs_tor[‘partidas_torneo’] . ‘.pgn’)?>»><div class=»downloadlogo»></div></a>
  • <?php $urlpartidas = ‘visor/’ . substr($rs_tor[‘cdgo_torneo’], 0, 4) . ‘/’ . $rs_tor[‘partidas_torneo’] . ‘.pgn’;?>

 

  • SetPgnUrl(«<?php echo base_url(‘visor/20’ . substr($rs_tor[‘cdgo_torneo’], 0, 2)) . ‘/’ . $rs_tor[‘partidas_torneo’] . ‘.pgn’?>»);
  • SetPgnUrl(«<?php echo base_url(‘visor/’ . substr($rs_tor[‘cdgo_torneo’], 0, 4)) . ‘/’ . $rs_tor[‘partidas_torneo’] . ‘.pgn’?>»);

Paso 7 – Descarga de partidas

En el fichero application/views/plantillas/torneo_lado_izq.php cambiar las siguientes líneas referidas a la creación de la ruta para la localización de las descargas cbv y zip de partidas.

  • echo ‘<a href=»‘ . base_url(‘partidas/20’ . substr($rs_tor[‘cdgo_torneo’], 0, 2) . ‘/’ . $rs_tor[‘pgn_torneo’]) . ‘» class=»list-group-item»><span class=»glyphicon glyphicon-save»></span> PGN</a>’;
  • echo ‘<a href=»‘ . base_url(‘partidas/’ . substr($rs_tor[‘cdgo_torneo’], 0, 4) . ‘/’ . $rs_tor[‘pgn_torneo’]) . ‘» class=»list-group-item»><span class=»glyphicon glyphicon-save»></span> PGN</a>’;

 

  • echo ‘<a href=»‘ . base_url(‘partidas/20’ . substr($rs_tor[‘cdgo_torneo’], 0, 2) . ‘/’ . $rs_tor[‘cbv_torneo’]) . ‘» class=»list-group-item»><span class=»glyphicon glyphicon-save»></span> CBV</a>’;
  • echo ‘<a href=»‘ . base_url(‘partidas/’ . substr($rs_tor[‘cdgo_torneo’], 0, 4) . ‘/’ . $rs_tor[‘cbv_torneo’]) . ‘» class=»list-group-item»><span class=»glyphicon glyphicon-save»></span> CBV</a>’;

 


Proceso concluido

Los cambios se han realizado sin errores.

He comprobado los torneos, la navegación entre ediciones, el historial y el certamen cuando lo hay y el visor y descarga de partidas, y todo funciona aparentemente bien.

Si todo está correcto, con estos cambios ya estaría cambiado el código de torneo para la web Ajedrez en Madrid

Jul 25

Pensamiento adelantado

Ya sé que no he solucionado todavía el cambio de tamaño del código de torneo, aunque creo que voy por el buen camino.

Sin embargo se me amontonan en la cabeza los cambios que quiero hacer en el tema de generar los torneos de otra manera (con tablas de rondas y clasificaciones por separado) y que las noticias salgan automáticamente a partir de esas tablas.

Lo primero que se me ocurre es que las tablas de resultados y clasificaciones han de tener una clave común, que será el código de torneo al que pertenecen.

Además deben tener una fecha de referencia para la generación automática de noticias.

También habrá que distinguir la publicación de torneos de modo nuevo y antiguo, es decir, no creo que pueda cambiar los miles de torneos que tengo ya en la tabla al nuevo formato, ya que eso hay que hacerlo de uno en uno. Por lo tanto habrá que tener un campo que indique a la web si el visionado de ese torneo se va a hacer por el método antiguo o el nuevo.

De esta manera podré ir «modernizando» los datos de torneos tranquilamente.

Tal vez el problema surja con las noticias de torneos antiguos y la nueva forma de presentar las noticias, que se basará en la fecha del sistema y la fecha adjudicada a cada entrada de ronda y clasificación en las  correspondientes tablas.

 

Jul 25

Primeros pasos

Una vez he cambiado los códigos de torneo en los tres registros de prueba (cto.Madrid semifinal 18/19 – 2019050650, Alpedrete 2019 – 2019060200, Benasque 2019 – 2019070400) encuentro los primeros errores.

Da error en:

  • el include torneos/2020/19_benasque.txt.
  • views/muestra_torneo.php – línea 38

Sustituir la línea:

<?php include ‘torneos/20’ . substr($rs_tor[‘cdgo_torneo’], 0, 2) . ‘/’ . $rs_tor[‘info_torneo’]?>

 

 

por

<?php include ‘torneos/’ . substr($rs_tor[‘cdgo_torneo’], 0, 4) . ‘/’ . $rs_tor[‘info_torneo’]?>

 

 

Se trata de acceder al directorio torneos/2019, que en la versión actual da por hecho el 20 en la cadena de caracteres, y en la nueva versión, al venir ya el año incluido en el código, se coge el año completo. De esta manera podremos tener subdirectorios de torneos anteriores al año 2000.

Ahora la búsqueda de torneos anteriores y siguientes da errores porque esos torneos no tienen el nuevo formato. Para poder probar que la navegación es correcta voy a cambiar los torneos de Alpedrete 60+30 incluyendo en todos los dos dígitos del año delante del código, para comprobar la navegación entre torneos.

También hay que cambiar los códigos de anterior_torneo, siguiente_torneo, historial_torneo y certamen_torneo. Cambiando los campos de 8 a 10 posiciones, y luego modificando los datos incluyendo el 20 delante de cada código correspondiente.

El siguiente punto que no funciona es el enlace a Noticias publicadas. Esto se debe a que en la tabla de noticias el código de torneo con el 20 delante no existe.

Actualizo el dato de la noticia del torneo y funciona correctamente. Ahora está el tema de si hay que cambiar también el código de la noticia con el 20 delante, ya que esto puede afectar a la primera página que es donde se reflejan las noticias ???

Pensamiento

El objeto de esta reforma es poder publicar información de torneos anteriores al año 2000. Pero me pregunto si además de la información del torneo son necesarias noticias. Creo que no, así que, de momento, el código de noticia se queda en 8 posiciones.

Para modificar masivamente el campo torneo_noticia de la tabla noticias he utilizado la siguiente sentencia sql, haciendo referencia al torneo de Benasque de 2019.

UPDATE `tabla_noticias_8x8` SET `torneo_noticia`= CONCAT(’20’, torneo_noticia) WHERE torneo_noticia LIKE ‘19070400’

 

 

Esto podría servir para cambiar todos los campos en los que hay que añadir el 20 a los códigos de torneo en toda la tabla.

 

Llegados a este punto estoy pensando en volver a cargar las tablas originales y hacer un reemplazo masivo de todos los códigos de torneo, tanto en la tabla torneos como en la de noticias, incluyendo el 20 al inicio del campo.

Y a partir de ahí empezar a arreglar los problemas que puedan surgir. que supongo que harán referencia a las noticias de la primera página. Va a ser interesante este paso.