Visualizzazione risultati 1 fino 10 di 10

Discussione: DB altervista aiuto configurazioni?

  1. #1
    Guest

    Predefinito DB altervista aiuto configurazioni?

    Ciao,
    In locale ho un mio progettino che mi fa da palestra e funziona tutto alla grande, sta sera per testare un paio di cose che sto vedendo con un amico qui sul forum ho messo la cartella online nel mio sito, ok il progetto è un semplice mvc dove ho creato le mie classi e metodi, ma questo non c'entra, il punto è che appena apro la connessione al DB, ho un area di login per entrare e NESSUN PROBLEMA, entro mi riconosce legge nella cartella utenti etc...etc...
    Il problema nasce nel momento in cui faccio le select che facevo in locale, sembra che sul database anche se c'è l'estenzione mysqli non riconosce l'OOP di mysqli ma solamente il procedurale...Ho notato che è anche case sensitive nel recuperare i nomi dei campi e delle tabelle, esempio di select e display dati che funziona benissimo in locale ma non sul DB online...
    Così sul DB online non funziona ma in locale si cioè con un prepare statment ed una fetch ad OOP...

    Codice PHP:

    if ($datiUtente['profilo']=='amministratore'){

    $sqlRigheAmministratore = $db->prepare("SELECT Ambito.nome as ambito,
    Log.rowid,
    Log.modulo,
    Log.Data_inizio,
    Log.Data_fine,
    Log.Descrizione,
    Log.H,
    (SELECT Tipi_intervento.nome FROM Tipi_intervento WHERE Tipi_intervento.id = Log.Tipo_intervento_id ) as intervento,
    (SELECT modulo.percorso FROM Modulo WHERE modulo.id = Log.modulo ) as modulo,
    (SELECT HistoryUtenti.username FROM HistoryUtenti WHERE HistoryUtenti.id = Log.User_id ) as utente
    FROM ambito,Log WHERE Ambito.id=Log.Ambito_id"
    );

    //$sqlRigheSviluppatore->bind_param('i',$datiUtente['idUtente']);
    $risultati = $sqlRigheAmministratore->execute();

    $sqlRigheAmministratore -> bind_result($ambito,
    $rowid,
    $modulo,
    $data_inizio,
    $data_fine,
    $descrizione,
    $oreImpiegate,
    $intervento,
    $modulo,
    $utente);

    while (
    $sqlRigheAmministratore -> fetch()){

    $descrizioneSlashes = $descrizione;

    $html = new Tpl("html/tabella_WebLog_Riga.html");
    $html -> setTplVar(array(
    "rowid" =>$rowid,
    "descrizione" => $descrizione,
    "descrizioneSlashes" => $descrizioneSlashes,
    "data_inizio" => $data_inizio,
    "data_fine" => $data_fine,
    "oreImpiegate" => $oreImpiegate,
    "ambito" => $ambito,
    "intervento" => $intervento,
    "modulo" => $modulo,
    "idUser" => $utente
    ));
    $html -> processTpl();
    $html -> printTpl();
    ob_flush();
    }
    }

    INVECE NEL DB ONLINE FUNZIONA SOLO SE SCRIVO COSì IN MANIERA PROCEDURALE.....

    Codice PHP:


    if ($datiUtente['profilo']=='amministratore'){

    $query=("SELECT ambito.nome as ambito,
    log.rowid, log.modulo,
    log.Data_inizio,
    log.Data_fine,
    log.Descrizione,
    log.H,
    (SELECT tipi_intervento.nome FROM tipi_intervento WHERE tipi_intervento.id = log.Tipo_intervento_id ) as intervento,
    (SELECT modulo.percorso FROM modulo WHERE modulo.id = log.modulo ) as modulo,
    (SELECT historyutenti.username FROM historyutenti WHERE historyutenti.id = log.User_id ) as utente FROM ambito,log WHERE ambito.id=log.Ambito_id"
    );

    $sql = mysqli_query($db,$query);

    while (
    $row = mysqli_fetch_assoc($sql)) {print_r($row);
    $rowid = $row['rowid'];
    $descrizione=$row['Descrizione'];
    $descrizioneSlashes=$row['Descrizione'];
    $data_inizio=$row['Data_inizio'];
    $data_fine=$row['Data_fine'];
    $oreImpiegate=$row['H'];
    $ambito=$row['ambito'];
    $intervento=$row['intervento'];
    $modulo=$row['modulo'];
    $utente=$row['utente'];
    //$descrizioneSlashes = $descrizione;

    $html = new Tpl("html/tabella_WebLog_Riga.html");
    $html -> setTplVar(array(
    "rowid" =>$rowid,
    "descrizione" => $descrizione,
    "descrizioneSlashes" => $descrizioneSlashes,
    "data_inizio" => $data_inizio,
    "data_fine" => $data_fine,
    "oreImpiegate" => $oreImpiegate,
    "ambito" => $ambito,
    "intervento" => $intervento,
    "modulo" => $modulo,
    "idUser" => $utente
    ));
    $html -> processTpl();
    $html -> printTpl();
    ob_flush();
    }
    mysqli_free_result($sql);
    }

    PERCHE'....DEVO SETTARE IL DB IN QUALCHE MANIERA?Da notare anche il case sensitive nella select...Come mai?non posso usare
    $db->prepare()....mi ritorna che $db non è un oggetto.Non capisco....invece con mysqli_query funziona...non capisco sembra che non riconosca l'OOP dell'estensione mysqli..

    Ps:rettifico ho provato a rifare il login e non si connette...fino a due secondi fa il login andava...adesso non va neanche quello....ed anche la convalida login puta caso usa la OOP di mysqli...CHE SUCCEDE?
    Ultima modifica di fractalcosmo : 26-06-2015 alle ore 01.27.43

  2. #2
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Come ti colleghi al database, qual è la riga in cui lo fai?


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  3. #3
    Guest

    Predefinito

    Ciao, mi connetto così:

    Codice PHP:
    class connessione{

    private
    $host;
    private
    $user;
    private
    $password;
    private
    $dataBase;

    function
    __construct(){

    $hostName = "localhost";
    $userName = "fractalcosmo";
    $passwordName = "";
    $dataBaseName = "my_fractalcosmo";

    $this->host = $hostName;
    $this->user = $userName;
    $this->password = $passwordName;
    $this->dataBase = $dataBaseName;
    }

    public function
    apriConnessione(){

    //print $this->host .$this->password .$this->dataBase .$this->user;
    $db = new mysqli($this->host,$this->user,$this->password,$this->dataBase);
    if (
    $db->connect_errno) {
    echo
    "Impossibile connettersi a MySQL: (" . $db->connect_errno . ") " . $db->connect_error;
    }

    return
    $db;

    }

    }
    Ma ho provato anche a non usare la classe e fare la tradizionale $db= new mysqli(host,user,pass,db); ma nulla non gli piace proprio la dicitura
    $db->prepare
    $db->query

    per esempio se scrivo questo

    Codice PHP:

    $query
    = ("SELECT data_inizio,data_fine FROM log");

    foreach (
    $db->query($query) as $risultato) {
    $dataInizio = $risultato['data_inizio'];
    $dataFine = $risultato['data_fine'];
    }
    se invece uso mysqli_query($db,$query) funziona ....Ma anche ad un altro ragazzo fa così, non credo sia un errore di codice, o di connessione sembra proprio che mancano delle librerie che riconoscano i metodi ->prepare ->query etc....Perchè se fosse un errore di connessione non andrebbe con mysqli_query, se faccio il var_dump della connessione c'è...da risultati e zero errori sia usando la classe che ho creato sia usando il metodo tradizionale, da lo stesso risultato....buh...solo che se voglio mettere il mio progettino personale per testarlo online sul web devo rifare tutte le select :( .
    Ultima modifica di fractalcosmo : 26-06-2015 alle ore 16.01.33

  4. #4
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Se non ti esce il messaggio di errore di mancata connessione al database e poi ti dice che $db non è un oggetto allora è perché te lo sei perso per strada.

    Verifica cosa hai in $db usando var_dump($db).


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  5. #5
    Guest

    Predefinito

    Ciao, adesso sono ancora al lavoro, sta sera ti mando il var dump...ma se mi ricordo da ieri da un connesso unix socket etc...sta sera te lo mando...Anch'io ieri pensavo non è che mi perdo la connessione non legge qualche include, ma con il var_dump sembrava di no...Dopo te lo invio.

  6. #6
    Guest

    Predefinito

    Ciao, questa è la connessione

    object(mysqli)#3 (18) {
    ["affected_rows"]=>
    int(0)
    ["client_info"]=>
    string(6) "5.1.49"
    ["client_version"]=>
    int(50149)
    ["connect_errno"]=>
    int(0)
    ["connect_error"]=>
    NULL
    ["errno"]=>
    int(0)
    ["error"]=>
    string(0) ""
    ["field_count"]=>
    int(0)
    ["host_info"]=>
    string(25) "Localhost via UNIX socket"
    ["info"]=>
    NULL
    ["insert_id"]=>
    int(0)
    ["server_info"]=>
    string(20) "5.1.71-community-log"
    ["server_version"]=>
    int(50171)
    ["stat"]=>
    string(149) "Uptime: 201675 Threads: 1 Questions: 36144413 Slow queries: 17 Opens: 126415 Flush tables: 1 Open tables: 8192 Queries per second avg: 179.221"
    ["sqlstate"]=>
    string(5) "00000"
    ["protocol_version"]=>
    int(10)
    ["thread_id"]=>
    int(315252)
    ["warning_count"]=>
    int(0)
    }

    Quando faccio lo script con il ->prepare e poi $sqlrigheAmministratore->execute() in locale funziona sul web mi dice:

    Call to a member function execute() on a non-object in model.php on line 1118 che è quella dove c'è l'execute

  7. #7
    Guest

    Predefinito

    Aspetta forse mi è venuta un'idea....che sia colpa della query che deve essere minuscola??

  8. #8
    Guest

    Predefinito

    :O è colpa della query, in locale funziona anche se usi le maiuscole o minuscole...sembra che funziona se metto la select scritta tutta in miuscolo tabelle e case sensitive i campi tabella....Azz pensa che storia...Grande, spero sia questo adesso aggiorno le select poi ti faccio sapere...Grazie comunque fin'ora, non ci avrei pensato da solo, mi è venuto in mente perchè adesso mi ha dato il fatal error nella riga dell'execute e non del prepare...Ieri sera lo dava sul prepare...Grande.Ti farò sapere appena aggiorno tutto.Ciao buona serata.

  9. #9
    Guest

    Predefinito

    Ciao fainder,
    Allora tutto apposto, erano le select che devono essere case sensitve, a parte i cicli foreach cioè foreach $db->query($query) as $risultato, che non mi prende, ma ho cambiato con un fetch association tutto ok...
    Adesso però c'è un altro problema, mi sai aiutare perchè questo non so proprio da cosa può essere dovuto.

    Allora io ho messo la cartella del mio progetto dentro la cartella blog del mio sito...uso eclipse quindi ho fatto la connessione in ftp con eclipse e modifico il php, l'html e il javascript e faccio l'upload diretto da eclipse ricarico la pagina online e mi carica il PHP senza problemi, lo aggiorna subito come deve essere, l'html ok

    IL JAVASCRIPT NON ME LO AGGIORNA...

    Io ho comprato il dominio ed ho fatto il cloak però ad esempio mi sono accorto che se scrivo l'url diretto della pagina index del mio progetto ma non con il dominio .com ma con fractalcosmo.altervista.org/blog etc..etc.. delle volte mi dice pagina inesistente, allora cosa faccio entro nel pannello di controllo vado dentro la certella apro la pagina da lì e me la trova.
    Poi nell'ftp ovviamente ho messo fractalcosmo.altervista.org e non fractalcosmo.com...
    Il problema grosso è che non mi carica il javascript in ftp da eclipse.
    Dopo provo a spostare il progetto lo tolgo dalla cartella blog e lo metto dentro la cartella gestione file, che sia quello il problema?Non lo so...

  10. #10
    Guest

    Predefinito

    Forse ho trovato il problema, infatti un ragazzo dice:

    It should be a cache issue (the server can put an "expire" time on the files it serves so the browser won't check for modifications; also it can cache files itself). This was done in the .htaccess or in the httpd.conf most likely.

    Ed infatti nel file javascript che devo modificare c'è scritto questo:

    Data Size
    5853
    Expires
    Sat Jun 27 2015 19:28:17 GMT+0200 (ora solare Europa occidentale)

    Fetch Count
    12
    Last Fetched
    Sat Jun 27 2015 15:28:23 GMT+0200 (ora solare Europa occidentale)
    Last Modified
    Sat Jun 27 2015 15:28:22 GMT+0200 (ora solare Europa occidentale)

    Adesso però devo vedere come ovviare a questa cosa nella cartella del mio progetto.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •