Visualizzazione dei risultati da 1 a 9 su 9

Visualizzazione discussione

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2017
    Messaggi
    117

    SQL / PHP - Variabile che cambia valore

    Buongiorno a tutti.
    Non sono esattamente nuovo ma ho perso il mio account e mi sono registrato nuovamente.
    Mi sono da poco approcciato a php e mysql quindi non sono molto ferrato ed ho riscontrato un problema al quale non riesco a venire a capo. Sto creando un gestionale di clientela assicurativa (sono un assicuratore) e nel mio ambito una polizza pu� venire sostituita da un'altra che successivamente pu� a sua volta essere sostituita da una terza, poi una quarta e cos� via.

    Il problema che riscontro � sul codice seguente (che potete verificare a questo link: http://www.axive.it/cliente.php?id=1).
    Il codice � strutturato (spero bene) per mostrare dal database, tabella "polizze", tutte le righe con stato "ATTIVA" oppure "SOSPESA" e, per ognuna di queste, mostrare eventuali righe sostituite da quella ATTIVA o SOSPESA.
    Il campo "sostituzione" dovrebbe significare "questa riga sostituisce la riga numero ... ".
    Esempio: riga 1 ha sostituzione 3, quindi sotto alla riga 1 devo visualizzare la riga 3; la riga 3 ha sostituzione 4, quindi sotto di essa vorrei la riga 4 (questa seconda parte, come vi scrivo alla fine, non ho idea di come implementarla senza compincollare codice 10 volte).
    Il problema � che, nella seconda istanza del ciclo while principale, viene successivamente mostrata una riga che non dovrebbe ed il motivo � (almeno credo) che la variabile $psostituzione cambia valore da "NULL" a "5" senza un apparente comando.
    Questa � la tabella attualmente: http://oi67.tinypic.com/r0b6op.jpg
    Come vedete, nel secondo while viene presa in considerazione la riga 2 e, nel momento in cui viene considerato il suo campo "sostituzione" (che � NULL), improvvisamente diventa 5 e questo di conseguenza fa mostrare anche la riga 5. Ho messo un po' di variabili in echo a giro per poter monitorare questa cosa.

    Riuscite a darmi una mano per favore? Non so che pesci prendere.
    Allo stesso modo, poich� come vi accennavo la riga 2 pu� essere sostituita dalla 3, la 3 dalla 4 e cos� via, vorrei che sotto ogni riga "ATTIVA" venisse mostrato l'elenco delle polizze che vengono a loro volta sostituite ma non ho idea di come fare senza copincollare un while dentro all'altro per 10 volte. Mi date un consiglio?

    Grazie mille.

    Codice PHP:
    <!-- RIASSUNTO POLIZZE -->
    <table style="text-align: center">
    <tr>
    <td>Compagnia</td>
    <td>Polizza</td>
    <td>Prodotto</td>
    <td>Stato</td>
    <td>Premio</td>
    <td>Rateazione</td>
    <td>Effetto</td>
    <td>Scadenza</td>
    <td>Oggetto</td>
    </tr>
    <?
    // Prende le polizze del cliente e smista i dati di ogni polizza in un array
    $datipolizze = @mysql_query("SELECT * FROM polizze WHERE cliente = $cid") or die (mysql_error()); 
    while(
    $polizza=mysql_fetch_array($datipolizze))
        {
        
    $pid $polizza['id'];
        
    $pcliente $polizza['cliente'];
        
    $pnumero $polizza['numero'];
        
    $pcompagnia $polizza['compagnia'];
        
    $pprodotto $polizza['prodotto'];
        
    $pagenzia $polizza['agenzia'];
        
    $pstato $polizza['stato'];
        
    $peffetto $polizza['effetto'];
        
    $pscadenza $polizza['scadenza'];
        
    $ppremio $polizza['premio'];
        
    $pfrazionamento $polizza['frazionamento'];
        
    $poggetto $polizza['oggetto'];
        
    $psostituzione $polizza['sostituzione'];
        
    // Mostra le polizze se attive o sospese
        
    if (($pstato == ATTIVA) or ($pstato == SOSPESA)) 
            {
            echo 
    "<tr>
            <td>ID "
    $pid$pcompagnia$psostituzione" SOST</td>
            <td>"
    $pprodotto"</td>
            <td>"
    $pagenzia" / "$pnumero"</td>
            <td>"
    $pstato"</td>
            <td>"
    $ppremio"</td>
            <td>"
    $pfrazionamento"</td>
            <td>"
    $peffetto"</td>
            <td>"
    $pscadenza"</td>
            <td>"
    $poggetto"</td>
            </tr>"
    ;
            }
        
    $psostituzione $polizza['sostituzione'];
        echo 
    " S"$psostituzione;
        
    // Se la polizza ne sostituise un'altra, la prende
        
    if ($psostituzione !== NULL)
            {
            
    $sostituzioni = @mysql_query("SELECT * FROM polizze WHERE id = $psostituzione") or die (mysql_error());
            if(
    $psostituita=mysql_fetch_array($sostituzioni))
                {
                
    $psid $psostituita['id'];
                
    $pscliente $psostituita['cliente'];
                
    $psnumero $psostituita['numero'];
                
    $pscompagnia $psostituita['compagnia'];
                
    $psprodotto $psostituita['prodotto'];
                
    $psagenzia $psostituita['agenzia'];
                
    $psstato $psostituita['stato'];
                
    $pseffetto $psostituita['effetto'];
                
    $psscadenza $psostituita['scadenza'];
                
    $pspremio $psostituita['premio'];
                
    $psfrazionamento $psostituita['frazionamento'];
                
    $psoggetto $psostituita['oggetto'];
                
    $pssostituzione $psostituita['sostituzione'];
                
    // Mostra la polizza sostituita
                
    echo "<tr style='color: orange'>
                <td>^- SOSTITUITA "
    $psostituzione" ID "$psid$pscompagnia$pssostituzione" SOSTITUZIONE</td>
                <td>"
    $psprodotto"</td>
                <td>"
    $psagenzia" / "$psnumero"</td>
                <td>"
    $psstato"</td>
                <td>"
    $pspremio"</td>
                <td>"
    $psfrazionamento"</td>
                <td>"
    $pseffetto"</td>
                <td>"
    $psscadenza"</td>
                <td>"
    $psoggetto"</td>
                </tr>"
    ;
                }
            }
        }
    ?>
    </table>
    Ultima modifica di fluxKami; 20-02-2017 a 11:47 Motivo: Precisazione

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.