Joomla.it Forum
Non solo Joomla... => Database => : Mr. Nameless 29 May 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'
-
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
-
ciao Mr. Nameless,
benvenuto sul forum.
$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
-
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;
?>
-
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
-
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