Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/05/2009, 17:18
Avatar de AnesGy
AnesGy
 
Fecha de Ingreso: mayo-2009
Mensajes: 518
Antigüedad: 15 años
Puntos: 19
Respuesta: ¿Crear una lista/menu de series?

Haz un query que saque todas los registros (si solo quieres los de una categoría, pues no saques el resto). Luego haz 26 (mas una si incluyes la ñ y mas otra si incluyes carácteres especiales como números y demás) arrays (o una matriz de arrays, solución que me gusta más.)

Si haces 26 matrizes tienes que usar nombres de variable dinámicos:

Código:
$matriz{$id_de_matriz}
Por tanto si $id_de_matriz vale 1, se referirá a la variable $matriz1

Si no, usa índices

Código:
$matrices[$id_de_matriz]
Por tanto si $id_de_matriz vale 1, se referirá al elemento de la matriz 1.


Las matrices pueden contener matrices dentro, ergo, explicaré el método de las matrices:

para crear la supermatriz ($matriz):

Código PHP:
$matriz=array("0-9" => array(),"Ñ"=>array()); //Así se tiene el elemento de los carácteres especiales y el de las Ñ.
//Si no se inicia la matriz $matriz vacía.
for ($i=0;$i<26;$i++){
 
$matriz[chr(65+$i)]=array(); //Crea con chr(codio ASCII) el índice del sistema.

Con esto ya tenemos el sistema casi hecho ahora:

Código PHP:
$result mysql_query($query,$link);//en $query está la pesquisa a la base de datos y en $link el identificador de enlace.
while($row=mysql_fetch_assoc($result)){//Estraemos elemento a elemento
 
$identificador strtoupper(substr(row['nombre'],0,1));//Cogemos el primer carácter
 
if(preg_match('/([A-ZÑ])/',$identificador) = 0){$identificador="0-9";}
 
//Con expresiones regulares comprobamos que el identificador sea correcto.
 
$matriz[$identificador][$row['id']=$row;
 
//o bien:
 //$matriz[$identificador][$row['nombre']=$row;

Para mostrar los datos haces un foreach($matriz[$id] as $j) y te saldrán los datos fluidamente.