Joomla.it Forum
Non solo Joomla... => Sviluppo => : 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 ?
-
http://docs.joomla.org/J2.5:Accessing_the_database_using_JDatabase#Updating_a_Record
.. poi ...getDbo e non DBO
-
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
-
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
-
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
-
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 ;
-
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
-
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;
-
ico_id suppongo sia un intero ma tu lo metti come stringa tra apici, questo non va bene.
-
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
-
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