Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/08/2015, 05:50
gaelv80
 
Fecha de Ingreso: agosto-2015
Mensajes: 21
Antigüedad: 9 años, 2 meses
Puntos: 1
recuperar valores con acento en la primera letra

Hola,

Estoy intentanto crear una página con una lista alfabética, de tal forma que cuando el usuario pincha en una letra obtiene todos los valores que empiezan por esa letra. Es decir, algo así:

A B C D E F G ...

(al pinchar en la A aparecería algo del tipo:)

Abelardo
Ana
Aníbal
...

El problema me surge con valores que empiezan por acento (por ejemplo: Álvaro), pues éstos no me aparecen en la lista.

El código que he creado es el siguiente:

Código PHP:
Ver original
  1. <?php
  2.                     //conexión con mi base de datos
  3.                                         include 'connection.php';
  4.                     doDB();
  5.                    
  6.                                         //lista alfabética
  7.                     $display_block = "<p align=\"center\">
  8.                         <a href=\"search_by_title.php?letter=A\"> A </a>
  9.                         <a href=\"search_by_title.php?letter=B\"> B </a>
  10.                         <a href=\"search_by_title.php?letter=C\"> C </a>
  11.                         <a href=\"search_by_title.php?letter=D\"> D </a>
  12.                         <a href=\"search_by_title.php?letter=E\"> E </a>
  13.                         <a href=\"search_by_title.php?letter=F\"> F </a>
  14.                         <a href=\"search_by_title.php?letter=G\"> G </a>
  15.                         <a href=\"search_by_title.php?letter=H\"> H </a>
  16.                         <a href=\"search_by_title.php?letter=I\"> I </a>
  17.                         <a href=\"search_by_title.php?letter=J\"> J </a>
  18.                         <a href=\"search_by_title.php?letter=K\"> K </a>
  19.                         <a href=\"search_by_title.php?letter=L\"> L </a>
  20.                         <a href=\"search_by_title.php?letter=M\"> M </a>
  21.                         <a href=\"search_by_title.php?letter=N\"> N </a>
  22.                         <a href=\"search_by_title.php?letter=O\"> O </a>
  23.                         <a href=\"search_by_title.php?letter=P\"> P </a>
  24.                         <a href=\"search_by_title.php?letter=Q\"> Q </a>
  25.                         <a href=\"search_by_title.php?letter=R\"> R </a>
  26.                         <a href=\"search_by_title.php?letter=S\"> S </a>
  27.                         <a href=\"search_by_title.php?letter=T\"> T </a>
  28.                         <a href=\"search_by_title.php?letter=U\"> U </a>
  29.                         <a href=\"search_by_title.php?letter=V\"> V </a>
  30.                         <a href=\"search_by_title.php?letter=X\"> X </a>
  31.                         <a href=\"search_by_title.php?letter=Z\"> Z </a>
  32.                         </p>";
  33.                    
  34.                     if ($_GET) {
  35.                    
  36.                     $letter = $_GET['letter'];
  37.                     $get_songs_sql = "SELECT song_title FROM songs WHERE song_title REGEXP '^$letter'";
  38.                     $get_songs_res = mysqli_query($mysqli, $get_songs_sql) or die (mysqli_error($mysqli));
  39.                     $number_of_results = mysqli_num_rows($get_songs_res);
  40.                    
  41.                     $display_block .= "<p style=\"font-size:15px\"><em>Se encontraron ".$number_of_results." resultados:</em></p>";
  42.        
  43.                         while ($song_info = mysqli_fetch_array($get_songs_res)) {
  44.                             $song_title = $song_info['song_title'];
  45.                             $display_block .= "$song_title<br/>";
  46.                            
  47.                         }
  48.                        
  49.                         mysqli_free_result($get_songs_res);
  50.                        
  51.                         }
  52.                    
  53.                     echo $display_block;
  54.                    
  55.                     mysqli_close($mysqli);
  56.        
  57.                 ?>

He decidido preguntar en el foro de Mysql (y no en el de PHP) porque entiendo que la solución estaría editando de alguna forma la parte de consulta SQL (en concreto, la expresión regular):

Código PHP:
Ver original
  1. $get_songs_sql = "SELECT song_title FROM songs WHERE song_title REGEXP '^$letter'";

Mis disculpas si no es así.

Alguna sugerencia?