Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    prima lettera risultato query

    salve,
    devo fare l'elenco di tutte le lettere dell'alfabeto.
    ad ognuna delle lettere devo associare un link solo se nel risultato di una query la stessa lettera è presente come prima lettera di almeno uno dei record risultati della query.

    spero di essermi spiegato con chiarezza :-)

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Non tanto, forse mi sono perso.

    Vuoi dire che per esempio il link sulla lettera q deve esserci solo se tra i dati recuperati ce n'è almeno uno con una stringa tipo "questo è uno dei record"?

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Voltati
    Messaggi
    913
    Neanche io ho capito molto, ma per cercare nel db in base alla prima lettera...
    codice:
    SELECT * FROM tabella WHERE campo LIKE 'a%'
    (ho fatto la ricerca con la "a")
    No

  4. #4
    immaginavo :-)
    Praticamente ogni lettera è un link ad una pagina che sviluppa l'elenco dei nomi solo con l'iniziale corrispondente.
    Siccome ci sono sicuramente lettere iniziali non presenti nel risultato della query (per esempio w, k, y ..) volevo evitare che tali lettere fossero cliccabili.
    Vi scrivo la soluzione che ho trovato:

    <?php
    $query = "SELECT NOME FROM TABELLA ";
    $ris = mysql_query($query, $connessione) or die (mysql_error());
    while($nome = mysql_fetch_array($ris))
    {
    $lettera = substr($nome['NOME'], 0, 1);
    if ($lettera == 'A') { $a++; }
    if ($lettera == 'B') { $b++; }
    .....
    if ($lettera == 'Z') { $z++; }
    }

    ?>
    e poi così:

    <?php if ($a > 0) { echo '<a href="lettera_a.php">'; } ?><div <?php if ($a == 0) { echo 'style="background-color: #ccc; color: #FF0000; font-size: 50px;"'; } ?>>A</div><?php if ($a > 0) { echo '</a>'; } ?>
    ma se avete soluzioni migliori vi ringrazio.

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Voltati
    Messaggi
    913
    Io lo farei così:

    Codice PHP:
    $mysqli = new mysqli("localhost""usename""password""database");
    $lettere = [];
    for (
    $lettera "A"$lettera != "AA"$lettera++) {
        
    $res $mysqli->query("SELECT COUNT(*) as numero_righe FROM tabella WHERE campo LIKE '$lettera%'");
        
    $risultato $res->fetch_array();
        
    $lettere[$lettera] = $risultato["numero_righe"];

    e poi così:
    Codice PHP:
    foreach ($lettere as $lettera => $numero) {
        if (
    $numero 0) echo "<a href='lettera_" strtolower($lettera) . ".php'>";
        echo 
    "<div";
        if (
    $numero == 0) echo " style='background-color:#ccc; color:#ff0000; font-size:50px'";
        echo 
    ">$lettera</div>";
        if (
    $numero 0) echo "</a>";

    PS Come vedi ho usato mysqli anziché mysql, che in php5 mi sembra sia deprecato
    PPS Per postare del codice usa i tag [ code], [ html], [ php]
    PPPS Se il database è case-sensitive usa
    Codice PHP:
    "SELECT COUNT(*) as numero_righe FROM tabella WHERE campo LIKE '$lettera%' OR campo LIKE '" strtolower($lettera) . "%'" 
    come query
    PPPPS Quanti PS
    Ultima modifica di tampertools; 02-06-2014 a 20:03
    No

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.