Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    134

    Interrogazione Database

    Salve a tutti ho un grosso problema:

    ho creato un database nella quale ci sono scritti i dati di alcuni clienti e un'altro dove ci sono delle polizze

    ho creato un campo ricerca tramite codice fiscale e tutto funziona a dovere... mi stampa tutti
    i dati necessari del cliente e delle polizze

    il mio problema e che se il cliente a piu' di una polizza sul database mi stampa 2 volte la voce cliente... ad esempio:

    Quello che vedo io:

    Cliente

    Polizza

    Cliente

    Polizza

    Quello che voglio vedere io:

    Cliente

    Polizza

    Polizza

    come dovrei fare? ora vi posto il codice

    Codice PHP:
    <html>
    <head>
    </head>
    <BODY bgcolor="#66FFFF">

    <?php

    include "config.php";

    $targa $_POST['targa'];
    $codfi $_POST['cod'];


    $cerca "SELECT * FROM clienti WHERE TARGA = '$targa' or CODICE_FISCALE = '$codfi'";
    $query mysql_query($cerca$db);

    while (
    $i mysql_fetch_array($query)) {
        
    //CLIENTE

    $COGNOME $i['COGNOME'];
    $NOME $i['NOME'];
    $DENOMINAZIONE $i['DENOMINAZIONE'];
    $CODICE_FISCALE $i['CODICE_FISCALE'];
    $PARTITA_IVA $i['PARTITA_IVA'];
    $DATA_RILASCIO_PATENTE $i['DATA_RILASCIO_PATENTE'];
    $INDIRIZZO $i['INDIRIZZO'];
    $CITTA $i['CITTA'];
    $PROVINCIA $i['PROVINCIA'];
    $CAP $i['CAP'];
    $TELEFONO_CASA $i['TELEFONO_CASA'];
    $TELEFONO_LAVORO $i['TELEFONO_LAVORO'];
    $FAX $i['FAX'];
    $CELLULARE $i['CELLULARE'];
    $EMAIL $i['EMAIL'];

        
    //POLIZZA
    $COMPAGNIA $i['COMPAGNIA'];
    $NRPOLIZZA $i['NRPOLIZZA'];
    $TIPO_INCASSO $i['TIPO_INCASSO'];
    $CLASSE_CU$i['CLASSE_CU'];
    $TARGA2$i['TARGA'];
    $TELAIO$i['TELAIO'];
    $GARANZIE_DI_POLIZZA$i['GARANZIE_DI_POLIZZA'];
    $PREMIO_INCASSATO$i['PREMIO_INCASSATO'];
    $PREMIO_RIMBORSATO$i['PREMIO_RIMBORSATO'];
    $DATA_EFFETTO$i['DATA_EFFETTO'];
    $DATA_SCADENZA_CONTRATTO$i['DATA_SCADENZA_CONTRATTO'];
    $DATA_INCASSO$i['DATA_INCASSO'];
    $FRAZIONAMENTO$i['FRAZIONAMENTO'];
    $MODALITA_PAGAMENTO$i['MODALITA_PAGAMENTO'];
    $COLLABORATORE$i['COLLABORATORE'];
    $PROVVIGIONI$i['PROVVIGIONI'];
    $DATA_VERSAMENTO$i['DATA_VERSAMENTO'];
    $SINISTRO$i['SINISTRO'];
    $ATTESTATO$i['ATTESTATO'];
    $NOTE$i['NOTE'];
    $STATO_TITOLO$i['STATO_TITOLO'];
    $CARICO_MESE$i['CARICO_MESE'];
    $VINCOLO$i['VINCOLO'];





    echo
    "<center><H3>CLIENTE</H3></center>
    <table border='9px' align='center'>

    <tr><td>[b]COGNOME: 
    $COGNOME </td>
    <td>[b]NOME: 
    $NOME </td>
    <td>[b]DENOMINAZIONE: 
    $DENOMINAZIONE </td></tr>
    <tr><td>[b]CODICE FISCALE: 
    $CODICE_FISCALE </td>
    <td>[b]PARTITA IVA: 
    $PARTITA_IVA </td>
    <td>[b]DATA RILASCIO PATENTE: 
    $DATA_RILASCIO_PATENTE </td></tr>
    <tr><td>[b]INDIRIZZO: 
    $INDIRIZZO </td>
    <td>[b]CITTA': 
    $CITTA </td>
    <td>[b]PROVINCIA: 
    $PROVINCIA </td></tr>
    <tr><td>[b]CAP: 
    $CAP </td>
    <td>[b]TELEFONO CASA: 
    $TELEFONO_CASA </td>
    <td>[b]TELEFONO LAVORO: 
    $TELEFONO_LAVORO </td></tr>
    <tr><td>[b]FAX: 
    $FAX </td>
    <td>[b]CELLULARE: 
    $CELLULARE </td>
    <td>[b]EMAIL: 
    $EMAIL </td></tr>



    </table>"
    ;



    echo 
    "<center><h3>POLIZZA</h3></center>";


    echo
    "<table border='9px' align='center'>
    <tr><td>[b]COMPAGNIA: 
    $COMPAGNIA </td>
    <td>[b]NR.POLIZZA: 
    $NRPOLIZZA </td>
    <td>[b]TIPO INCASSO: 
    $TIPO_INCASSO </td></tr>
    <tr><td>[b]CLASSE CU: 
    $CLASSE_CU </td>
    <td>[b]TARGA: 
    $TARGA2 </td>
    <td>[b]TELAIO: 
    $TELAIO </td></tr>
    <tr><td>[b]GARANZIE DI POLIZZA: 
    $GARANZIE_DI_POLIZZA </td>
    <td>[b]PREMIO INCASSATO: 
    $PREMIO_INCASSATO </td>
    <td>[b]PREMIO RIMBORSATO: 
    $PREMIO_RIMBORSATO </td></tr>
    <tr><td>[b]DATA EFFETTO: 
    $DATA_EFFETTO </td>
    <td>[b]DATA SCADENZA CONTRATTO: 
    $DATA_SCADENZA_CONTRATTO </td>
    <td>[b]DATA INCASSO: 
    $DATA_INCASSO </td></tr>
    <tr><td>[b]FRAZIONAMENTO: 
    $FRAZIONAMENTO </td>
    <td>[b]MODALITA PAGAMENTO: 
    $MODALITA_PAGAMENTO </td>
    <td>[b]COLLABORATORE: 
    $COLLABORATORE </td></tr>
    <tr><td>[b]PROVVIGIONI: 
    $PROVVIGIONI </td>
    <td>[b]DATA VERSAMENTO: 
    $DATA_VERSAMENTO </td>
    <td>[b]SINISTRO: 
    $SINISTRO </td></tr>
    <tr><td>[b]ATTESTATO: 
    $ATTESTATO </td>
    <td>[b]NOTE: 
    $NOTE </td>
    <td>[b]STATO TITOLO: 
    $STATO_TITOLO </td></tr>

    <tr><td>[b]DOCUMENTI:</td>
    <td>[b]CARICO MESE: 
    $CARICO_MESE</td>
    <td>[b]VINCOLO: 
    $VINCOLO </td></tr>
    </table>"
    ;



    }

    ?>


    </body>
    </html>

  2. #2
    Tab Clienti(id, cognome, nome, cf, ...)
    Tab Polizze(id, idCliente, compagnia, ...)

    $sql = select * from Clienti where ...
    $query = mysql_query($sql);

    while ($i = mysql_fetch_assoc($query)) {

    echo 'Cognome: '.$i['cognome'];
    ...

    $sql = select * from Polizze where idCliente = $i['id'] ...
    $query = mysql_query($sql);

    while ($j = mysql_fetch_assoc($query)) {

    echo 'Compagnia: '.$j['compagnia'];
    ...

    }
    }

  3. #3
    Codice PHP:
    query "select * from clienti left join polizze on polizze.cliid = clienti.id"# ovviamente usi i tuoi id..

    $res mysql_query($query);
    while(
    $array mysql_fetch_assoc($res)
    {

    # alla prima riga stampi il cliente e la polizza
    # dalla riga successiva stampi solo la polizza

    Ciao!

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    134
    Non riesco a farlo funzionare!! chi riesce a spiegarmelo meglio?

    Ma se i dati si trovassero tutti in una tabella? non è meglio?

  5. #5
    Ma se i dati si trovassero tutti in una tabella? non è meglio?
    No. E' una questione di corretta normalizzazione dei dati.

    Non riesco a farlo funzionare!! chi riesce a spiegarmelo meglio?
    Dipende da cosa vuoi fare funzionare. Se vuoi mantenere i dati in una sola tabella, per ottenere il risultato che speri puoi usare il while per creare 2 array: uno per i clienti e uno per le polizze. Con una seconda iterazione puoi quindi estrarre i clienti e, per ciascun cliente estrarre dal secondo array tutte le sue polizze. Questo procedimento però implica che esista una relazione tra i due array in modo da selezionare, per ogni elemento del primo tutti gli elementi del secondo che lo riguardano. Ma allora, tanto vale usare 2 tabelle separate direttamente nel database, le quali rappresentano già quella relazione.

    Date le 2 tabelle, puoi utilizzare indifferentemente la mia soluzione o quella più sintetica di
    fmortara

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    134
    ho capito però nella tabella polizze che cè il campo idCliente dovrei metterlo a mano... e io vorrei far tutto automatizzato...

  7. #7
    dal codice che hai postato non si evince come avvenga l'inserimento, ma anche ipotizzando che questo avvenga manualmente, se ogni volta che carichi una polizza esegui un select per conoscere l'id di un cliente, impieghi sicuramente meno tempo che per riscrivere tutti i suoi dati.

  8. #8

    Re: Interrogazione Database

    Originariamente inviato da slyover3
    Salve a tutti ho un grosso problema:

    ho creato un database nella quale ci sono scritti i dati di alcuni clienti e un'altro dove ci sono delle polizze

    ho creato un campo ricerca tramite codice fiscale e tutto funziona a dovere... mi stampa tutti
    i dati necessari del cliente e delle polizze

    il mio problema e che se il cliente a piu' di una polizza sul database mi stampa 2 volte la voce cliente... ad esempio:

    Quello che vedo io:

    Cliente

    Polizza

    Cliente

    Polizza

    Quello che voglio vedere io:

    Cliente

    Polizza

    Polizza

    come dovrei fare? ora vi posto il codice

    Codice PHP:
    <html>
    <head>
    </head>
    <BODY bgcolor="#66FFFF">

    <?php

    include "config.php";

    $targa $_POST['targa'];
    $codfi $_POST['cod'];


    $cerca "SELECT * FROM clienti WHERE TARGA = '$targa' or CODICE_FISCALE = '$codfi'";
    $query mysql_query($cerca$db);

    $counter 0;
    while (
    $i mysql_fetch_array($query)) {
        
    //CLIENTE

    $COGNOME $i['COGNOME'];
    $NOME $i['NOME'];
    $DENOMINAZIONE $i['DENOMINAZIONE'];
    $CODICE_FISCALE $i['CODICE_FISCALE'];
    $PARTITA_IVA $i['PARTITA_IVA'];
    $DATA_RILASCIO_PATENTE $i['DATA_RILASCIO_PATENTE'];
    $INDIRIZZO $i['INDIRIZZO'];
    $CITTA $i['CITTA'];
    $PROVINCIA $i['PROVINCIA'];
    $CAP $i['CAP'];
    $TELEFONO_CASA $i['TELEFONO_CASA'];
    $TELEFONO_LAVORO $i['TELEFONO_LAVORO'];
    $FAX $i['FAX'];
    $CELLULARE $i['CELLULARE'];
    $EMAIL $i['EMAIL'];

        
    //POLIZZA
    $COMPAGNIA $i['COMPAGNIA'];
    $NRPOLIZZA $i['NRPOLIZZA'];
    $TIPO_INCASSO $i['TIPO_INCASSO'];
    $CLASSE_CU$i['CLASSE_CU'];
    $TARGA2$i['TARGA'];
    $TELAIO$i['TELAIO'];
    $GARANZIE_DI_POLIZZA$i['GARANZIE_DI_POLIZZA'];
    $PREMIO_INCASSATO$i['PREMIO_INCASSATO'];
    $PREMIO_RIMBORSATO$i['PREMIO_RIMBORSATO'];
    $DATA_EFFETTO$i['DATA_EFFETTO'];
    $DATA_SCADENZA_CONTRATTO$i['DATA_SCADENZA_CONTRATTO'];
    $DATA_INCASSO$i['DATA_INCASSO'];
    $FRAZIONAMENTO$i['FRAZIONAMENTO'];
    $MODALITA_PAGAMENTO$i['MODALITA_PAGAMENTO'];
    $COLLABORATORE$i['COLLABORATORE'];
    $PROVVIGIONI$i['PROVVIGIONI'];
    $DATA_VERSAMENTO$i['DATA_VERSAMENTO'];
    $SINISTRO$i['SINISTRO'];
    $ATTESTATO$i['ATTESTATO'];
    $NOTE$i['NOTE'];
    $STATO_TITOLO$i['STATO_TITOLO'];
    $CARICO_MESE$i['CARICO_MESE'];
    $VINCOLO$i['VINCOLO'];




    if(
    $counter == 0) {

    echo
    "<center><H3>CLIENTE</H3></center>
    <table border='9px' align='center'>

    <tr><td>[b]COGNOME: 
    $COGNOME </td>
    <td>[b]NOME: 
    $NOME </td>
    <td>[b]DENOMINAZIONE: 
    $DENOMINAZIONE </td></tr>
    <tr><td>[b]CODICE FISCALE: 
    $CODICE_FISCALE </td>
    <td>[b]PARTITA IVA: 
    $PARTITA_IVA </td>
    <td>[b]DATA RILASCIO PATENTE: 
    $DATA_RILASCIO_PATENTE </td></tr>
    <tr><td>[b]INDIRIZZO: 
    $INDIRIZZO </td>
    <td>[b]CITTA': 
    $CITTA </td>
    <td>[b]PROVINCIA: 
    $PROVINCIA </td></tr>
    <tr><td>[b]CAP: 
    $CAP </td>
    <td>[b]TELEFONO CASA: 
    $TELEFONO_CASA </td>
    <td>[b]TELEFONO LAVORO: 
    $TELEFONO_LAVORO </td></tr>
    <tr><td>[b]FAX: 
    $FAX </td>
    <td>[b]CELLULARE: 
    $CELLULARE </td>
    <td>[b]EMAIL: 
    $EMAIL </td></tr>



    </table>"
    ;

    }


    echo 
    "<center><h3>POLIZZA</h3></center>";


    echo
    "<table border='9px' align='center'>
    <tr><td>[b]COMPAGNIA: 
    $COMPAGNIA </td>
    <td>[b]NR.POLIZZA: 
    $NRPOLIZZA </td>
    <td>[b]TIPO INCASSO: 
    $TIPO_INCASSO </td></tr>
    <tr><td>[b]CLASSE CU: 
    $CLASSE_CU </td>
    <td>[b]TARGA: 
    $TARGA2 </td>
    <td>[b]TELAIO: 
    $TELAIO </td></tr>
    <tr><td>[b]GARANZIE DI POLIZZA: 
    $GARANZIE_DI_POLIZZA </td>
    <td>[b]PREMIO INCASSATO: 
    $PREMIO_INCASSATO </td>
    <td>[b]PREMIO RIMBORSATO: 
    $PREMIO_RIMBORSATO </td></tr>
    <tr><td>[b]DATA EFFETTO: 
    $DATA_EFFETTO </td>
    <td>[b]DATA SCADENZA CONTRATTO: 
    $DATA_SCADENZA_CONTRATTO </td>
    <td>[b]DATA INCASSO: 
    $DATA_INCASSO </td></tr>
    <tr><td>[b]FRAZIONAMENTO: 
    $FRAZIONAMENTO </td>
    <td>[b]MODALITA PAGAMENTO: 
    $MODALITA_PAGAMENTO </td>
    <td>[b]COLLABORATORE: 
    $COLLABORATORE </td></tr>
    <tr><td>[b]PROVVIGIONI: 
    $PROVVIGIONI </td>
    <td>[b]DATA VERSAMENTO: 
    $DATA_VERSAMENTO </td>
    <td>[b]SINISTRO: 
    $SINISTRO </td></tr>
    <tr><td>[b]ATTESTATO: 
    $ATTESTATO </td>
    <td>[b]NOTE: 
    $NOTE </td>
    <td>[b]STATO TITOLO: 
    $STATO_TITOLO </td></tr>

    <tr><td>[b]DOCUMENTI:</td>
    <td>[b]CARICO MESE: 
    $CARICO_MESE</td>
    <td>[b]VINCOLO: 
    $VINCOLO </td></tr>
    </table>"
    ;


    $counter++;

    }

    ?>


    </body>
    </html>
    Vi aspetto sul mio sito
    creato per tutti coloro che necessitano di aiuto, scripts ecc.
    http://www.dbpersister.com
    http://principeorazio.wordpress.com/

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    134
    Grandeeeeeee Grazie con una cosa così semplice sei riuscito a togliermi tante rogne!!

  10. #10
    Originariamente inviato da slyover3
    Grandeeeeeee Grazie con una cosa così semplice sei riuscito a togliermi tante rogne!!

    figurati è stato un piacere
    Vi aspetto sul mio sito
    creato per tutti coloro che necessitano di aiuto, scripts ecc.
    http://www.dbpersister.com
    http://principeorazio.wordpress.com/

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.