Visualizzazione dei risultati da 1 a 9 su 9

Discussione: php e filtri

  1. #1

    php e filtri

    Ciao, se in una tabella denominata posta
    ho diversi campi con i cap postali
    e l'utente che logga in quel momento avendo come riferimento il cap 12XXX in automatico deve vedere tutti i cap 12XXX e non gli altri (ho già diviso le utenze) io non riesco a creare un codice funzionante che mi filtri i campi (non le tabelle) mi potreste aiutare?
    grazie in anticipo

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    posta la struttura delle tabelle... sembra quasi un semplice SELECT ... WHERE cap LIKE '12%' ..., ma dalla domanda parrebbe qualcosa di più complesso

  3. #3
    premetto che ho fatto le query con un software
    questo software mi crea anche un filtro.
    ti incollo il codice del filtro,
    Codice PHP:
    <form action="indirizzi.php" method="post">
    <table class="bd" border="0" cellspacing="1" cellpadding="4">
    <tr>
    <td>[b]Ricerca Personalizzata[/b]</td>
    <td><input type="text" name="filter" value="<?php echo $filter ?>"></td>
    <td><select name="filter_field">
    <option value="">Filtra Tutto</option>
    <option value="<?php echo "CAP" ?>"<?php if ($filterfield == "CAP") { echo "selected"; } ?>><?php echo htmlspecialchars("CAP"?></option>
    <option value="<?php echo "NOME" ?>"<?php if ($filterfield == "NOME") { echo "selected"; } ?>><?php echo htmlspecialchars("NOME"?></option>
    <option value="<?php echo "CREDENZIALI" ?>"<?php if ($filterfield == "CREDENZIALI") { echo "selected"; } ?>><?php echo htmlspecialchars("CREDENZIALI"?></option>
    <option value="<?php echo "N.CIVICO" ?>"<?php if ($filterfield == "N.CIVICO") { echo "selected"; } ?>><?php echo htmlspecialchars("N.CIVICO"?></option>

    </select></td>
    <td><input type="checkbox" name="wholeonly"<?php echo $checkstr ?>>Cerca Singola Parola</td>
    <td><input type="submit" name="action" value="Applica Filtro"></td>
    <td>[url="indirizzi.php?a=reset"]Reset Filtro[/url]</td>
    </tr>
    </table>
    </form>
    Ti rispiego: vorrei che in automatico la persona che entra con una determinata utenza (in automatico senza usare il filtro) mi veda solamente tutti gli utenti con la stessa utenza
    cioè se e' una persona appartiene all'utenza 12XXX deve vedere in automatico solo gli utenti con CAP 12XXX
    spero di essermi spegato bene

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    dovresti far capire come avviene il flusso di lavoro... per esempio quando l'utente si "logga" entra nella pagina che hai postato? e dove sta la query che legge i dati dal db? Inoltre questo "filtro automatico" deve essere "invisibile" all'utente o no?

    Posta le righe dove c'è la query (qualcosa come $query = 'SELECT ...';) plausibilmente nel file indirizzi.php (che forse contiene anche il form stesso)

  5. #5
    Codice PHP:


    <table class="tbl" border="0" cellspacing="1" cellpadding="5"width="100%">
    <tr>
    <td class="hr">[url="indirizzi.php?order=<?php echo "]&type=<?php echo $ordtypestr ?>"><?php echo htmlspecialchars("CAP"?>[/url]</td>
    <td class="hr">[url="indirizzi.php?order=<?php echo "]&type=<?php echo $ordtypestr ?>"><?php echo htmlspecialchars("NOME"?>[/url]</td>
    <td class="hr">[url="indirizzi.php?order=<?php echo "]&type=<?php echo $ordtypestr ?>"><?php echo htmlspecialchars("CREDENZIALI"?>[/url]</td>
    <td class="hr">[url="indirizzi.php?order=<?php echo "]&type=<?php echo $ordtypestr ?>"><?php echo htmlspecialchars("N.CIVICO"?>[/url]</td>
    <td class="hr"></td>
    <td class="hr"></td>
    </tr>
    <?php
      
    for ($i $startrec$i $reccount$i++)
      {
        
    $row mysql_fetch_assoc($res);
        
    $style "dr";
        if (
    $i != 0) {
          
    $style "sr";
        }
    ?>
    <tr>
    <td class="<?php echo $style ?>"><?php echo htmlspecialchars($row["CAP"]) ?></td>
    <td class="<?php echo $style ?>"><?php echo htmlspecialchars($row["NOME"]) ?></td>
    <td class="<?php echo $style ?>"><?php echo htmlspecialchars($row["CREDENZIALI"]) ?></td>
    <td class="<?php echo $style ?>"><?php echo htmlspecialchars($row["N.CIVICO"]) ?></td>
    <td class="<?php echo $style ?>">[url="indirizzi.php?a=view&recid=<?php echo $i ?>"]Dettagli[/url]</td>
    <td class="<?php echo $style ?>">[url="indirizzi.php?a=edit&recid=<?php echo $i ?>"]Modifica[/url]</td>
    </tr>
    <?php
      
    }
      
    mysql_free_result($res);
    ?>
    </table>
    Questa sono le query che vede l'utente quando entra in questa sezione del sito, oltre a cap, nome, credenziali, n.civico, c'è la funziona Dettagli (che visualizza delle cose in piu') e modifica
    spero di averti incollato tutto
    il filtro deve essere invisibile
    grazie

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    in realtà servirebbe la QUERY, cioè dove viene definita la variabile $res con qualcosa come SELECT ..., comunque...

    potresti fare comunque un'altra cosa:

    Codice PHP:
    <?php
      $j
    =0// DA USARE PER LO STILE DELLA TABELLA
      
    for ($i $startrec$i $reccount$i++)
      {
        
    $row mysql_fetch_assoc($res);
        
    $caputente '...'// IN QUESTO PUNTO DOVRESTI LEGGERE IL CAP DI RIFERIMENTO PRELEVANDOLO DAL DB O USANDO QUALCHE VARIABILE SETTATA IN PRECEDENZA
        
    $filtrocap substr($caputente02); // USA I PRIMI DUE CARATTERI COME FILTRO (es. 12xxx)
        
    $cap $row["CAP"]; // CAP DEL RECORD ATTUALE
        
    $flag = (substr($cap0strlen($filtrocap))==$filtrocap); // VERIFICA CHE INIZI COME IL "FILTRO"
        
    $style "dr";
        if (
    $j++ % != 0) {
          
    $style "sr";
        };
        
    // L'IF SEGUENTE MOSTRA LA RIGA SOLO SE IL CAP RISPONDE AL FILTRO
        
    if ($flag) {
    ?>
    <tr>
    <td class="<?php echo $style ?>"><?php echo htmlspecialchars($row["CAP"]) ?></td>
    <td class="<?php echo $style ?>"><?php echo htmlspecialchars($row["NOME"]) ?></td>
    <td class="<?php echo $style ?>"><?php echo htmlspecialchars($row["CREDENZIALI"]) ?></td>
    <td class="<?php echo $style ?>"><?php echo htmlspecialchars($row["N.CIVICO"]) ?></td>
    <td class="<?php echo $style ?>">[url="indirizzi.php?a=view&recid=<?php echo $i ?>"]Dettagli[/url]</td>
    <td class="<?php echo $style ?>">[url="indirizzi.php?a=edit&recid=<?php echo $i ?>"]Modifica[/url]</td>
    </tr>
    <?php
        
    };    
      }
      
    mysql_free_result($res);
    ?>
    per usare un filtro in PHP (cioè dal DB preleva tutto, ma poi "salti" i record che non vuoi mostrare)... la variabile $j è introdotta, perchè non si può più usare $i per lo stile della tabella, in quanto alcune righe verranno saltate. La variabile $caputente non posso sapere come inizializzarla... deve contenere il CAP di riferimento dell'utente loggato che sarà memorizzato da qualche parte nel DB.

  7. #7
    Non mi filtra nulla, e mi visualizza diversi errori, se ti mandassi un pm o una mail con il file php potresti darci un occhio? così evitiamo post chilometrici?

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    magari fai un paio di tentativi ancora... suppongo che errori e non filtraggio siano dovuti alla non corretta impostazione di $caputente... io direi di postare questi errori (se sono molti i primi)... se proprio non vien fuori nulla andiamo su PM con lo script...

  9. #9
    ho provato diverse soluzioni, o non mi carica la pagina o mi dice oggetto non trovato anche usando un codice abbastanza pulito, non mi da' nemmeno errori si di una specifica linea quindi non capisco

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.