Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 24
  1. #11
    No, index non deve assolutamente interagire col database, senno' la classe a che serve? La tua classe deve restituire un array con tutti i risultati estratti dal database, e in index devi solo scorrere quell'array per stamparli.

  2. #12
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    l'applicazione va suddivisa in layer, questo è un concetto che ti manca

    la logica non deve essere inserita all'interno delle viste, come ti ha detto k.b lì devi limitare ad inviare i dati da stampare.

    comunque se proprio vuoi iniziare affrontando il database, usa PDO per effettuare la connessione e tutto il resto...

    altrimenti quello che hai un semplice facade o.o

  3. #13
    il concetto l'ho capito ma nn riesco a implementarlo.
    il metodo select mi restituisce un array associativo giusto?
    come faccio a scorrere il risultato del metodo da un'altra "pagina"?

    per il discorso PDO, un pò già lo conosco.
    solo che devo giusto fare due pagine quindi pensavo di lasciarlo per un altro progetto un pò più grande.

  4. #14
    Originariamente inviato da fermat
    il concetto l'ho capito ma nn riesco a implementarlo.
    il metodo select mi restituisce un array associativo giusto?
    come faccio a scorrere il risultato del metodo da un'altra "pagina"?
    Nel metodo select scorri tutto il recordset restituito dalla query ed inserisci tutti i record in un array che sara' poi il valore di ritorno del metodo. Sara' questo grosso array di record che tu andrai a scorrere nella pagina di visualizzazione.

    Originariamente inviato da fermat
    per il discorso PDO, un pò già lo conosco.
    solo che devo giusto fare due pagine quindi pensavo di lasciarlo per un altro progetto un pò più grande.
    Ma scusa a maggior ragione se devi fare solo due pagine non ha senso che tu ti metta a reinventare la ruota creando la milionesima classe che interagisce con mysql, usa una libreria gia' fatta: fai prima e hai meno problemi.

    Pensavo che il tuo fosse un esercizio didattico, per fare due select stare a costruire una classe di astrazione non ha senso.

  5. #15
    bhe è un pò e un pò, nel senso che devo fare queste due pagine per un amico e ho pensato che potesse essere un buon esercizio.

    allora vado di PDO e vedo che riesco a fare!!

  6. #16
    allora mi sono documentato un pò:
    Codice PHP:
    <?php

    class Config {

        private 
    $host;
        private 
    $user;
        private 
    $pass;
        private 
    $db;

        public function 
    __construct() {
            
    $this->host '';
            
    $this->user '';
            
    $this->pass '';
            
    $this->db '';
        }

        public function 
    select() {
            
    $result = array();
            
    $strQuery "SELECT * FROM contatti";
            
    $dns "mysql:host" $this->host ";dbname=" $this->db ";user=" $this->user ";password=" $this->pass;
            try {
                
    $pdo = new PDO($dns);
                
    $stmt $pdo->query($strQuery);
                foreach (
    $stmt as $row) {
                    
    $result[] = $row;
                }
                return 
    $result;
            } catch (
    PDOException $e) {
                print 
    "Error!: " $e->getMessage() . "
    "
    ;
                die();
            }
        }

    }
    questa è la classe per la connessione che usa PDO.
    poi:
    Codice PHP:
    <?php
    <?php
    include_once 'config.php';
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>Email DB</title>
        </head>
        <body>
            <?php
            $result 
    = array();
            
    $select = new Config();
            
    $select->select();
            foreach (
    $select as $row) {
                
    $result $row;
            }
            
    ?>
        </body>
    </html>
    ottengo questo errore:
    Error!: SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

  7. #17
    ok ho messo a posto il config:
    Codice PHP:
    <?php

    class Config {

        private 
    $pdo;

        public function 
    __construct() {
            try {
                
    $this->pdo = new PDO('mysql:host=;dbname='"""");
            } catch (
    PDOException $e) {
                print 
    "Error!: " $e->getMessage() . "
    "
    ;
                die();
            }
        }

        public function 
    select() {
            
    $result = array();
            
    $strQuery "SELECT * FROM contatti";
            try {
                
    $stmt $this->pdo->query($strQuery);
                foreach (
    $stmt as $row) {
                    
    $result[] = $row;
                }
                return 
    $result;
            } catch (
    PDOException $e) {
                print 
    "Error!: " $e->getMessage() . "
    "
    ;
                die();
            }
        }

    }
    ottengo pagina bianca.
    penso che l'errore sia nell'iterazione, ma nn riesco a venirne a capo.

  8. #18
    ho fatto un passo avanti:
    Codice PHP:
        public function select() {
            
    $result = array();
            
    $strQuery "SELECT * FROM contatti";
            try {
                
    $stmt $this->pdo->query($strQuery);
                foreach (
    $stmt as $key => $row) {
                    
    $result[$key] = $row;
                }
                return 
    $result;
            } catch (
    PDOException $e) {
                print 
    "Error!: " $e->getMessage() . "
    "
    ;
                die();
            }
        } 
    in index:
    Codice PHP:
            <?php
            $result 
    = array();
            
    $select = new Config();
            foreach (
    $select->select() as $key => $row) {
                
    $result[$key] = $row;
                echo 
    $row;
            }
            
    ?>
    ottengo solo la scritta Array.

  9. #19

  10. #20
    ok allora:
    Codice PHP:
        public function select() {
            
    $result = array();
            
    $strQuery "SELECT * FROM contatti";
            try {
                
    $stmt $this->pdo->query($strQuery);
                
    $stmt->execute();
                
    $result $stmt->fetch(PDO::FETCH_ASSOC);
                return 
    $result;
            } catch (
    PDOException $e) {
                print 
    "Error!: " $e->getMessage() . "
    "
    ;
                die();
            }
        } 
    Codice PHP:
            <?php
            $result 
    = array();
            
    $select = new Config();
            foreach (
    $select->select() as $key => $row) {
                
    $result[$key] = $row;
                echo 
    $row;
            }
            
    ?>
    così ottengo il risultato ma in forma scomoda:
    1nomecognomeprova@email.itroma

    come faccio a separare i campi??

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