Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di pappolo
    Registrato dal
    Mar 2003
    Messaggi
    251

    Problemi con variabile fuori da un loop

    Salve a tutti, ho un problemino con una variabile fuori da un loop... mi spiiego meglio

    Ho un db con dei voti, li estraggo come al solito con un loop e per ognuno di essi mi aggiorno una variabile che mi riporta la somma dei voti. Ogni somma così aggiornata mi popola poi un array.
    A fine ciclo avrò quindi un array con una serie di somme consecutive, tanti quanti sono i campi che estraggo.

    A questo punto il loop finisce, e io mi trovo a dover calcolare la media estraendo l'ultimo dato dell'array e dividendolo per il numero dei record, il problema è che fuori dal loop l'array è vuoto... come posso portarmi un suo valore al di fuori?

    Grazie a tutti

  2. #2

  3. #3
    prova a postare il codice..
    http://jkkl.netsons.org

  4. #4
    Utente di HTML.it L'avatar di pappolo
    Registrato dal
    Mar 2003
    Messaggi
    251
    si certo, non l'ho postato perchè sto lavorando all'interno di un software CMS, cmq

    prima del ciclo

    Codice PHP:
    $i=0;
    $somma_voti=0;
    $partite=array();
    $media_complessiva=array(); 
    All'interno del ciclo per ogni dato

    Codice PHP:
    if ( $record['field_' $field['field_id'] . '_value'] != NULL//controlla se la partita è stata giocata
    $i=$i+1;
    $somma_voti=$somma_voti$record['field_' $field['field_id'] . '_value']; // questo campo è il voto

    if ($i!=0)
    $media $somma_voti $i;
    $media round($media2);
    $partite[]=$i;
    $media_complessiva[]=$somma_voti 

    al di fuori del ciclo foreach poi volevo richiamare un elemento dei due array $partite e $media_complessiva ma sono tutti e due vuoti

    Codice PHP:
    $media_generale array_pop($media_complessiva);
    echo 
    'Media complessiva: ' $media_generale 

    Ah chiaramente, gli array si popolano correttamente all'interno del ciclo.

    Grazie ancora

  5. #5
    Codice PHP:
    if ($i!=0
    $media $somma_voti $i
    $media round($media2); 
    $partite[]=$i
    $media_complessiva[]=$somma_voti
    Non dovresti mettere un indice all'array?
    tipo $partite[$i]; ?
    http://jkkl.netsons.org

  6. #6

  7. #7
    Utente di HTML.it L'avatar di pappolo
    Registrato dal
    Mar 2003
    Messaggi
    251
    Originariamente inviato da filippo.toso
    Non vedo alcun ciclo nel codice che hai postato.
    è vero, perchè il ciclo è fatto dal motore del CMS ed è scritto secondo il loro motore...

    cmq te lo posto, è così, io posso interagire mettendo del codice php tra i tag < php >

    <foreach loop="$data['fields'] as $field">

    <td>



    <php>

    if ( $record['field_' . $field['field_id'] . '_value'] != NULL)

    $i=$i+1;

    $somma_voti=$somma_voti+ $record['field_' . $field['field_id'] . '_value'];



    </php>

    {$record['field_' . $field['field_id'] . '_value']}

    <php>if ($i!=0)
    $media = $somma_voti / $i;
    $media = round($media, 2);
    $partite[]=$i;
    $par=count($partite);



    </php>

    /td>



    </foreach>

  8. #8
    Vedi, il problema è che NON si tratta di cicli PHP ma del template engine del CMS.

    Per fare ciò che chiedi DEVI usare delle variabili globali, un sistema di repository centralizzato (es. db, file, sessioni, etc.) oppure gli strumenti messi a disposizione dal CMS stesso.

  9. #9
    Utente di HTML.it L'avatar di pappolo
    Registrato dal
    Mar 2003
    Messaggi
    251
    Ho capito, quindi devo capire il template engine come lavora... credevo fosse più immediato.

    Grazie

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.