• User

    Per ogni record il campo "piattelli" deve contenere l'array di tutti i piattelli della serie.

    per fare questo l'unica cosa che mi viene in mente al momento:

    [PHP]
    // crei una nuova variabile vuota da mettere in testa al ciclo che crea la lista piattelli della serie
    $piattelli = '';

    //all'interno del ciclo ci inserisci questa variabile creata ed inserendo l'array che dovrà contenere non dimenticare il . vicino il segno = in questo modo avrai la lista nella variabile $piattelli
    $piattelli .=
    [/PHP]

    non ho fatto nessuna prova ma teoricamente dovrebbe essere cosi (sempre se ho capito il problema)


  • User Attivo

    @ldgweb said:

    non ho fatto nessuna prova ma teoricamente dovrebbe essere cosi (sempre se ho capito il problema)

    In pratica riesco ad estrarre i dati dei piattelli per serie.
    Però dovrei inglobare il risultato finale, composto da 25 numeri per ogni serie in questo caso, proprio così
    Array piattelli: 1-1-0-0-1-0-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-0-0-1
    in una UNICA variabile.

    Il problema è che ci sono da inserire nel DB un numero di record indefiniti (dipende dalla scelta del tiratore), diciamo 6, e per ogni record nel campo "piattelli" inserire la variabile sopra citata.
    In pratica l'inserimento nel DB va fatto nel primo ciclo for. Rammento che stò considerando due cicli for. Il primo che mi indica la serie ed il secondo che estrapola i dati delle checkbox inviati dal form


  • User

    Appunto la struttura dovrebbe essere questa:

    [PHP]
    // primo ciclo
    for(){

    $piattelli = '';

    // secondo ciclo
    for(){

    // notare il puntino prima del simbolo =
    $piattelli .= 'valore ciclo';

    }

    mysql_query(insert into.... $piattelli );

    }
    [/PHP]


  • User Attivo

    OK grazie risolto.
    Sei stato gentilissimo ... di cuore.

    Alla prossima.


  • User Attivo

    @ldgweb said:

    Appunto la struttura dovrebbe essere questa:

    [php]
    // primo ciclo
    for(){

    $piattelli = '';

    // secondo ciclo
    for(){

    // notare il puntino prima del simbolo =
    $piattelli .= 'valore ciclo';

    }

    mysql_query(insert into.... $piattelli );

    }
    [/php]

    Scusa la confidenza ma ti saluto con un Ciao ...
    Ricordi l'inserimento dei dati nel DB?
    Adesso mi ritrovo col problema inverso. In pratica devo estrapolare tutte le serie fatte dall'utente, usare explode per prendere i valori numerici (rammento che il campo è di testo quindi la riga è la seguente 1-1-0-0-1-0-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-0-0-1), sommare il primo piattello, di seguito il secondo etc.., e tirare fuori una statistica per singolo piattello di tutte le serie.

    Scusa se chiedo troppo ma ti ringrazio anticipatamente.


  • User

    @mikslap said:

    Scusa la confidenza ma ti saluto con un Ciao ...
    Ciao figurati 😄

    Allora ho capito fino al punto di recuperare i valori numerici dal db con explode ma non ho capito sommarli con cosa tra loro??


  • User Attivo

    @ldgweb said:

    Ciao figurati 😄

    Allora ho capito fino al punto di recuperare i valori numerici dal db con explode ma non ho capito sommarli con cosa tra loro??

    Sommare i valori del primo piattello, secondo, terzo, etc..., di tutte le serie effettuate.
    Mi spiego meglio. Ogni serie contiene, nel campo "piattelli" del DB, la stringa scritta precedentemente. Dovrei sommare tutti i piatteli numero 1, 2, 3, etc... di ogni serie. Questo per fare una statistica, in percentuale, per ogni piattello.

    Spero sia stato più chiaro.


  • User

    Se devi sommare la serie 1-2-1-2-1-1-1-1-1 ecc..

    Dopo aver fatto l'explode avrai un array contenente tutti i piattelli esempio

    $piattello[0]
    $piattello[1]
    $piattello[2]
    $piattello[3]

    a questo punto crei un ciclo for in questo modo

    [PHP]
    $somma = 0;

    for(){
    $somma = $somma + $piattello*;
    }

    echo $somma; // <-- totale somma tra i vari piattelli

    echo count($piattello); // <-- totale serie

    [/PHP]

    Prova un pò e vediamo se vabbene 😄


  • User Attivo

    @ldgweb said:

    Se devi sommare la serie 1-2-1-2-1-1-1-1-1 ecc..

    Dopo aver fatto l'explode avrai un array contenente tutti i piattelli esempio

    $piattello[0]
    $piattello[1]
    $piattello[2]
    $piattello[3]

    a questo punto crei un ciclo for in questo modo

    [PHP]
    $somma = 0;

    for(){
    $somma = $somma + $piattello*;
    }

    echo $somma; // <-- totale somma tra i vari piattelli

    echo count($piattello); // <-- totale serie

    [/PHP]

    Prova un pò e vediamo se vabbene 😄

    Buon giorno ... innanzitutto.
    Se ho ben capito questo esempio mi restituisce la somma dei piattelli della singola serie. A me invece serve sommare il piattello numero uno
    (Es.: $serie[0] -> $piattello[0]; $serie[1] -> $piattello[0]; $serie[2] -> $piattello[0]; etc...) e poi di seguito il secondo, terzo, e così via.

    E' possibile farlo? Se non fosse possibile mi suggeriresti qualcosa?

    Grazie ancora per le celeri risposte e la disponibilità.


  • User

    Facciamo cosi scrivimi un risultato tipo dal database cosi come inserito e spiegami in che modo devi effettuare le operazioni ho bisogno di sapere proprio in che modo vengono salvate le informazioni nel database.

    Da quello che ho capito la steinga contiene dati:

    p-1-0-1-1-1-0 <-- questa è una serie

    p sta ad indicare i piattelli

    **1 **che corrisponde alla serie

    e numeri che seguono sono i vari colpi??

    e in un solo record avresti:

    p-1-0-1-1-1-0
    p-2-0-1-1-1-0
    p-3-0-1-1-1-0

    giusto??


  • User Attivo

    @ldgweb said:

    Facciamo cosi scrivimi un risultato tipo dal database cosi come inserito e spiegami in che modo devi effettuare le operazioni ho bisogno di sapere proprio in che modo vengono salvate le informazioni nel database.

    Da quello che ho capito la steinga contiene dati:

    p-1-0-1-1-1-0 <-- questa è una serie

    p sta ad indicare i piattelli

    **1 **che corrisponde alla serie

    e numeri che seguono sono i vari colpi??

    e in un solo record avresti:

    p-1-0-1-1-1-0
    p-2-0-1-1-1-0
    p-3-0-1-1-1-0

    giusto??

    NO.
    Allora iniziamo da "p-1-1" = nome campo checkbox dove "p-" è statico, "1" rappresenta la prima serie seguito da "1" che rappresenta il primo piattello. Quindi segue "p-1-2", "p-1-3", etc... per la prima serie; "p-2-1", "p-2-2", "p-2-3", etc...., per la seconda serie; etc.....

    Al DB arrivano i seguenti valori.
    id_tiratore = id univoco tiratore
    data = 2012-03-07
    piattelli = 1-1-1-1-1-0-0-1-0-1-1-1-1-1-0-1-1-1-1-1-1-1-1-1-1
    Questi sono i valori di una serie effettuata.


  • User

    Allora tu recuperi le varie serie di un determinato tiratore

    [PHP]
    $somma = array();
    $tot_piattelli = array();

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

    $data['piattelli']; // <- contiene i valori di una serie

    $piattelli[id serie] = explode('-', $data['piattelli']);
    $tot_piattelli[id serie] = count($piattelli[id serie]);
    $somma[id serie] = 0;

    for(){
    // se il piattello riporta il valore 1 aumento totale conteggio serie
    // in questo modo conteggio solo i piattelli con valore 1
    if($piattelli[id serie]* == 1){
    $somma[id serie]+1;
    }
    }

    // ora avrò il totale della prima serie che posso recuperare in questo modo
    // $somma[id serie];

    }

    // lista valori creati dalle varie funzioni sopra per capirne meglio

    echo print_r($somma); // lista totale conteggi piattelli con valore 1

    echo print_r($tot_piattelli); // lista totale conteggi piattelli con valore 1 e 0

    // il totale di tutte le serie con valore 1 lo recupererai cosi:
    echo array_sum($somma);

    // il totale generale di tutte le serie indipendentemente se con valore 0 o 1
    echo array_sum($tot_piattelli);

    [/PHP]


  • User Attivo

    Che intendi per $variabile[id serie].
    [id serie] è l'id (univoco) della serie o cosa?

    Comunque adesso faccio delle prove e ti posto tutto il mio codice.

    Grazie ancora.


  • User

    @mikslap said:

    Che intendi per $variabile[id serie].
    [id serie] è l'id (univoco) della serie o cosa?
    Si. 🙂


  • User Attivo

    @ldgweb said:

    Si. 🙂

    Così, però, faccio la somma delle serie. Cioè per ogni record della tabella, in cui il campo "piattelli" contiene i valori, sommo i valori precedentemente espolsi.
    Il mio intento invece è quello di sommare solo i primi piattelli di tutte le serie con conseguente somma dei secondi, terzi e così via.

    In pratica se mi ritrovassi una tabella con 53 campi:
    id,** id_tiratore**, data, p1, p2, p3, ...... p50 non dovrei fare altro che la selezione della tabella con la clausula SUM dei campi p1, p2, p3, p4, etc....

    Il risultato finale di tale operazione deve essere la percentuale, in base alle serie effettuate, dei piattelli 1,2,3,4,5,6,7,..... fino a max 50

    Il tuo script mi da questo risultato:
    Array
    Array
    0
    26
    Array
    Array
    0
    26
    Array
    Array
    0
    26
    Array
    Array
    0
    26
    Array
    Array
    tante volte per quante serie sono.

    Il ciclo for di cui non hai fatto cenno l'ho compilato in questo modo:
    for($i = 0; $i <= $tot_piattelli['id'] - 1; $i++) in modo da inizializzare l'array con 0 (zero) concludendolo con 24 o 49.


  • User

    a questo punto mi viene in mente di fare così:

    mi creo un array predefinito con i 50 valori

    $totale_piattelli = array(0 => 0, 1 => 0, 2 => 0, 3 => 0, ecc. fino a 49);

    avrò quindi un array con 50 chiavi tutte con valore iniziale a 0

    poi faccio una somma nel ciclo for sulle chiavi dell'arra corrispondenti:

    $totale_piattelli* + $piattello_ottentuo_da_explode*;

    in teoria l'explode quando divide 1-1-1-1 crea array partendo da 0

    $piattello[0] e la chiave array dovrebbe corrispondere al nostro array predefinito $totale_piattelli[0] trovandosi quindi in un ciclo sommerà la prima serie poi la seconda e così via se qualcosa non esiste di default è impostata cmq a 0