• User

    Filtrare campi database

    Un saluto a tutti gli amici del Forum, mi sono appena iscritto su consiglio di un collega, avevo bisogno di un vostro aiuto per la risoluzione di un piccolo problema con un codice php, vengo subito al dunque, ho una pagina con due campi di ricerca texbox dove l'utente inserendo il proprio codice fiscale e il proprio id dovrebbe poter visualizzare i dati riguardanti il suo contratto. La query che ho scritto mi permette di stampare a video tutti i dati presenti nel database ma non riesco a filtrarli, vi posto il codice nella speranza di ricevere un aiuto.

    [php]
    // RECUPERA DATI DAL FORM
    $p_iva = $_POST["piva"];
    $id_an = $_POST["idan"];
    $query = mysql_query("SELECT accounts.id, accounts.name, accounts.billing_address_street, accounts.billing_address_city, accounts.billing_address_state, accounts.billing_address_postalcode, accounts.billing_address_country, accounts.rating, accounts.phone_office, accounts.phone_alternate, accounts_cstm.id_anagrafica_c, accounts_cstm.tipo_pagamento_c, accounts_cstm.data_firma_c, accounts_cstm.quota_associativa_c, accounts_cstm.data_incasso_c, accounts_cstm.piva_c, accounts_cstm.codice_fiscale_c, accounts_cstm.stato_adesione_c, accounts_cstm.data_invio_kit_c, accounts_cstm.stato_kit_associato_c, opportunities_cstm.op_codice_pod_c\n"
    . "FROM accounts, accounts_cstm, accounts_opportunities, opportunities_cstm\n"
    . "WHERE accounts.id = accounts_cstm.id_c\n"
    . "AND accounts.id = accounts_opportunities.account_id\n"
    . "AND accounts_cstm.piva_c = '$p_iva'\n"
    . "AND accounts_cstm.id_anagrafica_c = '$idan'");
    [/php]Thanks :ciauz:


  • Super User

    C'è un errore:
    $idan anzichè $id_an
    [php]
    ...
    . "AND accounts_cstm.id_anagrafica_c = '$id_an'");
    [/php]


  • User

    Ciao,
    nonostante abbia corretto la query come da te indicato mi viene sempre restituito il messaggio "Attenzione il codice inserito è errato", tengo a precisare di aver controllato e ricontrollato più volte sia la Partita Iva sia l'Id Anagrafica

    [PHP]
    // RECUPERA DATI DAL FORM
    $p_iva = $_POST["piva"];
    $id_an = $_POST["idan"];
    $query = mysql_query("SELECT accounts.,accounts_cstm.,accounts_opportunities.,opportunities_cstm.\n"
    . "FROM accounts, accounts_cstm, accounts_opportunities, opportunities_cstm\n"
    . "WHERE accounts.id = accounts_cstm.id_c\n"
    . "AND accounts_cstm.piva_c = '$p_iva'\n"
    . "AND accounts_cstm.id_anagrafica_c = '$id_an'");

    $quanti = mysql_num_rows($query);
    if ($quanti == 0)
    {
        echo "Attenzione il codice inserito è errato!";
    }
    else
    {
        for($x=0; $x<$quanti; $x++)
        {
            $rs = mysql_fetch_row($query);
            $id  = $rs[0];
            $name = $rs[1];
            $billing_address_street = $rs[2];
            echo "Ragione Sociale: " . $name . "<br>";
            echo "Indirizzo di Fatturazione " . $billing_address_street . "<br><br>";
        }
    }
    

    ?>
    [/PHP]

    Dove sbaglio? :arrabbiato:


  • Super User

    Inserisci

    [PHP]
    echo $query;
    [/PHP]

    e verifica che sia piva che idan siano corretti


  • User

    Allora per il momento ho risolto impostando la query in questo modo:

    [PHP]
    SELECT accounts.id, accounts.name, accounts.billing_address_street, accounts.billing_address_city, accounts.billing_address_state, accounts.billing_address_postalcode, accounts.billing_address_country, accounts.rating, accounts.phone_office, accounts.phone_alternate, accounts_cstm.id_anagrafica_c, accounts_cstm.tipo_pagamento_c, accounts_cstm.data_firma_c, accounts_cstm.quota_associativa_c, accounts_cstm.data_incasso_c, accounts_cstm.piva_c, accounts_cstm.codice_fiscale_c, accounts_cstm.stato_adesione_c, accounts_cstm.data_invio_kit_c, accounts_cstm.stato_kit_associato_c
    FROM accounts
    INNER JOIN accounts_cstm ON accounts.id = accounts_cstm.id_c
    [/PHP]

    Grazie per la disponibilità :ciauz: