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

    utilizzo di funzioni e include

    Salve a tutti, se possibile chiedo una delucidazione su una cosa.
    L'utilizzo di funzioni e include in php.

    Vi spiego...

    Ho una cosa del genere
    <?php include("inc/db_conn.php"); ?>
    <?php include("inc/session.php"); ?>
    <?php include("bin/function.php"); ?>

    Nel file function.php ho:
    function countArticoliRubrica($id_rubrica) {
    include("inc/db_conn.php");
    //$dbConn = new mysqli("localhost","root","username","pwd");

    $querySql_countArticoliRubrica = "SELECT * FROM articles WHERE id_rubrica = ".$id_rubrica;
    $result_countArticoliRubrica = $dbConn->query($querySql_countArticoliRubrica);
    $rows_countArticoliRubrica = $dbConn->affected_rows;

    echo $id_rubrica;

    //return $rows_countArticoliRubrica;
    };
    Per far funzionare questa funzione quando la richiamo devo o includere
    di nuovo il fle db_conn.php che contiene la cossessione o farla per ogni
    funzione. Impossibile credo che non ci sia possibilità di utilizzare la variabile della connessione che richiamo già nell'inclusione ?

    Grazie

  2. #2
    Alcuni consigli alla spicciolata:

    1) Usa la require, non la include: se un file che carichi con la include non viene trovato, non c'è nessun errore, salvo poi non funzionare il tuo codice che necessita del file mancante, mentre la require ti avvisa subito che il file non c'è.

    2) Usa require_once e non require per tuti i file che contengono delle librerie di funzioni, in questo modo puoi fare require_once dello stesso file anche in più punti del tuo codice essendo sicuro che verrà caricato una sola volta.

    3)per risolvere il problema che dici tu, passa semplicemente come ulteriore parametro la connessione che hai aperto; per capirci se in db_conn.php hai fatto

    $dbConn = new mysqli("localhost","root","username","pwd");

    allora cambia la tua funzione così:

    function countArticoliRubrica($dbConn, $id_rubrica) {
    //niente include di db_conn qui

    e richiamala così nel codice principale:

    $conteggio=countArticoliRubrica($dbConn, $id_rubrica);

    Ciao!
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  3. #3
    Grazie moltissimo per i suggerimenti.
    A proposito della variabile, ho pensato una cosa.....
    e se utilizzo una variable global nella funzione ? E' pericoloso utilizzare global per la connessione ?

    Grazie ancora

  4. #4
    Originariamente inviato da ld-web
    Grazie moltissimo per i suggerimenti.
    A proposito della variabile, ho pensato una cosa.....
    e se utilizzo una variable global nella funzione ? E' pericoloso utilizzare global per la connessione ?

    Grazie ancora
    E' una pessima idea usare la global per fare quello che dovresti fare con il passaggio di variabile ad una funzione...

    NON usare la global, è bene che le uniche variabili superglobali restino solo quelle di php: $_POST, $_GET, eccetera...

    Ciao!
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  5. #5
    Grazie ancora per i consigli.
    Sviluppo in asp/asp.net da 10 anni e anche se ho sviluppato in passato su LAMP
    sono un pò arruginito.


  6. #6
    Condivido con Shores, preferibile passare come parametro della funzione la variabile della connessione. A volte può essere utile utilizzare le variabili globali, ma in questo caso si può evitare ed è meglio.
    lucasweb.it
    web design & development >>>

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 © 2024 vBulletin Solutions, Inc. All rights reserved.