Joomla.it Forum

Non solo Joomla... => Sviluppo => : james81 20 Jul 2013, 17:33:05

: Creazione query j25
: james81 20 Jul 2013, 17:33:05
Ciao a tutti,
stò provando ad utilizzare questa query ma non funziona in quanto non aggiorna nulla!

$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query = "UPDATE #__tabella_utenti SET utenti_publish= 0 ";
$db->setQuery($query);

dov'è che sbaglio ?


: Re:Creazione query j25
: mau_develop 20 Jul 2013, 21:42:46
http://docs.joomla.org/J2.5:Accessing_the_database_using_JDatabase#Updating_a_Record

.. poi ...getDbo e non DBO
: Re:Creazione query j25
: simone83 21 Jul 2013, 14:19:11
il problema e che se non esegui la query il solo settarla non serve a niente. LEggiti la guida che ti hanno consigliato xche gli update si fanno in modo piu semplice con funzioni specifiche
: Re:Creazione query j25
: james81 22 Jul 2013, 12:21:16
alla fine dono riuscito a farla andare:

$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query = "UPDATE #__tabella_utenti SET utenti_publish= 0 ";
$db->setQuery($query);
$db->query();

ora volevo chiedere un paio di precisazioni:

ma getDBO() è diverso da getDbo(); ??

inoltre se eseguo una query select così composta:

$query4 = "SELECT * FROM tabella WHERE ico_id='".$id."'";
$db->setQuery($query);
$db->loadResult(record4);
$ob = $record4->a_id;
$dat= $record4->b_id;

ma non mi restituisce nulla

e se seguo la guida che mi avete fornito, mi preleva un'array, cosa che non mi serve
: Re:Creazione query j25
: simone83 22 Jul 2013, 12:27:35
load result carica solo un risultato quindi la devi usare solo se vuoi un valore preciso per una query che ti ritorna un solo valore, è chiaro che se fai un select * ti ritorna un array, leggiti per bene la guida



: Re:Creazione query j25
: james81 22 Jul 2013, 13:16:55
infatti, è come avevo capito, io prelevo tutti i dati e li metto in un array, volevo ora capire come stampare quello che miserve

$query4 = "SELECT * FROM tabella WHERE ico_id='".$id."'";
$db->setQuery($query);
$results = $db->loadObjectList();

i due campi da prelevare sono: a_id , b_id ;



: Re:Creazione query j25
: simone83 22 Jul 2013, 13:24:21
se hai bisogno di un solo record non usi loadObjectList ma loadObject e dopo ci accedi come un semplice oggetto, invece se hai record multipli li devi ciclare e ci accedi come un oggetto
: Re:Creazione query j25
: james81 22 Jul 2013, 14:59:52
ok, questa è la query che utilizzavo precedentemente in joomla 1.7 e funzionava perfettamente (funziona anche inserendo al posto dei due campi il valore " * " )

$query4 = "SELECT a_id ,b_id FROM j17_tabella WHERE ico_id='".$id."'";
        $database->setQuery($query4);
        $database->loadObject($record4);
        $ob= $record4->a_id;
        $dat= $record4->b_id;
: Re:Creazione query j25
: simone83 22 Jul 2013, 15:55:03
ico_id suppongo sia un intero ma tu lo metti come stringa tra apici, questo non va bene.



: Re:Creazione query j25
: james81 22 Jul 2013, 17:53:26
scusa ma se dovessi fare un'insert così composta:

$query = "INSERT INTO tabella (a_id, b_id, c_id) values ('6','6','6')"; 
$db->setQuery($query);
$db->query();

e non funziona, devo semrpe utilizzare gli array??

perchè dagl'esempi trovati nel link, mi sebra che funzioni tutto tramite array


: Re:Creazione query j25
: simone83 22 Jul 2013, 18:03:01
scusa ma xche ti vuoi complicare la vita, non ci vedo nulla di difficile in quella guida,


stai passando stringhe in campi che prevedono interi


inoltre spero che tu abbia messo il prefisso #__ davanti al nome della tabella