Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    100

    Mi sapete dire cosa sbaglio

    Ciao a tutti,

    ho trovato in giro per il web, una classe che gestisce php, ed essendo essa molto semplice e quindi completamente modificabile ho deciso di provarla, ve la posto senza problemi
    Codice PHP:
    class DBO {
        
    /**************************************************
         * variabili per connessione al db
         **************************************************/
        
    private $dbName "cartolerianoceto";
        private 
    $dbHost "localhost";
        private 
    $dbUser "cartolerianoceto";
        private 
    $dbPassword "xxxxxxx";
        private 
    $dbConnection;
        private 
    $dbSelect;
        private 
    $dbResult;
        
        private 
    $attiva false;
        
        private 
    $msgErr = array();
        
        
    /**
         * **************************************************
         *
         * @param string $sql
         * @return $command
         */
        
    private function tipoQuery($sql) {
            
    $l strpos(trim($sql), " ");
          
    $command substr($sql,0,$l);
          return 
    strtoupper($command);
        }
        
        public function 
    connetti() {
            if(!
    $this->attiva) {
            
    $connessione mysql_connect($this->dbHost,$this->dbUser,$this->dbPassword);
                if (!
    $connessionearray_push($msgErr,'[b]Impossibile connettersi[/b]: '.mysql_error());
                else { 
                    
    $this->dbConnection $connessione;
                  
    $this->dbSelect mysql_select_db($this->dbName$this->dbConnection);
                     if (!
    $this->dbSelectarray_push($msgErr,'[b]Impossibile usare[/b] '.$this->dbName.' : ' mysql_error());
                    return 
    true;
                }    
            } else 
              if(
    count($msgErr)>0) return $msgErr;
        }
        
        public function 
    disconnetti() {
            if(
    $this->attiva)  
                if(
    mysql_close($this->dbConnection)) {
                    
    $this->attiva false;
                    return 
    true;
                } else return 
    false;
         }
         
         
    //funzione per l'esecuzione delle query 
        
    public function query($sql) {
            if(isset(
    $this->attiva)) {        
                if ( (
    $val $this->tipoQuery($sql)) == "SELECT"
                    
    $this->dbResult mysql_query($sql) or die (mysql_error());
                else {
                    
    mysql_query("BEGIN");
                    
    $this->dbResult mysql_query($sql);
                    if(!
    $this->dbResult) {
                    
    mysql_query("ROLLBACK");
                    die (
    mysql_error());
                } else 
    mysql_query("COMMIT");
                }              
                return 
    $this->dbResult;
            } else return 
    false
        }
        
        
    //Estrai i dati
        
    public function estrai($result$limit=0) {      
            
    $array = array();
            
    $r = array();
            if ( isset( 
    $this->attiva ) ) { 
                while ( 
    $rows mysql_fetch_assoc($result) )
                    
    array_push($array,$rows);                  
                return 
    $array;
                if ( 
    $limit == 1) { 
                    foreach ( 
    $array as $key => $value 
                      
    $r[$key] = $value;
                    return 
    $r[0];         
                } else return 
    $array;
            }            
        }
        
        public function 
    conta($r){
          return 
    mysql_num_rows($r);
        }

    Adesso il mio problema, dopo avere incluso la classe nella mia pagina, ho eseguito una stupidissima query con il seguente codice
    Codice PHP:
    include('../lib/class.db.php');
    $db = new DBO;
    if (
    $db->connetti()===true){
      
    $sql_all="SELECT * FROM images WHERE 1";
        
    $result $db->estrai($db->query($sql_all));
        if (
    count($result)>0){
            foreach(
    $result as $v)
              echo 
    "[*]".$v['thumb'].$v['image']."";
        } else echo 
    "[*]Nessuna immagine disponibile";
      
    $db->disconnetti();

    Ma nonostante io esegua correttamente la query, essa mi ritorna una sola riga invece di due

    Ringrazio tutti in anticipo

  2. #2
    Secondo me qui c'è un errore

    Codice PHP:
    if ($db->connetti()===true){ 
      
    $sql_all="SELECT * FROM images WHERE 1"
    prova

    Codice PHP:
    if ($db->connetti()===true){ 
      
    $sql_all="SELECT * FROM images WHERE tuocampo = 1"
    MEMENTO AUDERE SEMPER
    Maxxl

    www.maxxl.it

  3. #3
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    Originariamente inviato da maxxl
    Secondo me qui c'è un errore

    Codice PHP:
    if ($db->connetti()===true){ 
      
    $sql_all="SELECT * FROM images WHERE 1"
    prova

    Codice PHP:
    if ($db->connetti()==true){ 
      
    $sql_all="SELECT * FROM images WHERE tuocampo = 1"
    no questo non è un errore è come dire WHERE true eventualmente togli lo where "SELECT * FROM images" ma fa lo stesso l'errore non sta li

    eventualmete subito dopo questo $result = $db->estrai($db->query($sql_all)); fai un "echo count($result)"

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    100
    Originariamente inviato da maxxl
    Secondo me qui c'è un errore

    Codice PHP:
    if ($db->connetti()===true){ 
      
    $sql_all="SELECT * FROM images WHERE 1"
    prova

    Codice PHP:
    if ($db->connetti()===true){ 
      
    $sql_all="SELECT * FROM images WHERE tuocampo = 1"
    Non cambia nulla... non vorrei che il problema fosse nella classe
    dove c'è estrai e mysql_fetch_assoc

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    100
    eventualmete subito dopo questo $result = $db->estrai($db->query($sql_all)); fai un "echo count($result)"
    Mi restituisce 1 ma se seguo la stessa query con phpmyadmin invece mi stampa le 2 righe

  6. #6
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    prova così

    $result[] = $db->estrai($db->query($sql_all));

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    100
    Ritorna sempre count = 1

  8. #8
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    io l'ho provato in locale e mi funziona............ che versione di php hai?

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    100
    Ma la cosa + bella è che ho bypassato la classe usando il solito codice php ed il risulato è identico... non capisco in cosa sbaglio....

    Piangoooooooo

  10. #10
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    non sbagli niente il codice funziona

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.