Joomla.it Forum

Non solo Joomla... => Sviluppo => : james81 15 Apr 2010, 10:37:46

: Problema con query
: james81 15 Apr 2010, 10:37:46
Ciao a tutti,
ho un problema con una select:
ho bisogno di ricavare il campo ID dell'ultimo record inserito, purtroppo i record inseriti all'interno del db non sono in ordine.

pensavo di utilizzare una cosa del genere ma non va'

$query = "SELECT id FROM #__tabella WHERE id='SELECT MAX(id) FROM #__tabella' ";
      $database->setQuery($query);
      $database->loadObject($records)
$ridx = $records->id;   
: Re:Problema con query
: mau_develop 15 Apr 2010, 11:35:34
c'č un metodo apposta nel fwork... comunque con mysql esiste il last insert id

M.
: Re:Problema con query
: james81 15 Apr 2010, 12:00:13
ho capito, ma come dovrei impostare allora la query?
: Re:Problema con query
: mmleoni 15 Apr 2010, 21:50:23
$query = "SELECT id FROM #__tabella WHERE id='SELECT MAX(id) FROM #__tabella' ";

 ;D ;D ;D

non ti arrabbiare, ma che hai scritto? al pių:

:
$query = "SELECT MAX(id) AS last_id FROM #__tabella' ";
$database->setQuery($query);
$records = $database->loadObject()
$ridx = $records->last_id;   

ma meglio:

:
$query = "SELECT MAX(id) AS last_id FROM #__tabella' ";
$database->setQuery($query);
$ridx = $database->loadResult();
(btw: l'alias č lasciato per chiarezza)

ciao,
marco
: Re:Problema con query
: james81 15 Apr 2010, 22:09:29
gracies!...ho provato ma non mi estrae nulla, la variabile $ridx rimane sempre vuota
: Re:Problema con query
: mmleoni 15 Apr 2010, 22:15:12
attiva il debug in modo che ti segnali eventuali errori nel sql.
nota che ho dato per scontato che $database fosse un'istanza della classe JDatabase, e che fosse correttamente istanziata.

ciao.
: Re:Problema con query
: james81 15 Apr 2010, 22:19:21
si si la query che ho postato e' quella che utilizzo allínterno dello stesso script per scrivere e prelevare dati dal db
: Re:Problema con query
: james81 15 Apr 2010, 22:23:09
abilitato, mi restituisce questo:

 500 - Si č verificato un errore.

JDatabaseMySQL::query: 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' at line 1 SQL=SELECT MAX(obj_id) AS last_id FROM jos54_tabella'

era una ' in piu
: Re:Problema con query
: mmleoni 15 Apr 2010, 22:40:10
il tipo di errore indica l'uso di una reserved word come valore nella query. visto cosė sembra a posto; prova a controllare il sorgente dell'html per eventuali caratteri soppressi e verifica con attenzione il sorgente php.

ciao