Back to top

Autore Topic: Integrare query con modulo personalizzato  (Letto 2473 volte)

Offline Mr. Nameless

  • Nuovo arrivato
  • *
  • Post: 43
    • Mostra profilo
Integrare query con modulo personalizzato
« il: 29 Mag 2010, 18:57:06 »
Ciao a tutti, mi sono appena registrato, quindi se ho sbagliato sezione chiedo scusa a priori.

Dovrei integrare delle query al db di joomla, le ho già provate in mysql e funzionano correttamente, purtroppo sono solo riuscito a capire che necessito di una cosa simile

// qualora non fosse globalizzato, recupero il mainframe
global $mainframe;

// istanzio un oggetto di accesso al DB
$db    =& JFactory::getDBO();

// Voglio le email di tutti gli utenti, notate #__
$query = 'SELECT email FROM #__users';

// effettuo la query
$db->setQuery( $query );

// recupero il resultset
$rows = $db->loadObjectList();

// stampo a schermo l'elenco
foreach($rows as $row) {
echo $row->email.'
';

}

-------------------------------

Io dovrei integrare queste 3 query, magari creando un modulo (anche se ho provato con un tutorial ma mi dice sempre che manca il file xml e non capisco il motivo). Qualcuno vuol essere così gentile da aiutarmi per piacere, sono dietro da 3 giorni e sto impazzendo! Grazie mille

Totale shede

SELECT * FROM `jos_sobi2_item` WHERE published = '1'

Totale ospiti

SELECT * FROM `jos_session` WHERE guest = '1'

Totale online

SELECT * FROM `jos_session` WHERE guest = '0'

Offline Mr. Nameless

  • Nuovo arrivato
  • *
  • Post: 43
    • Mostra profilo
Re:Integrare query con modulo personalizzato
« Risposta #1 il: 30 Mag 2010, 20:52:32 »
Nell'attesa ho fatto delle prove:

//Effetuo la query per il conteggio schede totale in sobi2
$nschede ='SELECT COUNT(*)FROM jos_sobi2_item WHERE published =1';
$result =mysql_query($nschede, $db) or die(mysql_error($db));

//Mi muovo a ciclo nei record restituiti e li mostro a video
if ($row = mysql_fetch_assoc($result)) {
echo 'Aziende presenti: ' . $row['published'] . '
';
}
//Mi libero del risultato
mysql_free_result($result);

//Mi scollego dal db
mysql_close($db)

Da mysql funziona ma a video non vedo nulla, il vaolore è 0, se non uso COUNT il valore è 1 ma è errato, dove sto sbagliando ? Se voglio mostrare a video più di un'interrogazione al db, come devo fare?
Grazie
Alessio

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Integrare query con modulo personalizzato
« Risposta #2 il: 31 Mag 2010, 21:24:36 »
ciao Mr. Nameless,
benvenuto sul forum.

Codice: [Seleziona]
$nschede ='SELECT COUNT(*) as no_items FROM jos_sobi2_item WHERE published =1';
...
echo "Aziende presenti: {$row['no_items'] }";

'published' non è definito nel recordset.

comunque è meglio se insisti con il metodo indicato nel primo post, a occhio mi sembra corretto: attiva il debug dalla configurazione di joomla.

ciao,
marco

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

Offline Mr. Nameless

  • Nuovo arrivato
  • *
  • Post: 43
    • Mostra profilo
Re:Integrare query con modulo personalizzato
« Risposta #3 il: 01 Giu 2010, 11:08:51 »
Ciao Cyborg, grazie mille per la risposta ed il benvenuto.

Cosa significa quando dici che "'published' non è definito nel recordset." nel db c'è

Ho appena provato ad integrare la tua stringa in questo modo :

<?php
//Mi collego al db
$db = mysql_connect('*', '*', '*') or
die ('Impossibile connettersi al database. Verificare i parametri di connessione.');

//Seleziono il database corretto
mysql_select_db('*', $db) or die(mysql_error($db));

//Eseguo la query
$nschede ='SELECT COUNT(*) as no_items FROM jos_sobi2_item WHERE published =1';
echo "Aziende presenti: {$row['no_items'] }";
?>

Però non funziona, la funzione echo non restituisce alcun dato.
Sto utilizzando un componente (Jumi) che serve per incollare codice, anche php, basta creare un modulo ed incollare il codice, davvero non riesco a capire dove sia l'errore, so che sarebbe buona cosa continuare con il primo snippet, ma conosco pochissimo di php e le query ci ho messo una settimana a trovarle ! :(
Sono disperato.... aiuto

Trovato anche questa sul forum di Sobi, ma non funziona nemmeno lei..

<?php
  //Mi collego al db
$db = mysql_connect('*', '*', '*') or
die ('Impossibile connettersi al database. Verificare i parametri di connessione.');

   $count_sql = 'SELECT COUNT(*) FROM jos_sobi2_item WHERE published = 1';
   $count_result = mysql_query($count_sql);
   $totalcount = $count[0];

   echo "Total Listings: ";
   echo $totalcount;   
?>

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Integrare query con modulo personalizzato
« Risposta #4 il: 01 Giu 2010, 11:41:32 »
ti sei accorto che nel primo codice manca mysql_query (ed il fetch del recordset) e che nel secondo leggi un $count[0] che non è definito da nessuna parte ??
nel secondo caso penso manchi:

$count = mysql_fetch_row($count_result);

1. leggi il manuale di php su come si interroga il db
2. riparti con calma.

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

Offline Mr. Nameless

  • Nuovo arrivato
  • *
  • Post: 43
    • Mostra profilo
[RISOLTO]:Integrare query con modulo personalizzato
« Risposta #5 il: 04 Giu 2010, 14:40:50 »
Ciao a tutti,

alla fine ho trovato il modulo :D

Se ha qualcuno interessa è reperibile (dopo la registrazione gratuita, mandano il link per mail) qui http://www.myjoom.com/index.php?option=com_mjproducts&mjproductsTask=mjproductsDetails&catid=4&mjproductsId=20&Itemid=30

Grazie del cortese supporto,
Alessio

 



Web Design Bolzano Kreatif