Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: ricerca per lettera

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    314

    ricerca per lettera

    salve a tutti,
    ho una tabella che contiene delle canzoni, con una campo denominato lettera, dove ad ogni brano, nel momento dell'inserimento viene assegnata una lettera dell'alfabeto.
    Ora vorrei che in una pagina di ricerca dove sono presenti tutte le lettere dell'alfabeto, quando clicco su una lettera (esempio A) vengono stampate tutte le canzoni che hanno come lettera la A

    Vi mostro il file:


    Codice PHP:
    <?
    $query 
    mysql_query("SELECT * FROM musica_it");
    $num mysql_num_rows($query);
    ?>
    <? 
    if ($num == 0) { ?>


                <P align='center'>[b]<FONT color='#000000'>Non esistono brani musicali in archivio.</FONT>[/b]

                </P>


    <? } else { ?>
    <table border="0" width=100% cellspacing=1 cellpadding=2>
                  <tr>
                   <td width="75" height="18"></td>
                  </tr>
    </table>

    <table border="0" width=100% cellspacing=1 cellpadding=0>
                  <tr>
                       
                      <td height="18" class="label_titolo">Titolo</td>
                      <td height="18" class="label_titolo">Interprete</td>
                      <td width="20" height="18" align="center" valign="top"></td>
                      <td width="20" height="18" align="center" valign="top"></td>
                      <td width="20" height="18" align="center" valign="top"></td>
                  </tr>

     <tr>
                    <? while ($row=mysql_fetch_array($query)) { ?>
                    
    </td>
                    <td width="200" height="18" class="row_righe"><?php 
                    $titolo1 
    $row['titolo'];
                    
    $newtitolo wordwrap($titolo160"\n"1);
                    print 
    htmlspecialchars(stripslashes($newtitolo)); ?></td>
                    <td width="150" height="18" class="row_righe"><?php print $row['interprete'] ; ?></td>
    felix

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    314
    preciso che non voglio creare tante pagine quante sono le lettere dell'alfabeto.

    Vorrei, in effetti, creare una sola pagina dove sono presenti le lettere dell'alfabeto tipo.
    A B C D E F ecc.... lincabbili, e che quando clicco sulla lettera mi faccia una queri su tutti i campi che corrispondono alla lettera cliccata.

    Ad esempio se clicco sulla A mi appaiano tutti i brani delle canzoni che hanno come lettera A

    Scusatemi ma ho pensato di spiegarmi meglio (speriamo)
    felix

  3. #3
    Utente di HTML.it L'avatar di mariox
    Registrato dal
    Nov 2006
    Messaggi
    837
    prova così , lo scritto a grandi linee...

    Codice PHP:
    <? 
    $query 
    mysql_query("SELECT * FROM musica_it"); 
    $num mysql_num_rows($query); 
    ?> 
    <? if ($num == 0) { ?> 

     
                <P align='center'>[b]<FONT color='#000000'>Non esistono brani musicali in archivio.</FONT>[/b]
     
                </P> 

     
    <? } else { ?> 
    <table border="0" width=100% cellspacing=1 cellpadding=2> 
                  <tr> 
                   <td width="75" height="18"></td> 
                  </tr> 
    </table> 

    <table border="0" width=100% cellspacing=1 cellpadding=0> 
                  <tr> 
                        
                      <td height="18" class="label_titolo">Titolo</td> 
                      <td height="18" class="label_titolo">Interprete</td> 
                      <td width="20" height="18" align="center" valign="top"></td> 
                      <td width="20" height="18" align="center" valign="top"></td> 
                      <td width="20" height="18" align="center" valign="top"></td> 
                  </tr> 

    <tr> 
                    <? while ($row=mysql_fetch_array($query)) { ?> 
                     
    </td> 
                    <td width="200" height="18" class="row_righe"><?php 
    echo "<a href=\"view.php?id=$row[id]\">lettera $row['id']</a>";
                    
    $titolo1 $row['titolo']; 
                    
    $newtitolo wordwrap($titolo160"\n"1); 
                    print 
    htmlspecialchars(stripslashes($newtitolo)); ?></td> 
                    <td width="150" height="18" class="row_righe"><?php print $row['interprete'] ; ?>
    file view.php
    Codice PHP:
    <php
    $id=$_GET['id'];//recupero id dal link ABCDEF....
    ?>
    <? 
    $query 
    mysql_query("SELECT * FROM musica_it WHERE id LIKE='$id'); 
                    <? while (
    $row=mysql_fetch_array($query)) { ?> 
                     
    </td> 
                    <td width="
    200" height="18" class="row_righe"><?php 
                    
    $titolo1 = $row['titolo']; 
                    
    $newtitolo = wordwrap($titolo1, 60, "\n", 1); 
                    print htmlspecialchars(stripslashes(
    $newtitolo)); ?></td> 
                    <td width="
    150" height="18" class="row_righe"><?php print $row['interprete'] ; ?></td>

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    314
    Mi restituisce il seguente errore:
    Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:musica\musica_it2.php on line 62

    questa èla linea 62
    echo "<a href=\"view.php?id=$row[id]\">lettera $row['id']</a>";

    cmq GRAZIE PER LA RISPOSTA
    felix

  5. #5
    Utente di HTML.it L'avatar di mariox
    Registrato dal
    Nov 2006
    Messaggi
    837
    scusami bisogna togliere i singoli apici:
    echo "<a href=\"view.php?id=$row[id]\">lettera $row[id]</a>";

  6. #6
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Ciao Felice, se vuoi che lo script si sviluppi tutto in un'unica pagina, magari senza sprecare una query per andare a recuperare tutte le lettere per creare il menù, potresti fare così:

    Codice PHP:
    //controlla se è stata fatta una richiesta dal menu e verifica che il valore
    //passato in query string sia effettivamente un solo carattere alfabetico
    if(isset($_GET['l']) && preg_match('/^[A-Z]{1}$/i'$_GET['l'])) {
    $sql "SELECT * FROM tabella WHERE lettera = '{$_GET['l']}'";
    //esegui la query...
    }

    //stampa il menù dell'elenco alfabetico completo
    foreach(range('A''Z') as $l) echo "<a href=\"?l=$l\">$l</a> "

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    314
    Ho capito di essermi spiegato male.

    Allora, ho una pagina che mi mostra le varie lettere dell'alfabeto: A B C D E F ecc

    quando clicco su una lettera ad esempio la A vorreri che mi apparissero tutti i brani che hanno nella tabella il campo lettere valorizzato A.
    felix

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    314
    Ciao Neida,
    grazie a te ho risolto il problema.

    Grazie
    felix

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    314
    Ciao Neida,
    e se volessi che invece delle lettere da linkare ci fossero dell immagini?

    Mi spiego meglio, dato che ho delle immagini con delle lettere simpatiche, per quello che voglio fare io, vorre che invece delle lettere ci fossero queste immagini che ho.

    Grazie
    felix

  10. #10
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    E' semplicissimo. Metti di avere tante immagini (col nome delle lettere) per quante lettere disponi nel menu, magari con estensione .gif (ma non è necessario, va bene qualsiasi altro formato) nella cartella images, ad esempio, devi solo modificare l'output prodotto al foreach per il menu:

    Codice PHP:
    //stampa il menù dell'elenco alfabetico completo
    foreach(range('A''Z') as $l) echo "<a href=\"?l=$l\"><img src=\"images/$l.gif\" alt=\"$l\" /></a> "

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.