We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 24222
    • 63 Posts
    Ciao a tutti,
    sto cercando di fare eseguire del codice php entro una template vabiable.

    L’obiettivo è quello di caricare dei dati da un db esterno (non modx) ed ottenerne una select su cui un utente del manager può intervenire.

    Ho quindi creato una tv (con input type di tipo ’drop down’) e nel campo ’valore di input’ ho inserito questo codice:
    @EVAL return include(getcwd().'/myselect.php');

    Ovviamente questo include prevede una select nel db esterno ed il ritorno di una stringa formattata come piace alla tv (opzione==valore).

    Questo il codice:
    $myconn = mysql_pconnect($host,$dbname,$password);
    $database = mysql_select_db($mydb,$myconn);
    $query = "SELECT * FROM macchine";
    $result = mysql_query($query);
    $html = "";
    while ($row = mysql_fetch_array($result)) {
        $html .= $row['modello']."==".$row['idMacchina']."||";
    }
    return substr($html,0,-2);
    


    Il problema è che se lascio l’istruzione mysql_pconnect quando tento di modificare la pagina per vedere i risultati estratti dalla tv mi appare un alert javascript che mi dice che modx non è riuscito ad aggiornare i log, se invece la tolgo non viene eseguita correttamente la mysql_select_db (anche se tolgo il secondo parametro $myconn) shocked

    Come faccio a far funzionare la tv su di un database esterno? Grazie a chiunque abbia un’idea...
      • 24222
      • 63 Posts
      Aiuto...
      ho postato il problema anche sul forum "internazionale" ma ho qualche problema a far capire IlMioIngleseTM shocked

      Se qualcuno può aiutarmi in italiano sarebbe gradito.
      Grazie smiley
        • 24222
        • 63 Posts
        Grazie a sottwell,
        la soluzione è di chiudere esplicitamente la connessione al proprio db e riaprirla sul db di MODx in modo da consentirgli di aggiornare il file di log. Questo il thread:
        http://modxcms.com/forums/index.php/topic,6882.0.html

        Che splendida community grin
          • 17673
          • 194 Posts

          Ciao a tutti, sto facendo le mie prime prove di connessione ad un DB esterno, partendo dall’esempio di questo thread ho creato una Snippet che:

          $myconn = mysql_pconnect("localhost", "DBuser", "DBpwd");
          $database = mysql_select_db("DBname",$myconn);
          
          $query = "SELECT titolo, cognome FROM staff";
          $result = mysql_query($query);
          $html = "<ul>";
          while ($row = mysql_fetch_array($result)) {
              $html .= "<li>"$row['titolo']." - ".$row['cognome'].";
          }
          mysql_close($myconn);
          
          /* riapro la connessione al DB MODx */
          $connect = mysql_pconnect("localhost", "dbname", "dbpasswd");
          $database = mysql_select_db("ModX",$connect);
          $html .= "</ul>";
          
          return $html;
          


          chiamo la snippet da una pagina, e mi genera un errore del documentparser di modx:

          [tt]Parse error: parse error, unexpected T_VARIABLE in /user/htppdocs/modx/manager/includes/document.parser.class.inc.php(724) : eval()’d code on line 8
          [/tt]
          questo succede sia che includa o non includa la riconnessione al DB di Modx.

          Che può essere ?! cosa cambia nel chiamare lo script con uno snippet in una pagina piuttosto che utilizzarla in un TV ?!?
          devo forse chiudere la connessione al DB di ModX prima di connettermi a un DB esterno? posso farlo con una chiamata alla DB API di MODx ?!?

            ----------------------------------------------------------
            http://www.linkedin.com/in/lucapost/
            http://www.twitter.com/lukwe/
            ----------------------------------------------------------
            • 24222
            • 63 Posts
            Credo di aver capito rolleyes che se richiami lo snippet dalle pagine del tuo sito (e non dal manager) non hai bisogno di ristabilire la connessione al db di MODx a fine codice perchè semplicemente MODx ha già eseguito tutte le sue operazioni e quindi l’ultima connessione può rimanere benissimo la "tua".

            Per quanto riguarda l’errore direi che è un semplice errore di sintassi:
            $html .= "<li>"$row['titolo']." - ".$row['cognome'].";

            credo dovrebbe essere...
            $html .= "<li>".$row['titolo']." - ".$row['cognome'];


            P.S. Potresti anche non usare il secondo parametro in mysql_select_db dato che per default la connessione è stabilita sull’ultima mysql_pconnect eseguita e la tua mysql_query non utilizza $myconn... così ti risparmi anche mysql_close grin
              • 17673
              • 194 Posts

              Ok okey ..confermo la mia coglioneria, era il sintax-error nella costruzione di $html.
              Ora il test funziona, con e senza la riconnessione al DB di MODx; quindi la riconnessione è necessaria quando si lavora su queries dall’interno del manager MODx, come è il caso quando si costruiscono TV.

              Almeno abbiamo ravvivato il thread su questi argomenti credo cruciali e molto poco chiari nella documentazione ufficiale.

              Un tutorial su come creare e gestire una semplice Web Application dall’interno di MODx (estrarre dati da un DB e popolare con essi i campi di un FORM, aggiornare il DB con i dati del FORM) credo sarebbe tra le pagine più visitate, devo ancora trovare nel forum threads sufficientemente chiari nell’analizzare da cima a fondo la questione

              in particolare...
              -come associare uno snippet al FORM ACTION=... , esplicitare tutte le tematiche relative a GET vs. POST etc, come accedere ai dati inviati dal form, esempio pratico confrontando step-by-step il codice e le variabili php standard e ’l astrazione’ con la MODx API

              -come adattare/importare procedure php/mySQL pre-esistenti ( snippet che include ’include scriptvecchio.php’ ?!? )


              Ci vogliamo provare ? in inglese, e con un esempio funzionante, che mostri sia le pagine funzionanti che il codice.
              Offro installazione modx 0.9.5 beta fresca fresca... Idee per il tipo di mini-app ?!?

              La mia:
              4 pagine in tutto, una tabella mySQL
              sezione staff di un sito;
              (1) tabella nominativi (SELECT e formattazione output) ciascuno con iconcina ’aggiorna’,
              cliccandola si accede (2) all’autenticazione usr/pwd (esempio di invio dati dalla tabella con cookie o variabili hidden da passare alla pagina successiva),
              (3)autenticazione avvenuta si ha il form completo, con nome cognome telefono etc precaricati nei campi del form, pronti per essere aggiornati
              (4 )pagina finale di conferma

                ----------------------------------------------------------
                http://www.linkedin.com/in/lucapost/
                http://www.twitter.com/lukwe/
                ----------------------------------------------------------
                • 9359
                • 128 Posts
                Riapro questo vecchio topic del 2006.
                Volevo sapere se qualcuno ha per caso approfondito da qualche parte le tematiche di cui si parla qua.
                A me sarebbe veramente utile..... devo interfacciarmi ad un db esistente e stò facendo veramente fatica :-(
                Io uso ModX Rev... che differenze ci sono rispetto all’ evolution per quanto riguarda la gestione di db esterni?
                grazie
                  "Destiny is not a matter of chance, it's a matter of choice"