Back to top

Autore Topic: Problema con query  (Letto 2108 volte)

Offline james81

  • Appassionato
  • ***
  • Post: 475
  • Sesso: Maschio
    • Mostra profilo
Problema con query
« il: 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;   

mau_develop

  • Visitatore
Re:Problema con query
« Risposta #1 il: 15 Apr 2010, 11:35:34 »
c'è un metodo apposta nel fwork... comunque con mysql esiste il last insert id

M.

Offline james81

  • Appassionato
  • ***
  • Post: 475
  • Sesso: Maschio
    • Mostra profilo
Re:Problema con query
« Risposta #2 il: 15 Apr 2010, 12:00:13 »
ho capito, ma come dovrei impostare allora la query?

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Problema con query
« Risposta #3 il: 15 Apr 2010, 21:50:23 »
Citazione
$query = "SELECT id FROM #__tabella WHERE id='SELECT MAX(id) FROM #__tabella' ";

 ;D ;D ;D

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

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

ma meglio:

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

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

Offline james81

  • Appassionato
  • ***
  • Post: 475
  • Sesso: Maschio
    • Mostra profilo
Re:Problema con query
« Risposta #4 il: 15 Apr 2010, 22:09:29 »
gracies!...ho provato ma non mi estrae nulla, la variabile $ridx rimane sempre vuota

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Problema con query
« Risposta #5 il: 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.
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline james81

  • Appassionato
  • ***
  • Post: 475
  • Sesso: Maschio
    • Mostra profilo
Re:Problema con query
« Risposta #6 il: 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

Offline james81

  • Appassionato
  • ***
  • Post: 475
  • Sesso: Maschio
    • Mostra profilo
Re:Problema con query
« Risposta #7 il: 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
« Ultima modifica: 15 Apr 2010, 22:34:05 da james81 »

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Problema con query
« Risposta #8 il: 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
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

 



Web Design Bolzano Kreatif