Visualizzazione dei risultati da 1 a 5 su 5

Discussione: query in funzione

  1. #1

    query in funzione

    salve,
    stò provando ad usare una query in una funzione ma non funziona.
    Sembra che la funzione non acquisisca i dati di connessione.
    Di seguito vi scrivo i file:

    config.php
    codice:
    $user = 'utente';
    $pass = 'password';
    $db = 'database';$server = 'localhost';
    funzioni.php
    codice:
    function prova($a) {
       $q = "select desc from tabella where id = '11'" ;
       $result = mysql_query($q, $connessione);
       while($default = mysql_fetch_array($result))
       {
       $desc = $default['desc'];
       }
     return $desc;
     }
    documento.php
    codice:
    $connessione = mysql_connect($server, $user, $pass);
    if (!$connessione) {
     die ('Non riesco a connettermi: ' . mysql_error());
    }
    $db_selected = mysql_select_db($db, $connessione);
    if (!$db_selected) {
     die ("Errore nella selezione del database: " . mysql_error());
    }
    
    $prova = 11;
    $test = prova($prova);
    echo "<script>alert('".$test."');</script>";
    dove sbaglio??

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Sbagli nel fatto che la funzione non ha idea di chi sia $connessione, non è nel suo scope.
    Devi passargli $connessione come parametro insieme a $prova, oppure fai diventare $connessione una variabile globale.

  3. #3
    ok, ti ringrazio.
    Quindi ho passato sia $connessione che $db_selected e funziona.

    Secondo voi in termini generali è meglio passare le variabili o renderle globali????

    e nel caso come si rende una variabile globale??

  4. #4
    Quote Originariamente inviata da DUMAX Visualizza il messaggio
    Secondo voi in termini generali è meglio passare le variabili o renderle globali????
    Assolutamente passarle come parametri alle varie funzioni per correttezza e chiarezza del codice ed anche per una maggiore funzionalità (una funzione deve essere autoconsistende e ricevere tutto querllo di chi ha bisogno piuttosto che attingere a variabili impostate chi sa dove).
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    perfetto. è tutto più chiaro adesso. grazie mille.

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.