utilizzo tabella non drupal

16 contenuti / 0 new
Ultimo contenuto
utilizzo tabella non drupal

Nello stesso database dove ho installato drupal 6.2 ho una tabella dove sono memorizzati circa 3.000 libri
(id, titolo, autore, categoria, data uscita, ecc. ecc.).
Ho creato una pagina drupal facendo un include di una pagina php
che contiene le query alla tabella (lista, scheda libro, ecc.) che avevo già usato per un altro sistema, sempre in php.
questa pagina funziona, ma volevo chiedervi, il mio è un modo di operare non corretto?
mi conviene importare la tabella in drupal per utilizzarla al meglio, es. ricerca e altro?

Ho provato a installare cck e views ma credo di aver capito che, views puoi usarlo solo su tabelle drupal, mentre con cck devo ricostruire tutti i campi della tabella exnovo e poi copiarci dentro i dati
non credo ci sia la possibilità di indicare il nome di una tabella e questa viene utilizzata da cck all'interno di drupal.

cosa mi consigliate? di proseguire con gli include o c'è un sistema migliore?

Grazie

Ciao, puoi usare il modulo Table wizard per far vedere a Views delle tabelle esterne a Drupal.
http://drupal.org/project/tw

M.

--
Michel 'ZioBudda' Morelli -- [email protected]
Sviluppo applicazioni CMS DRUPAL e web dinamiche -- Corsi Drupal -- Amministrazione Drupal -- Hosting Drupal

grazie, non sapevo della sua esistenza, corro a installarlo !!

l'ho installato, ma non riuscivo ad inserire la mia tabella dei libri

quando clicco su Add tables to the Table Wizard.
mi fa vedere una lista di tabelle, in
Available tables in default connection:
ma SOLO quelle di drupal
ho dovuto rinominare la tabella "libri" in "dropal_libri" per visualizzarla, ma è troppo incasinata.
...secondo me è meglio procedere con un include di un php la vedo troppo complicata

dipende da quello che devi fare.
se vuoi usare views con la tua tabella devi in qualche modo importarla.
se TW non va, prova Data

ah , per importare una tabella esterna puoi usare "schema" (è un modulo), ma hai letto la documentazione del modulo ? Non dice nulla al riguardo ?

M.

--
Michel 'ZioBudda' Morelli -- [email protected]
Sviluppo applicazioni CMS DRUPAL e web dinamiche -- Corsi Drupal -- Amministrazione Drupal -- Hosting Drupal

Grazie a tutti, siete gentilissimi,
ho provato anche scheme, ma alla fine (conoscendo abbastanza bene il php)
ho optato per la creazione un file php che mi fa le query di cui ho bisogno sulla mia tabella e l'ho incluso in una pagina
abilitando i filtri php.
Ho utilizzando però le api che drupal mette a disposizione sia per le query alle tabelle
"db_query(db_rewrite_sql($sql))" e per la paginazione "pager_query"
certo, non ho un nodo interno a drupal, ma almeno so dove mettere le mani per fare le modifiche.

fin qui ho risolto, ma, essendo nuovo di drupal che mi stà iniziando a piacere e che vorrei studiare meglio,
mi trovo adesso davanti ad un altro dubbio.

Con il sistema suddetto (include script php), ho la pagina che mi mostra esattamente come volevo io la lista dei libri con la foto della copertina, il titolo, ecc.

ho creato adesso una seconda pagina (una scheda di info del libro) che ho chiamato "scheda"
questa riceve in $_GET la variabile ID contenente l'id del libro esempio scheda?ID=343
ed estrapola tutti i dati.

il dubbio è questo il TITLE di questa pagina resta sempre "scheda" come faccio a darle nel TITLE
in modo dinamico il titolo del libro? C'è in drupal la possibilità di affiancare al titolo il nome di una variabile?

Ho trovato!
ho modificato la pagina page.tpl.php del mio template aggiungendo nel TITLE questo:

<?php
$mylibro
= $_GET['mylibro'];
?>

  <title><?php print $mylibro?> / <?php print $head_title ?></title>

e funziona perfettamente.

se chiamo una pagina che non è la scheda e che non passa quindi il titolo con GET
la variabile $mylibro è vuota e mostra solo $head_title

ma per fare query su db esterni va inserita una riga su setting.php con le specifiche (utente e password) del db in questione, vero?

ciao, le mie tabelle anche se non di drupal erano però nello stesso database quindi non no dovuto dare nessuna funzione di connessione, ma per il tuo caso credo che potresti usare direttamente nalla pagina (ma ripeto non sono un esperto di drupal) la funzione db_connect
(l'ho letta nella documentazione delle API di drupal)
esempio:

$connection = db_connect('localost', 'root', 'password', 'nome_database');
  if (!$connection) {
     _db_error_page(mysql_error());
  }

ma non l'ho provato, forse è meglio che venga confermato qualcuno più preparato di me in drupal.

Grazie mille,
lo provo stasera e ti faccio sapere.(modificando questo inutile messaggio)

Per usare due connessioni a due db dello stesso tipo (mysql e mysql, ma non mysql e postgresql) [1] devi solo intervenire a livello di settings.php definendo i due db, il pricipale nominato "default", mentre il secondario come vuoi tu.

$db_url['default'] = 'mysqli://user1:pass1@localhost/db1';
$db_url['db2'] = 'mysqli://user2:pass2@localhost/db2;

Poi dentro al codice PHP usi

drupal_set_db("IL NOME DELLA CHIAVE DELL'ARRAY DB_URL');

Ricordati solamente che appena finite le operazioni su DB2 e comunque subito prima di eseguire qualsiasi funzione che faccia operazioni sul db di default, devi eseguire un

drupal_set_db('default');

M.

[1]: su Drupal 7 dovrebbe essere possibile utilizzare motori db diversi per i vari db definiti in settings.php

--
Michel 'ZioBudda' Morelli -- [email protected]
Sviluppo applicazioni CMS DRUPAL e web dinamiche -- Corsi Drupal -- Amministrazione Drupal -- Hosting Drupal

confermo il corretto funzionamento della procedura riepilogata perfettamente da ziobudda.

Salve ... mi accodo al thread perchè ho un problema simile.

Dovrei importare dei dati in formato CSV in una tabella del DB.
- quindi importare altri file csv ed accodarli alla tabella ....
visualizzarli (ad esempio con una view)
Fare delle query (ad esempio estrarre tutti dati di quella tabella in cui il record [modello] = 'pinco-pallo' e quindi visualizzare.
Avevo fatto in un precedente sito le procedure in php e funzionano.
Pensavo di usare i moduli di drupal per migliorare l'integrazione, non conoscendo bene come vorrei o potrei php e tanto meno i moduli

Ho provato ad usare FEEE, DATA e SCHEMA ... ma mi sono incasinato.

Sapreste indicarmi una guida, a parte la documentazione specifica dei moduli ... oppure "qualcuno ha già fatto qualcosa di simile" ... un'idea ?

grazie

Qualcuno conosce una alternativa a table wizard per drupal 7??Perchè arriva fino al 6 lo sviluppo di questo modulo, e me ne serve uno per poter inserire tabelle non-drupal in una mia view..