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

    qualcuno ke mi aiuta ad usare un codice contenente classi?

    Ciao...
    E' giunta ormai l'ora di avvicinarmi alle classi, e quindi mi sono letto una guida su html.it. Dopodicè mi sono scaricato un codice, ma non so proprio come utilizzarlo, cioè dovrei creare delle istanze?!
    Insomma...in che modo posso usare questo codice? (questo codice serve per l'accesso ad un db)

    Codice PHP:
    <?php
    /******************************************************************
      classe de connect com banco e dados                    
     ******************************************************************/

    //classe database
    class database{
    //**Atributos da classe database
     
    var $db_HOST "localhost";
     var 
    $db_USER "root";
     var 
    $db_PASS "";
     var 
    $banco   ""
     var 
    $CONST_ERRO "erro ao conectar no nosso banco"
     var 
    $dbc ;

      function 
    database()
       {
    //metodo construtor
         
    $this->connect_db();
       }

    //** metodos da classe database
      
    function connect_db()
       {
    //metodo de conexao
        
    $this->dbc mysql_connect($this->db_HOST,$this->db_USER,$this->db_PASS);
        
    $m mysql_select_db($this->banco,$this->dbc);
        return(
    $dbc);
       }  

      function 
    delete_db($table,$id)
       {
    //delete registro de table
        
    $tmp="delete from $table where id='$id'";
        
    $sts mysql_query($tmp,$this->dbc) or print mysql_error($this->CONST_ERRO);
        return(
    $sts);
       } 

      function 
    close_db ()
       {
    //fecha conexao com banco
        
    mysql_close($this->dbc);
       }

      function 
    insert_db ($campos,$valores,$tab)
       {
    //inserir dados no banco
        
    $inicio="INSERT INTO $tab(";
        
    $meio=") VALUES (";
        
    $fim=")";
        
    $valor sizeof($campos); //verifica o numero de elementos do array
        
    $strc="";
        for(
    $i=0;$i <= ($valor-1);$i++){
            
    $strc.="$campos[$i]";
            if(
    $i != ($valor-1)){
              
    $strc.=",";
            }
         }
        
    $strv="";
        for(
    $k=0;$k <= ($valor-1);$k++){
            
    $strv.="\"$valores[$k]\"";
            if(
    $k != ($valor-1)){
              
    $strv.=",";
            }
         }
        
    $insere="$inicio$strc$meio$strv$fim";
        
    $this->query_db($insere);
       }

      function 
    query_db($sql)
       {
    //executa query no banco
         
    return mysql_query($sql,$this->dbc);
       }

      function 
    reg_db($table)
       {
    //numero de registro da tabela
        
    $tmp="select * from $table";
        
    $sts mysql_query($tmp,$this->dbc) or print mysql_error($CONST_ERRO);
        
    $num mysql_num_rows($sts);
        return(
    $num);
       }

      function 
    id_db() 
       {
    // Metodo que retorna o ultimo id de um inser<87>+† 
         
    return mysql_insert_id($this->dbc); 
       } 

      function 
    affecte_db() 
       {
    //retorna o numero de linhas afetadas pela ultima consulta
        
    $tmp mysql_affected_rows();
        return(
    $tmp);
       }
      
      function 
    names_db()
       {
    //retorna os nomes dos bancos de  dados do servidor
         
    $tmp mysql_num_rows($this->dbc);
         return(
    $tmp);
       }

      function 
    drop_db($banco)
       {
    //apaga um banco de dados do servidor
        
    return mysql_drop_db($banco,$this->dbc);
       }

      function 
    num_rows_db($query)
       {
    //numero de registros de uma query
        
    $tmp mysql_num_rows($query);
        return(
    $tmp);
       }  


    };

    ?>

  2. #2
    Classe anche mal fatta per altro... ma dove l'hai presa?

    Niente fai un altro file prova.php con:

    codice:
    <?
    include_once('nome_del_file_di_quella_classe_li.php');
    
    $myobject = new database();
    
    $res = $myobject->connect_db();
    
    // etc tec
    
    ?>
    EDIT: niente mi so accorto che connect_db() viene chiamata subito nel costruttore... che porcheria, uhm sai cos'è il costruttore? E' quella funziona che ha lo stesso nome della classe, ecco viene eseguita automaticamente quando istanzi un oggetto di quella classe con $obj = new nomelcasse();

    Ma fa schifo e ti dico subito perchè: i aprametri di connessioni devi andarli a modificare direttamente all'interno della classe:

    codice:
    var $db_HOST = "localhost";
    var $db_USER = "root";
    var $db_PASS = "";
    Invece avrebbe dovuto prevedere delle funzioni per settarle di modo che potevi fare

    $myobject->connect($host, $user, $pass);

    Poi il resto non l'ho guardato bene ma spero ti sia stato di aiuto ugualmente.
    Concentrate on what cannot lie... The evidence. -- Gil Grissom

  3. #3
    L'ho presa qui , me l'ha indicato il mio capo, mha!

    Cmq grazie, ma ora che ho fatto come mi hai detto, nella pagina prova.php, dopo le linee di codice che mi hai indicato, ci devo mettere tutto quello che avrei messo normalmente per una query al db?

  4. #4
    aaah, ho capito, almeno credo! Funziona così....cn le classi dai la possibilità di creare le variabili di tipo database, e poi ti da la disponibilità di alcune funzioni per operare sul database stesso! figata :P

    In questo modo per fare una queri faccio così?
    Codice PHP:
    $sql "SELECT * FROM sagre WHERE 1";
    $res_1 $myobject->query_db($sql);

    if ( 
    mysql_num_rows($res_1))  {

        while (
    $row mysql_fetch_array($res_1)) {
            echo 
    $row[Denominazione]."
    "
    ;
        }

            } 
    Ciauz :P

  5. #5
    Eh sì nel tuo caso si tratta tecnicamente di un "wrapper" per mysql, ovvero quella classe dovrebbe frapporsi tra te e mysql, permettendoti di interfacciarti al db senza chiamare direttamente le funzioni mysql_xxx.

    Se fatta bene, quella classe dovrebbe fare in modo che tu non utilizzassi mai direttamente le funzioni mysql_xxx ( come invece hai fatto subito nell'ultimo post ), altrimenti non avrebbe raggiunto il suo scopo... Visto che quella fa un pò schifo, puoi provare a scriverne una tua
    Concentrate on what cannot lie... The evidence. -- Gil Grissom

  6. #6
    Infatti è quello che voglio fare, visto che quella che ho trovato in effetti è un po confusionaria! Almeno mi è servita un pò per capire un pò di cose.

    Quindi se faccio un codice fatto bene, ogni volta che voglio richiamare una funzione, una volta definita la variabile cn
    $myobject = new database();
    non devo fare altro che richiamare la funzione così?

    $myobject->funzione(variabili);

    Ciauz

  7. #7
    Sì sì!

    Invece se le chiami dentro ad altre funzioni della classe stessa devi usare

    $this->

    es:

    codice:
    class abc
    {
        var $nome;
    
        function abc()
        {
             $this->nome = "";
        }
    
        function fun1()
        {
        }
    
        function fun2()
        {
             .... $this->fun1() ....
        }
    }
    cmq trovi tutto e meglio anche nel manuale chm su www.php.net
    Concentrate on what cannot lie... The evidence. -- Gil Grissom

  8. #8
    Utente bannato
    Registrato dal
    Dec 2004
    Messaggi
    52

    Re: qualcuno ke mi aiuta ad usare un codice contenente classi?

    [supersaibal]Originariamente inviato da JackTNT

    [/supersaibal]
    Ciao , vorrei sapere anche io come si usa questa classe che sono in ricerca di classi più semplici per mysql.
    hai risolto come usarla mi protesti aiutare anche me?

    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.