Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Problema ODBC intranet

  1. #1

    Problema ODBC intranet

    Sono un infermiere, portate pazienza

    Ho la necessità di interrogare un db ODBC per estrarre dati e mostrarli sulla intranet:
    il mio problema è che in una tabella ho i dati del paziente, in un altra le prestazioni legate dallo stesso id paziente.
    vorrei avere una tabella con visualizzato i dati del pz e le prestazioni eseguite sulla stessa riga
    ex:

    TABELLA PZ
    [list=1]
    pz| nome
    1 | mario
    2 | luigi
    3 | piero
    [/list=1]

    TABELLA PRESTAZIONI
    [list=1]
    id |pz| prestazione
    1 | 1 | prestazione1
    2 | 1 | prestazione2
    3 | 2 | prestazione2
    4 | 3 | prestazione1
    5 | 3 | prestazione3[/list=1]

    il risultato che vorrei è
    • pz | nome | prestazione1 | prestazione2 | prestazione3
      1 | mario | si | si | no
      2 | luigi | no | si | no
      3 | piero | si | no | si


    Ho provato creando delle viste con gli id pz prestazione x prestazione e poi creando una vista riassuntiva, funziona ma aggiungendo prestazioni (che sono una 30ina) ODBC dice
    Unable to allocate ancillary table for query optimization. Maximum number of tables in a query (14)
    Qualcuno potrebbe indicarmi una via?
    ah dimenticavo, ho postato qua perchè uso php perchè i dati li metto nella intranet (joomla)

  2. #2
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Chiedi di averlo spostatu su http://forum.html.it/forum/forumdisplay.php?forumid=98 perché sia una domanda DB

    Ma comunque, di che tipo di database parliamo? Dovresti usare un JOIN, che poi potresti mettere anche in una view.

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  3. #3
    Il database è ODBC
    la mia domanda era: avendo i dati come ho scritto posso arrivare al risultato con php e odbc_exec?
    per questo ho postato qui

    Grazie

  4. #4
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    ODBC non è un database ma una API. Sarebbe meglio usare il connector per il database che usi. Comunque, funzionano le tue view? Ti da solo un errore su PHP?

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  5. #5
    sorry, il db è sybase
    in genere combinando le view "prestazioni" con left join riuscivo ad avere il risultato che volevo
    infine su intranet mostravo i risultati della view eseguendo una query sulla view apposita con odbc_exec.

    ora la richiesta che devo fare è più articolata e dall'errore che esce non credo di poterla gestire come al solito

    quindi mi chiedevo se con php direttamente dalla intranet potessi arrivare al risultato (senza preparare i dati in una view prima)

    grazie amcora

  6. #6
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Allora sarebbe meglio usare direttamente http://php.net/manual/en/book.sybase.php che l'ODBC bridge.

    Pare che qualcun altro aveva già questo problema
    http://nntp-archive.sybase.com/nntp-...@sybase.com%3E

    Potrebbe essere che la tua query fosse un po troppo complessa?

    Ma certo che puoi eseguire la query della view anche direttamente da PHP, ma temo che non cambierà tanto perché sarà più o meno la stessa, no?

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  7. #7
    la mia query è diventata mastodontica, ed è proprio x questo che non funge, scrivo qui perchè avevo pensato di interrogare le tabelle senza passare dalle viste che ho creato .
    non ho idea di come dire a php di mostrarmi non le righe come nella tab prestazioni che ho messo prima ma partendo da quella arrivare al risultato che vorrei;

    pz | nome | prestazione1 | prestazione2 | prestazione3
    1 --- mario---------si-----------si -------------no
    2 --- luigi----------no ----------si -------------no
    3 --- piero---------si -----------no-------------si

    spero di essere riuscito a spiegarmi, grazie comunque

  8. #8
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Su mysql potresti fare qualcosa così
    codice:
    select pz.*, group_concat(prestazioni.prestazione) from pz left join prestazioni on prestazioni.pz=pz.pz group by pz.id
    Ma sembra GROUP_CONCAT non esista su sybase - http://stackoverflow.com/questions/8...-in-sybase-ase

    Comunque sì, si può fare direttamente su PHP senza view ma, siccome sarebbe lo stesso codice, forse ti conviene di più rendere il codice della view meno pesante.

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  9. #9
    group concat sarebbe perfetto,

    rendere + leggero il codice della view non saprei da dove cominciare, tieni presente che ho una 30ina di prestazioni, per ognuna ho creato una view , poi lego i pz ad ognuna delle view con un left join prestazione1 on paz.id_paz = prestazione.id_paz

    come potrei fare su php direttamente?
    thanks

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.