Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Ciclo while per creare un array

    Con il codice che riporto qui sotto voglio creare un array contenente tutte le date in cui si verifica un evento (es. concerto). Dal db estraggo la data di inizio, quella di fine e la frequenza con cui l'evento si verifica (ogni giorno, ogni 7 giorni ecc ...; la frequenza è un intero).
    La cosa funziona tranne che mi esclude dall'array la prima occorrenza dell'evento (la data iniziale); ad esempio, se il concerto è il 13 Sett, con repliche il 20 e il 27, nell'array mi ritrovo solo queste ultime due date.
    Sapete darmi un consiglio per includere tutte le date nell'array?

    $queryb = "SELECT UNIX_TIMESTAMP(inizio) AS inizio, UNIX_TIMESTAMP(fine) AS fine, frequenza, nome FROM agenda";
    $resultb = mysql_query($queryb, $db);
    while ($rowb = mysql_fetch_array($resultb)) {
    echo "

    " . $rowb['nome'] . "
    ";
    $b=$rowb['inizio'];
    while ($b<$rowb['fine']) {
    $b+=$rowb['frequenza']*86400;
    $arr=array($b);
    foreach ($arr as $valore) {
    echo date('d m Y',$valore) . "
    ";
    }
    }
    echo "</p>";
    }

  2. #2
    Utente di HTML.it L'avatar di *Ray*
    Registrato dal
    Oct 2000
    Messaggi
    495
    codice:
    $queryb = "SELECT UNIX_TIMESTAMP(inizio) AS inizio, UNIX_TIMESTAMP(fine) AS fine, frequenza, nome FROM agenda"; 
    $resultb = mysql_query($queryb, $db); 
    
    while ($rowb = mysql_fetch_array($resultb))
        { 
        echo "
    
    " . $rowb['nome'] . "
    "; 
        $b = $rowb['inizio']; 
        while ($b<$rowb['fine'])
            { 
            $b+ = $rowb['frequenza']*86400; 
            $arr = array($b); 
    
            foreach ($arr as $valore)
                { 
                echo date('d m Y',$valore) . "
    "; 
                } 
            } 
        echo "</p>"; 
        }
    Cosi' e' leggibile, spetta che ti dico

  3. #3
    Utente di HTML.it L'avatar di *Ray*
    Registrato dal
    Oct 2000
    Messaggi
    495
    Ma... che senso ha ??

  4. #4
    Utente di HTML.it L'avatar di *Ray*
    Registrato dal
    Oct 2000
    Messaggi
    495
    Oddio, forse ho capito quello che volevi fare, vediamo:

    codice:
    while ($rowb = mysql_fetch_array($resultb))
        { 
        echo "
    
    " . $rowb['nome'] . "
    "; 
    
        $timestampData = $rowb['inizio']; 
        $arrayDate = array($timestampData);
    
        while ($timestampData < $rowb['fine'])
            { 
            $timestampData += $rowb['frequenza'] * 86400; 
            $arrayDate = array_push($timestampData); 
            } 
    
        foreach ($arrayDate as $dataConcerto)
            echo date('d m Y', $dataConcerto) . "
    "; 
    
        echo "</p>"; 
        }

  5. #5
    Lo scopo è di avere in un array le date in cui si ripetono certi eventi (concerti, mostre, spettacoli ecc...); però nel modo in cui lo faccio ora non riesco a includere la data iniziale.

    Grazie

  6. #6
    Utente di HTML.it L'avatar di *Ray*
    Registrato dal
    Oct 2000
    Messaggi
    495
    PS: guarda che tu non creavi nessun array nel tuo codice, avevi un array a un valore ogni volta

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.