Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    169

    Anagrafica Clienti Pagamenti

    Ciao a Tutti,

    Ho questo problema che mi fà impazzire:

    Ho 2 tabelle, una anagrafica clienti e una Pagamenti, nella tabella clienti c'è la solita anagrafica id_cliente, nome, cognome, ecc... nella tabella pagamenti ci sono molteplici pagamenti associati allo stesso id_cliente, io ho già creato un pagina php con questa select:

    $sql="SELECT *
    FROM Clienti
    JOIN ClientiPagamenti
    ON Clienti.user_id=ClientiPagamenti.IDCliente
    WHERE Clienti.IDPartner=$IDRecuperato AND ClientiPagamenti.Pagamento<='2'
    ORDER BY Clienti.user_id DESC, ClientiPagamenti.Pagamento ASC
    ";

    mi restituisce:

    NomeCliente1 - Pagamento1 - Scadenza
    NomeCliente1 - Pagamento2 - Scadenza
    NomeCliente1 - Pagamento3 - Scadenza
    NomeCliente2 - Pagamento1 - Scadenza
    NomeCliente2 - Pagamento2 - Scadenza
    NomeCliente2 - Pagamento3 - Scadenza
    ecc...

    Io vorrei che mi restituisse una sola anagrafica cliente e sotto tutti i pagamenti così:

    NomeCliente1
    Pagamento1 - Scadenza
    Pagamento2 - Scadenza
    Pagamento3 - Scadenza

    NomeCliente2
    Pagamento1 - Scadenza
    Pagamento2 - Scadenza
    Pagamento3 - Scadenza


    Qualcuno mi può aiutare ?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di jcsnake
    Registrato dal
    Jun 2010
    Messaggi
    629
    Ciao, dovresti raggruppare...cambiando la query in questo modo...
    Codice PHP:
    $sql="SELECT *
    FROM Clienti
    JOIN ClientiPagamenti
    ON Clienti.user_id=ClientiPagamenti.IDCliente
    WHERE Clienti.IDPartner=
    $IDRecuperato AND ClientiPagamenti.Pagamento<='2'
    GROUP BY Clienti.user_id
    ORDER BY Clienti.user_id DESC, ClientiPagamenti.Pagamento ASC
    "


  3. #3
    NomeCliente1 - Pagamento1 - Scadenza
    NomeCliente1 - Pagamento2 - Scadenza
    NomeCliente1 - Pagamento3 - Scadenza
    NomeCliente2 - Pagamento1 - Scadenza
    NomeCliente2 - Pagamento2 - Scadenza
    NomeCliente2 - Pagamento3 - Scadenza

    sarà l'unica cosa che otterrai se usi join, ed è anche la soluzione corretta...sta a te quando vai a "stampare a video" i risultati, di stampare una volta sola l'anagrafica
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    169
    Ciao a tutti !

    avevo già provato con GROUP BY ... ma in questo modo mi visualizza solo il 1° pagamento per ogni cliente con l'anagrafica cliente .

    Sono arrivato anche io alla conclusione che bisogna agire sulla stampa a video facendo vedere una sola anagrafica per cliente... ma non so come fare posto il codice php:

    <table align="left" width="50%" border="0">
    <tr>
    <td></td> <td align="left"><u><?php echo $rows['Pagamento']; echo "&deg; Pagamento"; ?></u></td>
    </tr>

    <tr>
    <td align="right">Cliente: </td> <td align="left"><font color="#003366"><?php echo $rows['RagioneSociale']; ?> - <?php echo $rows['Nome']; ?> <?php echo $rows['Cognome']; ?></font></td>
    </tr>

    <tr>
    <td align="right">Localit&agrave;: </td> <td align="left"><?php echo $rows['Citta']; ?></td>
    </tr>

    <tr>
    <td align="right">Data Scadenza: </td> <td align="left"><?php echo $rows['DataScadenza']; ?></td>
    </tr>

    <tr>
    <td align="right">Stato Pagamento: </td> <td align="left"><font color="<?php echo $risultatopagamentocolore; ?>"><?php echo $risultatopagamento; ?></font></td>
    </tr>

    <tr>
    <td></td><td></td>
    </tr>

    <tr>
    <td><hr /></td><td><hr /></td>
    </tr>

    </table>

    Santino83_02 mi sai aiutare ?
    Grazie

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    169
    Nessuno sa aiutarmi ??

    Grazie

  6. #6
    Nel ciclo di lettura dei record restituiti dalla query: leggi l'anagrafica dai risultati, la stampi, ti segni che l'hai già stampata, cominci a stampare i pagamenti fino alla fine del ciclo.

  7. #7
    Se vuoi che ti esca quel risultato dovresti fare una UNION.
    Ma attento, il numero dei campi della prima query deve essere al numero dei campi della seconda.
    Quindi potresti mettere anche un campo vuoto di fianco a NomeClienteX.

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    169
    Grazie a tutti per le varie risposte...

    Ho capito i vari concetti ma non riesco a metterli in pratica, purtroppo la mia conoscenza di php è ancora troppo bassa... sto studiando!

    Qualcuno sa aiutarmi modificando il codice da me postato, o almeno darmi un inizio?

    Grazie a Tutti !!!

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    169
    Nessuno mi può aiutare ?

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2011
    Messaggi
    169
    ??

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.