Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Sommare valori

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    18

    Sommare valori

    Premetto che io ed il php non ci vogliamo tanto bene. Io ci provo ma per me è troppo difficile. A parte due cavolate non riesco a fare.
    Ora ho un problema che sono sicura che invece per voi è una cacchiata
    La questione è questa. Noi organiziamo visite presso monumenti e luoghi culturali.
    Devo realizzare una form di questo tipo:

    Nostro operatore
    Cliente
    Luogo e data visita
    Numero di partecipanti
    Costo visita
    Commissione x partecipante
    Tipo di pagamento
    Data pagamento.

    Ora, diciamo che fino a inserire nel db nome cliente, luogo ecc... potrei anche arrivarci.
    Il problema sorge per il fatto che mi chiedono di fare in modo che nella scheda di riepilogo si vedano i totali della commissione per partecipante + la visita.
    Faccio un esempio.
    Mettiamo che abbiamo organizzato un'ipotetica visita al colosseo per 10 persone.
    Costo visita 5 euro commissione per partecipante 1 euro, nello schema riepilogativo dovrebbe apparire:

    Nostro operatore: tal de tali
    Cliente: pinco pallo
    Luogo: colosseo Data: 01/01/2008
    Numero partecipanti: 10
    Costo visita: 5 euro
    Commissione x partecipante: 1 Euro
    Tipo pagamento: contanti
    Totale commissione: 10 euro
    Data pagamento:01/01/2008
    Totale ricevuto: 11 euro

    Tutto questo per le mie scarsissime conoscenze di php è veramente troppo

    Qualcuno sa indicarmi dove trovare un codici, una pagina un qualcosa che possa essermi di aiuto, considerato che sono veramente all'ABC???
    Non so più come fare!!!

  2. #2
    Scusa eh.... mai hai delle variabili numeriche.
    Ti basta fare una semplice moltiplicazione e successiva somma!

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    18
    Ecco... il problema non è questo.
    Fai finta di dover spiegare ad un bambino di 5 anni la moltiplicazione e l'addizione.
    Perché io sto esattamente a quel livello.
    In pratica, come devo sviluppare il codice?!?!? Come gestisco il db? Come gli dico moltiplica questo, somma quest'altro???
    Naturalmente fosse per me mi eviterei tutto e continuerei ad usare il pallottoliere, ma dall'alto esigono......

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    231

    consiglio...

    io ti consiglio di usare direttamente SQL quando lanci le query al DB.

    come hai detto, supponiamo che abbiamo 10 record, con dieci clienti che hanno fatto questa visita.

    Se vuoi sommare tutti i valori "Commissione x partecipante", esegui la seguente query:

    SELECT SUM(nome_campo_commissione) FROM nome_tabella

    ovviamente devi specificare anche le condizioni WHERE, se ci sono.

    Per esempio se devi vincolare il tutto alla data pagamento usi:

    SELECT SUM(nome_campo_commissione) FROM nome_tabella WHERE nome_campo_data_pagamento = '2007-01-01'

    la data è indicativa...

    Quindi, sai già come connetterti ad un database ed eseguire delle query?

    Se si, basta manipolare bene le query e in questo caso, non avrai bisogno di php per eseguire somme.

    Ti saluto Max
    http://www.mdlwork.com

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    18
    Lo so, sto per fare una domanda veramente idiota.
    Per inserire 10 record nel db, da form, dovrei inserire i 10 clienti uno per volta?
    Come faccio a dare da form il comando di inserire un determinato numero di record per la stessa visita?
    So, veramente una capra!!!!

  6. #6
    Forse ho capito male io, ma a lei non serve sommare dei valori estrapolati da un DB, ma fare alcuni conti in base al numero di clienti, al costo per cliente più una commissione fissa.

    Questo è un po' più di un SUM da DB. Non so come possa essere strutturata la tabella, ma suppongo che avrà un campo "numero_clienti", uno "costo_unitario" ed uno "commissione".
    Per cui il costo totale di una prenotazione sarebbe calcolato come segue:

    Codice PHP:
    /* Ometto la connessione al DB e la query di select */

    $totale = ($costo_unitario $commissione) * $numero_clienti
    Per aiutarti con del codice, Chloe, dovresti essere un po' più precisa.
    Come è strutturata la tabella del DB?
    Come pensi di strutturare la form? Se è già strutturata, perché non ne posti il codice?

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    18
    All'inizio pensavo di usare una form preesistente che era stata creata (naturalmente non da me) per la prevedita di biglietti, ma è una cosa veramente assurda che getta i dati in tre db diversi, quindi pensavo che ripartire da 0 non fosse un male.
    Pensavo ad una semplice form dove inserire operatore, cliente, totale partecipanti, costo unitatio, ns commissione, luogo, data, data pagamento, modalità pagamento, spese pos (se il pagamento è avvenuto con carta di credito).

    PS: grazie veramente per l'aiuto.

  8. #8
    Ora sono un po' incasinato.
    Lasciami qualche ora che ti rispondo con del codice.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    18
    Grazie, grazie, grazie, grazie!
    Sei gentilissimo! Ti devo un monumento!

  10. #10
    Capisco che pensare al fatto di andare a popolare 3 diversi DB con una sola form, possa sembrare strano..... ma guarda che di sicuro ci guadagni sul lungo termine.

    Mentre ti rispondevo, ieri pomeriggio, pensavo proprio che forse avresti avuto bisogno di più di una tabella.
    Pensavo come minimo ad una per le prenotazioni ed una per gli operatori.

    Ad ogni modo, proviamo lo stesso a fare qualcosa con una sola form ed un solo DB.
    Innanzi tutto andiamo a comporre la nostra form.

    Codice PHP:
    <?php
    // questa è la pagina form.php
        
    include ("array_vari.php");
    ?>
    <form name="prenotazione" action="prenotazione.php" enctype="multipart/form-data" method="post">
       <fieldset id="dati">
          <legend>Prenotazione OnLine</legend>
             


               <label for="Operatore">Operatore</label>
                  <select name="operatore" value="- Seleziona -">
    <?php
    for ($oper 0$oper count($array_operatori); $oper++;) 
    echo 
    "          <option value=\"$oper\">$array_operatori[$oper]</option>\n";
    >?        
                   </
    select>
             </
    p>
             


             


               <
    label for="cliente">Nominativo Cliente</label>
                 <
    input type="text" id="cliente" name="cliente" />
             </
    p>
             


               <
    label for="cliente">Luogo Visita</label>
                 <
    input type="text" id="luogo" name="luogo" />
             </
    p>
             


               <
    label for=\"data_gita\">Data Visita</label>
                  Giorno: 
                  <select name="
    day_gita" value="Seleziona -">
    <?php
    for (
    $d=1; $d<=31; $d++) 
                       echo "
    <option value=\"$d\">$d</option>\n";
    ?>
                   </select>
                   Mese : 
                   <select name="mese_gita" value="- Seleziona -">
                  <option value="01">Gennaio</option>
                  <option value="02">Febbrio</option>
                  <option value="03">Marzo</option>
                  <option value="04">Aprile</option>
                  <option value="05">Maggio</option>
                  <option value="06">Giugno</option>
                  <option value="07">Luglio</option>
                  <option value="08">Agosto</option>
                  <option value="09">Settembre</option>
                  <option value="10">Ottobre</option>
                  <option value="11">Novembre</option>
                 <option value="12">Dicembre</option>
               </select>
                   Anno : 
                   <select name="anno_gita" value="- Seleziona -">
    <?php
    for ($a=date("Y"); $a <= date("Y")+5$a++) 
    echo 
    "          <option value=\"$a\">$a</option>\n";
    >?
                   </
    select>
             </
    p>
             


               <
    label for="numvis">Numero Visitatori</label>
                 <
    input type="text" id="numvis" name="numvis" />
             </
    p>
             


               <
    label for="costovisita">Costo Unitario (&#8364;)</label>
                 
    <input type="text" id="costounit" name="costounit" />
             </
    p>
             


               <
    label for="commissione_unitaria">Costo Commissione per visitatore(&#8364;)</label>
                 
    <input type="text" id="costocomm" name="costocomm" />
             </
    p>
               <
    label for="pagamento">Metodo di Pagamento</label>
                  <
    select name="pagamento" value="- Seleziona -">
    <?
    php
    for ($mp 0$mp count($array_metodo_pagamento); $mp++;) 
    echo 
    "          <option value=\"$mp\">$array_metodo_pagamento[$mp]</option>\n";
    >?        
                   </
    select>
             </
    p>
             


               <
    label for=\"data_pagamento\">Data Pagamento</label>
                  Giorno: 
                  <select name="
    day_pag" value="Seleziona -">
    <?php
    for (
    $d=1; $d<=31; $d++) 
                       echo "
    <option value=\"$d\">$d</option>\n";
    ?>
                   </select>
                   Mese : 
                   <select name="mese_pag" value="- Seleziona -">
                  <option value="01">Gennaio</option>
                  <option value="02">Febbrio</option>
                  <option value="03">Marzo</option>
                  <option value="04">Aprile</option>
                  <option value="05">Maggio</option>
                  <option value="06">Giugno</option>
                  <option value="07">Luglio</option>
                  <option value="08">Agosto</option>
                  <option value="09">Settembre</option>
                  <option value="10">Ottobre</option>
                  <option value="11">Novembre</option>
                 <option value="12">Dicembre</option>
               </select>
                   Anno : 
                   <select name="anno_pag" value="- Seleziona -">
    <?php
    for ($a=date("Y"); $a <= date("Y")+5$a++) 
    echo 
    "          <option value=\"$a\">$a</option>\n";
    >?
                   </
    select>
             </
    p>
           </
    fieldset>

       <
    fieldset id="submit">
          <
    legend>Azione</legend>
                 <
    input id="azione" type="submit" value="Inserisci" name="azione" />
                 <
    input id="annulla" type="reset" value="Annulla" />
       </
    fieldset>
    </
    form>
    La pagina array_vari.php, che richiami prima di visualizzare la tua form, sarà così composta.
    Codice PHP:
    // questa è la pagina array_vari.php


    // array dei nominativi degli operatori
    $array_operatori[0] = "Nome1 Cognome1";
    $array_operatori[1] = "Nome2 Cognome2";
    $array_operatori[2] = "Nome3 Cognome3";
    $array_operatori[3] = "Nome4 Cognome4";
    $array_operatori[4] = "Nome5 Cognome5";


    // array dei metodi di pagamento
    $array_metodo_pagamento[0] = "Bonifico Bancario";
    $array_metodo_pagamento[1] = "Bollettino Postale";
    $array_metodo_pagamento[2] = "Carta di Credito";
    $array_metodo_pagamento[3] = "PayPal"
    Ora, partendo dal presupposto che la tua tabella in MySQL si chiami prenotazioni e che sia composta più o meno come segue:

    codice:
           id int NOT NULL auto_increment,
           data_visita timestamp,
           operatore INT(2),
           cliente text,
           luogo text,
           visitatori INT(3),
           metodo_pagamento INT(2),
           data_pagamento timestamp,
           costo_unit FLOAT(5,2),
           costo_comm FLOAT(5,2),
           costo_tot FLOAT(5,2),
           PRIMARY KEY(id)
    Andrai a recuperare le variabili passate da form nel seguente modo.
    Codice PHP:
     // questa è la pagina prenotazione.php

    // recuperi le variabili passate via POST
    $operatore $_POST['operatore'];
    $cliente $_POST['cliente'];
    $luogo $_POST['luogo'];
    $day_gita $_POST['day_gita'];
    $mese_gita $_POST['mese_gita'];
    $anno_gita $_POST['anno_gita'];
    $day_pag $_POST['day_pag'];
    $mese_pag $_POST['mese_pag'];
    $anno_pag $_POST['anno_pag'];
    $numvis $_POST['numvis'];
    $costounit $_POST['costounit'];
    $costocomm $_POST['costocomm'];
    $pagamento $_POST['pagamento'];

    // calcoli il timestamp delle deue date

    $data_visista mktime(000$mese_gita$day_gita$anno_gita);
    $data_pagamento mktime(000$mese_pag$day_pag$anno_pag);

    // calcolo dell'importo totale
    $totale = ($costounit $costocomm) * $numvis;

    /* 
    qui ti connetti al DB e selezioni la tabella prenotazioni 
    - ometto il codice -
    e ti scrivo solo la stringa SQL per l'inserimento nella tabella
    */


    $sql "
    INSERT INTO prenotazioni
    (data_visita, operatore, cliente, luogo, visitatori, metodo_pagamento, data_pagamento, costo_unit, costo_comm, costo_tot)
    VALUES (
    $data_visista, '$operatore', '$luogo', $numvis$pagamento$data_pagamento$costounit$costocomm$totale)
    "
    ;

    mysql_query($sql); 
    /* eccetera */ 
    Spero sia stato chiaro.
    Indubbiamente, la struttura della tabella non è assolutamente ottimizzata (intendo nel modo in cui sono definiti i tipi di dato).
    Ricorda che nell pagina degli array puoi aggiungere tutto quello che ti pare, magari pensando di aumentare i menu a tendina nella tua form (pensa per esempio ai costi che si possono applicare, se intendi metterli fissi e/o compresi in un certo range). Il metodo lo hai visto, quindi non dovrebbe essere difficile implementarlo.
    Altro appunto da NON SOTTOVALUTARE: non ho assolutamente tenuto conto del filtraggio dei dati passati dalla form!
    Gli aspetti di sicurezza li ottimizzerai una volta che l'applicazione per effettuare prenotazioni sia funzionante nella sua forma base.
    Visto che però si tratta di uno script che prevede lo scambio di soldi, mi raccomando: filtra ogni input!!!!

    OK.
    Credo sia tutto.
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

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.