Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Consigli script PHP

  1. #1
    Utente di HTML.it L'avatar di ilcollaboratore
    Registrato dal
    Oct 2013
    residenza
    Toscana
    Messaggi
    43

    Consigli script PHP

    Ragazzi devo estrarre dei dati dal database in base a che range di date inserisce l'utente. Quindi per non appesantire troppo la pagina volevo scrivere delle funzioni in un altro file php per poi richiamarle nel codice di origine. Ma quando vado a richiamare variabili esterne alla funzione mi dà l'errore che non riconosce le variabili (visto che quelle delle funzioni sono locali, e quelle esterne sono globali). Come risolvere questo problema visto che l'uso di global è sconsigliato?
    Vi posto il codice del file di appoggio (config.php):
    codice:
    <?php
    
    
    $host='localhost';//inserisci host
    $user='root';//utente MySql
    $pass='';//password MySql
    $db='test';//nome database
    
    
    $conn=mysql_connect($host,$user,$pass) or die("Impossibile connettersi a MySql");
    mysql_select_db($db,$conn) or die("Impossibile selezionare il database $db");
    
    
    $tabella_estrazioni='estrazioni';
    
    function sto($pos){
                $sql2="SELECT ".$pos." FROM ".$tabella_estrazioni." WHERE no='".$no."' AND data>='".$data_inizio."'<='".$data_fine."'";
                $risult2=@mysql_query($sql2,$conn) or die(mysql_error());
                $num2=@mysql_num_rows($risult2);
                if($num2==0){
                    echo "";
                    $ris2=array();
                }else{
                    while($row2=@mysql_fetch_array($risult2)){
                        $ris2[]=$row[$pos];
                        }
                    sort($ris2);
                    reset($ris2);
                    $ritardo2=$ris2[$num2];
                    echo "$ritardo2";
                    $ris2=array();
                    
                    return $ritardo2;
                }
            }
    }
    ?>
    Poi vi posto il codice sorgente (la prima parte in cima a tutto il codice, e la seconda il richiamo della funzione):
    codice:
    <?php
    include_once("config.php");
    
    
    if(!isset($_POST['submit']))
    {
        $sel_data_inizio="01/01/1945";
        $sel_data_fine=date("d/m/Y", time());
        
        $data_inizio=date("Y-m-d", strtotime(str_replace('/', '-', $sel_data_inizio)));
        $data_fine=date("Y-m-d", strtotime(str_replace('/', '-', $sel_data_fine)));
    
    
    }
    
    
    ?>
    codice:
    [...]
    if($num==0){
        echo "<tr><td>$no</td><td></td><td>".sto($pos)."</td><td></td><td></td></tr>";
        $ris=array();
    }
    [...]

  2. #2
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Passi le variabili globali che ti occorrono all'interno della funzione come argomenti della funzione stessa. Se la funzione modifica il paramtero attuale basta far precedere il parametro formale da &.

    Codice PHP:

    function add(&$value,$incremento=1){
        
    $value += $incremento;
    }

    $pippo 10;
    add($pippo,10);

    echo 
    $pippo//produce 20 
    Di norma però si tende ad evitare che una funzione modifichi il contenuto di un parametro attuale a meno che non sia strattamente necessario preferendo l'uso dell'istruzione return affinchè la funzione ritorni un valore.

    Siamo sempre troppo gelosi delle nostre grandi piccole opere! - Grino inedito.
    Lavori e Lavoretti

  3. #3
    Utente di HTML.it L'avatar di ilcollaboratore
    Registrato dal
    Oct 2013
    residenza
    Toscana
    Messaggi
    43
    No ma infatti, io volevo usare soltanto le variabili che sono definite all'esterno della funzione, semplicemente inserendole in una query per poi eseguirla. Quindi alla fine il mio obiettivo è soltanto prendere i valori delle variabili che sono esterne alla funzione, senza modificarli. Riguardo l'uso del return, il problema è che devo portare valori dall'esterno all'interno della funzione, e non viceversa. Quindi non saprei come fare. Adesso provo con l'inserimento delle variabili come parametri con il simbolo &.
    Se non ti rispondo significa che ha funzionato. Grazie mille!

Tag per questa discussione

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.