Back to top

Autore Topic: Connessione Db per modulo  (Letto 4599 volte)

Offline james81

  • Appassionato
  • ***
  • Post: 475
  • Sesso: Maschio
    • Mostra profilo
Connessione Db per modulo
« il: 24 Mar 2010, 10:07:09 »
Ciao a tutti, stò creando un modulo per visualizzare dati esterni al db di joomla. Il problema è che la query che ho utilizza le classi:

posto la query che utilizzo per prelevare i dati dal mio db:

$query = "SELECT id, obj_id FROM jos_leppson WHERE obj_id='".$id."'";
      $database->setQuery($query);
      $database->loadObject($record);

questa è invece la connessione che utilizzo per il db ma che non và bene per la select in quanto non è una classe.

Ora volevo capire come devo strutturare la mia connessione al db per la query che ho?

Graciess

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Connessione Db per modulo
« Risposta #1 il: 24 Mar 2010, 12:23:29 »
ciao james81,
  stai facendo un po di confusione, la query che vuoi usare non funziona perché non hai caricato il codice della classe e non la hai intanziata, non perché e OOP ;)

rivedi il codice originario, e troverai i pezzi che mancano, altrimenti dovrai fare la connessione con il metodo 'classico'... (lo trovi su php.net)

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline james81

  • Appassionato
  • ***
  • Post: 475
  • Sesso: Maschio
    • Mostra profilo
Re:Connessione Db per modulo
« Risposta #2 il: 24 Mar 2010, 12:32:28 »
esatto, dato che purtroppo non ho la possibilità di variare tutte le query, quello che volevo capire era come variare/inizializzare la classica connessione che utilizzo al db per poter utilizzare quella query, attualmente utilizzo questa:

 $host="xx.xx.xx.xx";
  $user="xxxxxxxxxxx";
   $password="xxxxxx";
   $name="xxxxxx";
   $conn = mysql_connect($host, $user, $password) or die("connesione non riuscita");
   $db=mysql_select_db($name) or die("Impossibile selezionare db");


preciso che le query utilizzate sono quelli standard di joomla, quindi "in teoria" dovrei solo recuperare nel codice di joomla la parte relativa alla connessione al db e includerla nel mio file esterno.

c'è in joomla un file dove viene effettuata la connessione einzializzata??...così da utilizzare un include ??
« Ultima modifica: 24 Mar 2010, 12:38:03 da james81 »

mau_develop

  • Visitatore
Re:Connessione Db per modulo
« Risposta #3 il: 24 Mar 2010, 12:48:08 »
scusa ma hai creato l'oggetto database prima di fare la query?

Se guardi sul docs trovi ampia documentazione

M.

Offline james81

  • Appassionato
  • ***
  • Post: 475
  • Sesso: Maschio
    • Mostra profilo
Re:Connessione Db per modulo
« Risposta #4 il: 24 Mar 2010, 12:58:12 »
no non ho creato l'oggetto, ho modificato e creato il modulo utilizzando le query che c'erano già, logicamente provandolo integrato a joomla funziona, ora il modulo è esterno a joomla quindi devo ricreare la connessione al db.

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Connessione Db per modulo
« Risposta #5 il: 24 Mar 2010, 14:27:10 »
scusa ma stai creando un modulo che funziona in joomla per visualizzare dati da un db diverso da quello di joomla, o stai cercando di far girare un modulo joomla all'esterno di joomla?

ciao
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

mau_develop

  • Visitatore
Re:Connessione Db per modulo
« Risposta #6 il: 24 Mar 2010, 14:44:19 »
ora il modulo è esterno a joomla quindi devo ricreare la connessione al db.
--------------------------------------------------------------------
no no... devi anche riscriverti tutte le classi del framework se ne esci.

M.

Offline james81

  • Appassionato
  • ***
  • Post: 475
  • Sesso: Maschio
    • Mostra profilo
Re:Connessione Db per modulo
« Risposta #7 il: 24 Mar 2010, 16:37:48 »
esatto, devo ricreare la connessione e non sò come fare

mau_develop

  • Visitatore
Re:Connessione Db per modulo
« Risposta #8 il: 24 Mar 2010, 17:43:07 »
devi anche ricreare qs:

   $database->setQuery($query);
      $database->loadObject($record);

che fuori dal framework non esistono...

tu dici:
stò creando un modulo per visualizzare dati esterni al db di joomla
-------------------------------------------------------------------
basta usare il normalissimo mvc usando tutti i metodi di Joomla

il database deve essere lo stesso di joomla, non importa se aggiungi una tabella non tua.

oppure la tabella sta su un'altro db, quindi nuova connessione etc.

O fai anche qs cosa attraverso il fw joomla creando un'ulteriore oggetto db (??!!) o ne esci ma non ti preoccupare più di joomla, diventa classico scripting e in joomla non vedresti nulla.

Attenzione che l'hosting ti permetta di uscire dal loro dominio con le query...

M.

Offline james81

  • Appassionato
  • ***
  • Post: 475
  • Sesso: Maschio
    • Mostra profilo
Re:Connessione Db per modulo
« Risposta #9 il: 25 Mar 2010, 09:54:23 »
io avrei risolto così ma non funziona!...si collega al databse in maniera corretta ma non preleva i dati!!!

// connessione a MySQL con l'estensione MySQLi
$mysqli = new mysqli("xxx.xxx.xxx.xxx", "user", "pass", "nomedatabse");

// verifica dell'avvenuta connessione
if (mysqli_connect_errno()) {
           // notifica in caso di errore
        echo "Errore in connessione al DBMS: ".mysqli_connect_error();
           // interruzione delle esecuzioni i caso di errore
        exit();

}
else {
           // notifica in caso di connessione attiva
        echo "Connessione avvenuta con successo1";
}

// chiusura della connessione

$query = "SELECT id, obj_id FROM tabella WHERE obj_id='".$id."'";
      $mysqli->setQuery($query);
      $mysqli->loadObject($record);
« Ultima modifica: 25 Mar 2010, 11:37:36 da james81 »

mau_develop

  • Visitatore
Re:Connessione Db per modulo
« Risposta #10 il: 25 Mar 2010, 12:36:12 »
guarda che non puoi usare una classe senza sapere cos'è una classe o usare un framework cercando di evadere non appena non riesci a seguire il paradigma proposto.

Non hai creato l'oggetto db perchè joomla darebbe una connessione ad un db che non ti serve
poi pretendi di usarne i metodi setQuery e loadObject
come fai?

certo che sono comodi da usare quei metodi, ma sono costruiti a monte da altre classi del framework di joomla, normalmente le query non si fanno così e questo vale per load object se cerchi infatti nontrovi una funzione mysql che si chiami così.

M.

Offline james81

  • Appassionato
  • ***
  • Post: 475
  • Sesso: Maschio
    • Mostra profilo
Re:Connessione Db per modulo
« Risposta #11 il: 25 Mar 2010, 15:21:05 »
ok, allora come dovrei impostare la mia query?

mau_develop

  • Visitatore
Re:Connessione Db per modulo
« Risposta #12 il: 25 Mar 2010, 15:43:01 »
come una qualsiasi connessine e successiva query mysql

$hst="localhost"; // host
$usr="root"; // user
$pwd=""; // password
$dbn=""; // nome database

mysql_connect($hst, $usr, $pwd) or die("Connessione al database non riuscita");
mysql_select_db($dbn) or die("Nessun database selezionato");

$res=mysql_query("SELECT * FROM tabella") or die ( mysql_error() );
while($row = mysql_fetch_array($res)) {
array dei risultati
}

Buona fortuna e occhio alle sqlinj

M.

Offline james81

  • Appassionato
  • ***
  • Post: 475
  • Sesso: Maschio
    • Mostra profilo
Re:Connessione Db per modulo
« Risposta #13 il: 25 Mar 2010, 17:49:03 »
etu hai fatto un ciclo wihle per le righe se dovessi fare una select come dovrei impostarla??

mau_develop

  • Visitatore
Re:Connessione Db per modulo
« Risposta #14 il: 25 Mar 2010, 19:41:32 »
che significa ciò che hai detto?

scusa ma visto che lavoravi sul framework joomla davo per scontato tu conoscessi php/mysql...

... sennò come faccio a spigarti?

M

 



Web Design Bolzano Kreatif