Back to top

Autore Topic: creazione nuovo componente query database  (Letto 7144 volte)

Offline franklg

  • Esploratore
  • **
  • Post: 63
    • Mostra profilo
creazione nuovo componente query database
« il: 30 Lug 2006, 20:59:59 »
Ciao a tutti,
solo da poco sono entrato nel mondo joomla!!
sono riuscito a creare un semplice componente che visualizza alcuni campi e un logo, fin qui nessun problema (diciamo così).
Ho tentato poi di creare un componente che esegua una semplice query su un database con la  visualizzazione dei risultati.Nel momento in cui clicco sulla voce del menu, in cui ho inserito questa componente, i risultati vengono visualizzati, ma la pagina principale di joomla viene quasi completamente stravolta, in poche parole, il risultato della query non viene visualizzato nella parte centrale della pagina, come per gli altri componenti, ma occupa anche altre zone del video.
SONO DISPERATO!!!
Esiste qualche componente (semplice) già sviluppato che esegua una query e visualizzi i risultati, in maniera tale da poter vedere come è stato realizzato?
Qualcuno mi sa dare una dritta su come realizzare questo tipo di componente?
Saluti Frank

Offline napo

  • Instancabile
  • ******
  • Post: 6532
  • Sesso: Maschio
  • NO MP TECNICI, verranno ignorati
    • Mostra profilo
Re: creazione nuovo componente query database
« Risposta #1 il: 30 Lug 2006, 21:52:49 »
Devi usare le classi di sistema fornite da Joomla, anche se il layout non è legato alla query.

Per preparare la query:
Codice: [Seleziona]
$database->setQuery($query, $offset, $limit);
Per ricavare i risultati, una delle 3:
Codice: [Seleziona]
$database->loadObjectList();
$database->query();
$database->loadAssocList();

Ad esempio:
Codice: [Seleziona]
$database->setQuery("SELECT * FROM ...");
$records = $database->loadObjectList();
if($records != null){
    for each($records as $record){
        echo $record->nomeCampo1;
        echo $record->nomeCampo2;
        ...
    }
}
« Ultima modifica: 30 Lug 2006, 21:54:58 da -napo- »


AllOne.it Consulting: http://www.allone.it Gens Joomla, il : http://www.gensjoomla.org  [url=http://www.allone.it/jooml

Offline franklg

  • Esploratore
  • **
  • Post: 63
    • Mostra profilo
Re: creazione nuovo componente query database
« Risposta #2 il: 31 Lug 2006, 13:44:45 »
Ciao Napo,
ti ringrazio per il suggerimento, faccio qualche prova.
Hai qualche suggerimento per adattare il layout del mio componente alla pagina principale di joomla?
grazie Frank

Offline napo

  • Instancabile
  • ******
  • Post: 6532
  • Sesso: Maschio
  • NO MP TECNICI, verranno ignorati
    • Mostra profilo
Re: creazione nuovo componente query database
« Risposta #3 il: 31 Lug 2006, 15:19:00 »
No, dipende molto dal template che stai usando e da come vuoi visualizzare le informazioni.


AllOne.it Consulting: http://www.allone.it Gens Joomla, il : http://www.gensjoomla.org  [url=http://www.allone.it/jooml

Offline franklg

  • Esploratore
  • **
  • Post: 63
    • Mostra profilo
Re: creazione nuovo componente query database
« Risposta #4 il: 31 Lug 2006, 19:59:33 »
il template che sto usando è quello standard di joomla, la visualizzazione e una visualizzazione normalissima di righe formate da 3 o quattro campi testo al centro della pagina, come per gli altri componenti.
saluti

Offline napo

  • Instancabile
  • ******
  • Post: 6532
  • Sesso: Maschio
  • NO MP TECNICI, verranno ignorati
    • Mostra profilo
Re: creazione nuovo componente query database
« Risposta #5 il: 01 Ago 2006, 09:35:15 »
Ma hai usato qualche classe del foglio di stile?


AllOne.it Consulting: http://www.allone.it Gens Joomla, il : http://www.gensjoomla.org  [url=http://www.allone.it/jooml

Offline franklg

  • Esploratore
  • **
  • Post: 63
    • Mostra profilo
Re: creazione nuovo componente query database
« Risposta #6 il: 02 Ago 2006, 15:31:11 »
Ragazzi, forse ho individuato qualè l'istruzione che provoca lo sfasamento della finestra; è la seguente:     mysql_select_db ( $db, $connect)
se tolgo questa istruzione, e faccio visualizzare stringhe di testo o qualunque altra cosa, va tutto bene.
Da premettre che la visualizzazione dei dati della tabella del database viene effettuata correttamente, solo che i menù laterali e superiore spariscono.
La tabella da cui faccio l'interrogazione è una tabella di un database mysql, la tabella non è una tabella del database joomla.
Se a qualcuno viene un'idea si faccia sentire.
saluti Frank

Offline napo

  • Instancabile
  • ******
  • Post: 6532
  • Sesso: Maschio
  • NO MP TECNICI, verranno ignorati
    • Mostra profilo
Re: creazione nuovo componente query database
« Risposta #7 il: 02 Ago 2006, 15:43:51 »
Mi sembra un pò impossibile...  ???
Come scritto nella documentazione(http://it.php.net/manual/it/function.mysql-select-db.php) la funzione restituisce un valore booleano e non fa output.


AllOne.it Consulting: http://www.allone.it Gens Joomla, il : http://www.gensjoomla.org  [url=http://www.allone.it/jooml

Offline franklg

  • Esploratore
  • **
  • Post: 63
    • Mostra profilo
Re: creazione nuovo componente query database
« Risposta #8 il: 02 Ago 2006, 16:03:42 »
e pure è così. ho provato a togliere una la volta le istruzioni dello script php, quella che determina il problema è proprio questa.

Offline napo

  • Instancabile
  • ******
  • Post: 6532
  • Sesso: Maschio
  • NO MP TECNICI, verranno ignorati
    • Mostra profilo
Re: creazione nuovo componente query database
« Risposta #9 il: 02 Ago 2006, 16:17:38 »
E' possibile vedere il codice?


AllOne.it Consulting: http://www.allone.it Gens Joomla, il : http://www.gensjoomla.org  [url=http://www.allone.it/jooml

Offline franklg

  • Esploratore
  • **
  • Post: 63
    • Mostra profilo
Re: creazione nuovo componente query database
« Risposta #10 il: 02 Ago 2006, 17:37:10 »
ecco il codice:
<?
1.   defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
2.   $db_host = "localhost";
3.   $db_user = "root";
4.   $db_pass = "";
5.   $db = "azienda";
6.   $tabella= "articoli";
7.   $connect = @mysql_connect($db_host, $db_user, $db_pass) or die("Impossibile connettersi a MySQL.");
8.   @mysql_select_db($db) or die("Impossibile selezionare il db " . "<strong>". $db . "</strong>.");
9.   //seleziona i dati
10.   $contatore = @mysql_query("SELECT COUNT(*) FROM $tabella") or die ("Errore nell'applicazione.");
11.   $n_row = @mysql_fetch_array($contatore) or die ("Errore nell'applicazione.");
12.   //il messaggio per l'assenza di dati può essere modificato
13.   if ($n_row[0] == FALSE)
14.   {
15.   echo "Non sono stati ancora inseriti dati nel db " . "<strong>". $db . "</strong>.
";
16.   }
17.   */
18.   $query = "SELECT codice_art, descrizione FROM $tabella";
19.   $result = @mysql_query($query, $connect) or die ("Impossibile visualizzare i dati.");
20.   ?> <table> <?
21.   while ( $dati = mysql_fetch_array($result) ) {
22.   echo $dati[descrizione]."</tr>";
23.   echo "
"."\n";
24.   }
25.   ?></table><?
26.   ?>


se tolgo le istruzioni dalla 8(compresa) alla fine (il programma non fa praticamente niente) va bene, se aggiungo solo l'istruzione 8 allora si presenta il problema.
grazie frank

Offline napo

  • Instancabile
  • ******
  • Post: 6532
  • Sesso: Maschio
  • NO MP TECNICI, verranno ignorati
    • Mostra profilo
Re: creazione nuovo componente query database
« Risposta #11 il: 02 Ago 2006, 17:45:11 »
Tutte le istruzioni "incriminate" hanno un die() in caso di errore, quindi fanno output.
Verifica se una di queste va in errore. Potresti non vederlo ma esserci.


AllOne.it Consulting: http://www.allone.it Gens Joomla, il : http://www.gensjoomla.org  [url=http://www.allone.it/jooml

Offline franklg

  • Esploratore
  • **
  • Post: 63
    • Mostra profilo
Re: creazione nuovo componente query database
« Risposta #12 il: 04 Ago 2006, 19:50:39 »
Avevo già verificato, ma non ci sono errori, per maggior sicurezza avevo anche eliminato le  istruzioni die().
Il problema è stato risolto riselezionando il db di joomla prima di chiudere la connessione con mio db. Il perchè di questo comportamento non me lo so spiegare, qualcuno sa dare una spiegazione?
Saluti Frank

Offline quillio

  • Nuovo arrivato
  • *
  • Post: 6
    • Mostra profilo
Re:creazione nuovo componente query database
« Risposta #13 il: 08 Lug 2009, 16:33:06 »
a me dice Direct Access to this location is not allowed. come mai?
vorei fare una quesri su una tabella e mostrarla.
grazie

 



Web Design Bolzano Kreatif