Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di ispuk
    Registrato dal
    Jan 2009
    Messaggi
    1,026

    aiuto su classe semplice

    ciao stavo scrivendomi una classettina semplicissima per poter estrarre dati da un db

    il codice è questo

    Codice PHP:

    class EstraiBase
        
    {    
                
            function 
    Connect($host,$psw,$user,$nomedb)
                {                       
                                            
                    
    $con=mysql_connect($host,$psw,$user) or
                        die (
    "bla bla bla");
                        
                    
    mysql_select_db($nomedb$con) or
                        die (
    "bla bla bla");
                }
                
                function 
    select($query)
                {
                    
    $selectmysql_query($query);
                    
    $row=mysql_fetch_array($select);
                    echo
    ''.$row['pippo'];
                    }
                
                
        }                       
        
        
    $f=new EstraiBase();
        
    $f->Connect('localhost','io','lei','voi');
        
    $f->select("SELECT * FROM pluto"); 
    ho due domande

    la prima è :

    come mai mi estrae un unico dato quando la tabella di quel campo ne ha molti?non li dovrebbe stampare tutti con il fetch_array?
    la seconda domanda è

    come faccio a far si che il campo posso scegliermelo con una sorta di:
    $f->estrai($nome_campo); ovviamente implementando la classe con una nuova funzione su $row intendo


    scusate se posto delle domande banali ma sono abituato ad usare il metodo procedurale e non sono pratico sugli oggetti

  2. #2
    Utente di HTML.it L'avatar di ispuk
    Registrato dal
    Jan 2009
    Messaggi
    1,026
    ciao nessuno riesce ad aiutarmi?

    intanto ho trovato la risposta alla domanda 1vvero devo usare un ciclo while()

    sto cercando di andare avanti ma non trovo la soluzione

    ecco il nuovo codice

    Codice PHP:
    <?php
    class EstraiBase
        
    {    
             function 
    Connex($host,$psw,$user,$nomedb)
                {                       
                    
    $con=mysql_connect($host,$psw,$user) or
                        die (
    "bla bla bla");
                        
                    
    mysql_select_db($nomedb$con) or
                        die (
    "bla bla bla");
                }
                
                
                
                function 
    select($query,$campo_tab)
                {
                    
    $selectmysql_query($query);
                    while(
    $row=mysql_fetch_array($select))
                    {echo 
    $row['$campo_tab'];
                    }
                    
                
                
                }                       
        
        
    $f=new EstraiBase();
        
    $f->Connex('localhost','io','lei','voi');
        
    $f->select('"SELECT * FROM prova"','pippo');    
    ?>
    solo che non riesco a stampare niente

  3. #3
    il codice che hai scritto dovrebbe funzionare facendo una sola modifica

    $row=mysql_fetch_array($select, MYSQL_ASSOC) oppure

    $row=mysql_fetch_assoc($select)


    una delle due modifiche dovrebbe permetterti di recuperare il dato usando

    $row['$campo_tab'] come gia fai

    il problema e' che in questo momento tu potresti recuperare i dati solo attraverso l' indice
    ($row[0], $row[1] e cosi via) ma provi a recuperarli attraverso il nome del campo e quindi non ti stampa nulla

  4. #4
    Utente di HTML.it L'avatar di ispuk
    Registrato dal
    Jan 2009
    Messaggi
    1,026
    ciao si diciamo che ho risolto ma ,ti vorrei chiedere una cosa,come faccio a estrpolare l'array dalla funzione e dalla classe?

    se io faccio :
    Codice PHP:
    function estrai($query_select,$campo,$preHTML,$afterHTML)
                {
                    
    $select= @mysql_query($query_select);
                    while(
    $row=@mysql_fetch_array($select))
                    {echo
    ''$preHTML$row[$campo].$afterHTML;}
                } 
    funziona mi stampa quello che voglio ma se faccio
    Codice PHP:
    function estrai($query_select,$campo,$preHTML,$afterHTML)
                {
                    
    $select= @mysql_query($query_select);
                    while(
    $row=@mysql_fetch_array($select))
                    {
    $row_scelto=$preHTML.$row[$campo].$afterHTML;}
                 }

    //e poi sotto la classe scrivo ua semplice echo''.$row_scelto; 
    allora mi stampa un solo dato in barba al ciclo while della funzione in questione e al mysql_fetch_array

  5. #5
    Codice PHP:
    function estrai($query_select,$campo,$preHTML,$afterHTML)
    {

    $select= @mysql_query($query_select);
    while(
    $row=@mysql_fetch_array($select))
    {
    $row_scelto.=$preHTML.$row[$campo].$afterHTML;}


    fai attenzione perche' l' unico cambiamento e' il punto
    $row_scelto=$preHTML.$row[$campo].$afterHTML; all' interno del ciclo come hai fatto tu
    fa in modo che ad ogni ciclo la variabile venga riscritta ( ed infatti alla fine hai solo l' ultimo valore )

    mettendo .= invece di = fai in modo che ad ogni ciclo al valore della variabile venga accodato il nuovo valore (funziona allo stesso modo di += per gli incrementi)

    se dovessi avere problemi usa la versione estesa
    {$row_scelto=$row_scelto.$preHTML.$row[$campo].$afterHTML;}

  6. #6
    Utente di HTML.it L'avatar di ispuk
    Registrato dal
    Jan 2009
    Messaggi
    1,026
    mamma mia che finezza non ci avevo proprio pensato ,giustissimo

    ti ringrazio davvero tanto

    sono nuovo con la OOP devo dire che iniziando un pò a capire il meccanismo è decisamente più comoda ma più contorta rispetto al metodo procedurale, suppongo si possano creare classi che poi gestiscano un 'intera applicazione ,ottimo veramente

    ancora 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.