SlideShare a Scribd company logo
Ricerca semplice
           in un archivio sequenziale
                (con html e php)




Stefano Floris           Pubblicato su
Versione ottobre 2011a   www.troppocurioso.altervista.org   1
Ricerca semplice
in un archivio sequenziale
     (con html e php)

    Preso in input un valore da cercare
       per esempio cognome=”Floris”,
      si intende per ricerca semplice,
          lo scorrimento dell'archivio
    e la visualizzazione di tutti i record
il cui campo cognome equivale a “Floris”.

                                             2
Questa opera è sotto licenza
        creativa (di tipo copyleft)
                Attribuzione-Non commerciale-
             Condividi allo stesso modo Generico.




Per vedere una copia del testo della licenza visita il sito
http://www.creativecommons.it/Licenze

Stefano Floris, 2011
www.troppocurioso.altervista.org
Ricerca semplice di dati
    in un archivio sequenziale



Noi ci occuperemo delle fasi evidenziate

● Analisi del problema (testo)
● Progettazione interfaccia

● Progettazione programma (diagr. a blocchi)

● Sviluppo

● Test

● Consegna

                                               4
Ricerca
    Prendiamo in esame due casi differenti e
alternativi di possibili metodi di ricerca di un dato
                     in archivio:

 1) Input del valore da cercare: una variabile


   2) Input del valore da cercare e input del
    campo sul quale cercare: due variabili
                                                        5
Struttura del record

              Nomi campi




Cognome      Nome          Classe   Sez   Indirizzo   Titolo          Argoment Gruppo/
                                                                      o        Individ.
Floris       Stefano       4        C     Mercurio    Energia: la     Energia   G
                                                      fonte
                                                      rinnovabile
                                                      migliore è il
                                                      risparmio


         Esempio di dati

                                                                                          6
Fasi di sviluppo
             del programma


● Analisi del problema
● Progettazione interfaccia

● Progettazione programma

● Sviluppo

● Test

● Consegna




                                7
Ricerca




1) Input del valore da cercare: una variabile




                                                8
Progettazione interfaccia
                        di ricerca
  1) Input del valore da cercare: una variabile
                                             ric_cogn.htm                       RICEVE: no
          ricerca.htm                                                           OUTPUT: no
                                            Ricerca per Cognome                 INPUT: ric_cogn
                                                                                ELABORA:no
      Scegli la ricerca:                    Digita il valore
      - Per Cognome                         da cercare                          INVIA a ris_cogn.php:
      - Per Classe                                                              ric_cogn
      - Per Sezione
                                              Conferma         Annulla
      - Per Titolo
      - Per Argomento
                                            indietro
                                                                                            ris_cogn.php
      …
      …                        Ecc.,
                                                                  Risultati ricerca
      indietro                 ecc.,                              per Cognome            RICEVE: ris_cogn
                               ecc.                               [XXXXXXX]              OUTPUT: dati trovati
                                                                                         INPUT: no
NOTE su questo progetto:                                                                 ELABORA:
1) È' il metodo piu' semplice
NOTE:
                                                                                         scorre archivio e
2) E' necessario realizzare due pagine                                                   verifica il campo
a) metodo piu' semplice (vedremo perchè)                                                 cognome
di sorgente per ciascun campo pagine di sorgente
b) è necessario realizzare due ricerca                            indietro
(input, risultati)
per ciascun campo ricerca (input, risultati)                                             INVIA : no     9
Ricerca




2) Input del valore da cercare e input del
 campo sul quale cercare: due variabili


                                             10
Progettazione interfaccia
                            di ricerca
        2) Input del valore da cercare e input del
         campo sul quale cercare: due variabili
             ricerca.htm       RICEVE: no
                               OUTPUT: no
         Scegli la ricerca:    INPUT: ric_campo,
         o Per Cognome          ric_valore
         o Per Classe          ELABORA:no
         o Per Sezione                                                     visualizza.php
         o Per Titolo          INVIA a ric_cogn.php:
                                                       Risultati ricerca
         o Per Argomento       ric_campo, ric_valore                       RICEVE: ric_campo,
                                                       per [ric_campo]
                                                       [ric_valore]        ric_valore
                                                                           OUTPUT: dati trovati
        Conferma     Annulla
                                                                           INPUT: no
         indietro                                                          ELABORA:
                                                                           scorre archivio e
                                                                           verifica il campo
                                                       indietro            e il valore
NOTE:
1) E' il metodo piu' complesso                                             INVIA : no
2) E' sufficiente realizzare due pagine di
sorgente per tutte le ricerche                                                                11
Fasi di sviluppo
              del programma


● Analisi del problema (testo)
● Progettazione interfaccia

● Progettazione programma (diagr. a blocchi)

● Sviluppo

● Test

● Consegna




                                               12
Struttura del record
                               Tenere presente la numerazione dei campi.
                               Dopo la lettura, si trasferisce il record in un vettore.
                               La posizione di ciascun campo nel vettore
                               si individua partendo da zero.
              Nomi campi

0            1         2             3    4           5               6          7

Cognome      Nome          Classe   Sez   Indirizzo   Titolo          Argomento Gruppo/
                                                                                Individ.
Floris       Stefano       4        C     Mercurio    Energia: la     Energia    G
                                                      fonte
                                                      rinnovabile
                                                      migliore è il
                                                      risparmio


         Esempio di dati

                                                                                           13
Sviluppo




1) Input del valore da cercare: una variabile




                                                14
Sviluppo ricerca

  1) Input del valore da cercare: una variabile
                         ris_cogn.php            $record = fGets($archivio);
   Risultati ricerca
   per Cognome         RICEVE: ric_cogn          $vrecord = explode($record);
   [ric_cogn]          OUTPUT: dati trovati
                       INPUT: no
                                                 While ! Eof($archivio) {
                       ELABORA:                      If $vrecord(1) = ric_cogn {
                       scorre archivio e                Echo …;
                       verifica il campo
                       cognome
                                                        Echo … ;
   indietro                                          }
                       INVIA : no                    // Record successivo
                                                     $record = fGets($archivio);
                                                     $vrecord = explode($record);
                                                 }


Nel nostro esempio la ricerca di un valore in un file sequenziale si può chiamare
visualizzazione condizionata dei dati letti. I dati nel file sequenziale vengono comunque
letti tutti ma la visualizzazione è condizionata dalla corrispondenza del valore del campo15
letto (record corrente, posizione 1=cognome) con il valore cercato.
Sviluppo




2) Input del valore da cercare e input del
 campo sul quale cercare: due variabili



                                             16
Sviluppo ricerca

      2) Input del valore da cercare e input del
       campo sul quale cercare: due variabili
                    visualizza.php         $record = fGets($archivio);
Risultati ricerca
per [ric_campo]     RICEVE: ric_campo,     $vrecord = explode($record);
[ric_valore]        ric_valore             While ! Eof($archivio) {
                    OUTPUT: dati trovati
                    INPUT: no                  If $vrecord(?) = ric_valore {
                    ELABORA:                      Echo …;
                    scorre archivio e             Echo … ;
                    verifica il campo
indietro            e il valore
                                               }
                                               // Record successivo
                    INVIA : no                 $record = fGets($archivio);
                                               $vrecord = explode($record);
                                           }



                                                                               17
Fine
segue approfondimento su
● ricerca su piu' campi (esempio Cognone + Nome)

● ricerca con risultato di un record o piu' record




                                                     18

More Related Content

More from High Secondary School

Php: riconoscere il dispositivo del client
Php: riconoscere il dispositivo del clientPhp: riconoscere il dispositivo del client
Php: riconoscere il dispositivo del client
High Secondary School
 
Php e database: php mysql
Php e database: php mysqlPhp e database: php mysql
Php e database: php mysql
High Secondary School
 
Da html in_poi, verso PHP
Da html in_poi, verso PHPDa html in_poi, verso PHP
Da html in_poi, verso PHP
High Secondary School
 
PHP: gestione file sequenziale
PHP: gestione file sequenzialePHP: gestione file sequenziale
PHP: gestione file sequenziale
High Secondary School
 
PHP: programmi gestionali, introduzione
PHP: programmi gestionali, introduzionePHP: programmi gestionali, introduzione
PHP: programmi gestionali, introduzione
High Secondary School
 
Visual basic: odbc su MySql
Visual basic: odbc su MySqlVisual basic: odbc su MySql
Visual basic: odbc su MySql
High Secondary School
 
Dal cacao al cioccolato
Dal cacao al cioccolatoDal cacao al cioccolato
Dal cacao al cioccolato
High Secondary School
 
Una bottega del Commercio Equo & Solidale
Una bottega del Commercio Equo & SolidaleUna bottega del Commercio Equo & Solidale
Una bottega del Commercio Equo & Solidale
High Secondary School
 
Comunità Scolastiche Sostenibili 2007
Comunità Scolastiche Sostenibili 2007Comunità Scolastiche Sostenibili 2007
Comunità Scolastiche Sostenibili 2007
High Secondary School
 
Visual Basic, Equazioni Sec Grado
Visual Basic, Equazioni Sec GradoVisual Basic, Equazioni Sec Grado
Visual Basic, Equazioni Sec Grado
High Secondary School
 
Visual Basic, modulo e sottoprocedure
Visual Basic, modulo e sottoprocedureVisual Basic, modulo e sottoprocedure
Visual Basic, modulo e sottoprocedure
High Secondary School
 
VB Cicli Lavoro Repeat
VB  Cicli  Lavoro  RepeatVB  Cicli  Lavoro  Repeat
VB Cicli Lavoro Repeat
High Secondary School
 
Blog Riferimenti Risorse (4)
Blog Riferimenti Risorse (4)Blog Riferimenti Risorse (4)
Blog Riferimenti Risorse (4)
High Secondary School
 
Blog Cosa E'?
Blog Cosa E'?Blog Cosa E'?
Blog Cosa E'?
High Secondary School
 
Blog Creazione
Blog CreazioneBlog Creazione
Blog Creazione
High Secondary School
 
Blog Manutenzione
Blog ManutenzioneBlog Manutenzione
Blog Manutenzione
High Secondary School
 
Contenuti WEB creati dagli Utenti
Contenuti WEB creati dagli UtentiContenuti WEB creati dagli Utenti
Contenuti WEB creati dagli Utenti
High Secondary School
 
Programmare In Visual Basic, prima lezione
Programmare In Visual Basic, prima lezioneProgrammare In Visual Basic, prima lezione
Programmare In Visual Basic, prima lezione
High Secondary School
 
Funzione se Incapsulata
Funzione se IncapsulataFunzione se Incapsulata
Funzione se Incapsulata
High Secondary School
 
Supermercato
SupermercatoSupermercato
Supermercato
High Secondary School
 

More from High Secondary School (20)

Php: riconoscere il dispositivo del client
Php: riconoscere il dispositivo del clientPhp: riconoscere il dispositivo del client
Php: riconoscere il dispositivo del client
 
Php e database: php mysql
Php e database: php mysqlPhp e database: php mysql
Php e database: php mysql
 
Da html in_poi, verso PHP
Da html in_poi, verso PHPDa html in_poi, verso PHP
Da html in_poi, verso PHP
 
PHP: gestione file sequenziale
PHP: gestione file sequenzialePHP: gestione file sequenziale
PHP: gestione file sequenziale
 
PHP: programmi gestionali, introduzione
PHP: programmi gestionali, introduzionePHP: programmi gestionali, introduzione
PHP: programmi gestionali, introduzione
 
Visual basic: odbc su MySql
Visual basic: odbc su MySqlVisual basic: odbc su MySql
Visual basic: odbc su MySql
 
Dal cacao al cioccolato
Dal cacao al cioccolatoDal cacao al cioccolato
Dal cacao al cioccolato
 
Una bottega del Commercio Equo & Solidale
Una bottega del Commercio Equo & SolidaleUna bottega del Commercio Equo & Solidale
Una bottega del Commercio Equo & Solidale
 
Comunità Scolastiche Sostenibili 2007
Comunità Scolastiche Sostenibili 2007Comunità Scolastiche Sostenibili 2007
Comunità Scolastiche Sostenibili 2007
 
Visual Basic, Equazioni Sec Grado
Visual Basic, Equazioni Sec GradoVisual Basic, Equazioni Sec Grado
Visual Basic, Equazioni Sec Grado
 
Visual Basic, modulo e sottoprocedure
Visual Basic, modulo e sottoprocedureVisual Basic, modulo e sottoprocedure
Visual Basic, modulo e sottoprocedure
 
VB Cicli Lavoro Repeat
VB  Cicli  Lavoro  RepeatVB  Cicli  Lavoro  Repeat
VB Cicli Lavoro Repeat
 
Blog Riferimenti Risorse (4)
Blog Riferimenti Risorse (4)Blog Riferimenti Risorse (4)
Blog Riferimenti Risorse (4)
 
Blog Cosa E'?
Blog Cosa E'?Blog Cosa E'?
Blog Cosa E'?
 
Blog Creazione
Blog CreazioneBlog Creazione
Blog Creazione
 
Blog Manutenzione
Blog ManutenzioneBlog Manutenzione
Blog Manutenzione
 
Contenuti WEB creati dagli Utenti
Contenuti WEB creati dagli UtentiContenuti WEB creati dagli Utenti
Contenuti WEB creati dagli Utenti
 
Programmare In Visual Basic, prima lezione
Programmare In Visual Basic, prima lezioneProgrammare In Visual Basic, prima lezione
Programmare In Visual Basic, prima lezione
 
Funzione se Incapsulata
Funzione se IncapsulataFunzione se Incapsulata
Funzione se Incapsulata
 
Supermercato
SupermercatoSupermercato
Supermercato
 

PHP, ricerca dati_in_file_sequenziali

  • 1. Ricerca semplice in un archivio sequenziale (con html e php) Stefano Floris Pubblicato su Versione ottobre 2011a www.troppocurioso.altervista.org 1
  • 2. Ricerca semplice in un archivio sequenziale (con html e php) Preso in input un valore da cercare per esempio cognome=”Floris”, si intende per ricerca semplice, lo scorrimento dell'archivio e la visualizzazione di tutti i record il cui campo cognome equivale a “Floris”. 2
  • 3. Questa opera è sotto licenza creativa (di tipo copyleft) Attribuzione-Non commerciale- Condividi allo stesso modo Generico. Per vedere una copia del testo della licenza visita il sito http://www.creativecommons.it/Licenze Stefano Floris, 2011 www.troppocurioso.altervista.org
  • 4. Ricerca semplice di dati in un archivio sequenziale Noi ci occuperemo delle fasi evidenziate ● Analisi del problema (testo) ● Progettazione interfaccia ● Progettazione programma (diagr. a blocchi) ● Sviluppo ● Test ● Consegna 4
  • 5. Ricerca Prendiamo in esame due casi differenti e alternativi di possibili metodi di ricerca di un dato in archivio: 1) Input del valore da cercare: una variabile 2) Input del valore da cercare e input del campo sul quale cercare: due variabili 5
  • 6. Struttura del record Nomi campi Cognome Nome Classe Sez Indirizzo Titolo Argoment Gruppo/ o Individ. Floris Stefano 4 C Mercurio Energia: la Energia G fonte rinnovabile migliore è il risparmio Esempio di dati 6
  • 7. Fasi di sviluppo del programma ● Analisi del problema ● Progettazione interfaccia ● Progettazione programma ● Sviluppo ● Test ● Consegna 7
  • 8. Ricerca 1) Input del valore da cercare: una variabile 8
  • 9. Progettazione interfaccia di ricerca 1) Input del valore da cercare: una variabile ric_cogn.htm RICEVE: no ricerca.htm OUTPUT: no Ricerca per Cognome INPUT: ric_cogn ELABORA:no Scegli la ricerca: Digita il valore - Per Cognome da cercare INVIA a ris_cogn.php: - Per Classe ric_cogn - Per Sezione Conferma Annulla - Per Titolo - Per Argomento indietro ris_cogn.php … … Ecc., Risultati ricerca indietro ecc., per Cognome RICEVE: ris_cogn ecc. [XXXXXXX] OUTPUT: dati trovati INPUT: no NOTE su questo progetto: ELABORA: 1) È' il metodo piu' semplice NOTE: scorre archivio e 2) E' necessario realizzare due pagine verifica il campo a) metodo piu' semplice (vedremo perchè) cognome di sorgente per ciascun campo pagine di sorgente b) è necessario realizzare due ricerca indietro (input, risultati) per ciascun campo ricerca (input, risultati) INVIA : no 9
  • 10. Ricerca 2) Input del valore da cercare e input del campo sul quale cercare: due variabili 10
  • 11. Progettazione interfaccia di ricerca 2) Input del valore da cercare e input del campo sul quale cercare: due variabili ricerca.htm RICEVE: no OUTPUT: no Scegli la ricerca: INPUT: ric_campo, o Per Cognome ric_valore o Per Classe ELABORA:no o Per Sezione visualizza.php o Per Titolo INVIA a ric_cogn.php: Risultati ricerca o Per Argomento ric_campo, ric_valore RICEVE: ric_campo, per [ric_campo] [ric_valore] ric_valore OUTPUT: dati trovati Conferma Annulla INPUT: no indietro ELABORA: scorre archivio e verifica il campo indietro e il valore NOTE: 1) E' il metodo piu' complesso INVIA : no 2) E' sufficiente realizzare due pagine di sorgente per tutte le ricerche 11
  • 12. Fasi di sviluppo del programma ● Analisi del problema (testo) ● Progettazione interfaccia ● Progettazione programma (diagr. a blocchi) ● Sviluppo ● Test ● Consegna 12
  • 13. Struttura del record Tenere presente la numerazione dei campi. Dopo la lettura, si trasferisce il record in un vettore. La posizione di ciascun campo nel vettore si individua partendo da zero. Nomi campi 0 1 2 3 4 5 6 7 Cognome Nome Classe Sez Indirizzo Titolo Argomento Gruppo/ Individ. Floris Stefano 4 C Mercurio Energia: la Energia G fonte rinnovabile migliore è il risparmio Esempio di dati 13
  • 14. Sviluppo 1) Input del valore da cercare: una variabile 14
  • 15. Sviluppo ricerca 1) Input del valore da cercare: una variabile ris_cogn.php $record = fGets($archivio); Risultati ricerca per Cognome RICEVE: ric_cogn $vrecord = explode($record); [ric_cogn] OUTPUT: dati trovati INPUT: no While ! Eof($archivio) { ELABORA: If $vrecord(1) = ric_cogn { scorre archivio e Echo …; verifica il campo cognome Echo … ; indietro } INVIA : no // Record successivo $record = fGets($archivio); $vrecord = explode($record); } Nel nostro esempio la ricerca di un valore in un file sequenziale si può chiamare visualizzazione condizionata dei dati letti. I dati nel file sequenziale vengono comunque letti tutti ma la visualizzazione è condizionata dalla corrispondenza del valore del campo15 letto (record corrente, posizione 1=cognome) con il valore cercato.
  • 16. Sviluppo 2) Input del valore da cercare e input del campo sul quale cercare: due variabili 16
  • 17. Sviluppo ricerca 2) Input del valore da cercare e input del campo sul quale cercare: due variabili visualizza.php $record = fGets($archivio); Risultati ricerca per [ric_campo] RICEVE: ric_campo, $vrecord = explode($record); [ric_valore] ric_valore While ! Eof($archivio) { OUTPUT: dati trovati INPUT: no If $vrecord(?) = ric_valore { ELABORA: Echo …; scorre archivio e Echo … ; verifica il campo indietro e il valore } // Record successivo INVIA : no $record = fGets($archivio); $vrecord = explode($record); } 17
  • 18. Fine segue approfondimento su ● ricerca su piu' campi (esempio Cognone + Nome) ● ricerca con risultato di un record o piu' record 18