Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [my-sql] - query su due tabelle

    Ciao a tutti.

    Ho la seguente query
    codice:
     
    $query= "SELECT * FROM billing LEFT JOIN elementi ON billing.id_elemento = elementi.id_elemento WHERE billing.id_utente = '$_SESSION[id]' AND billing.id_fattura = '$fattura' ";
    Ho quindi due tabelle, una che contiene fatture e una che contiene gli elementi per singola fattura.

    Ora il problema è il seguente.
    Io propongo una visualizzazione a due distinti livelli.
    Prima una dove mostro solo l'elenco di fatture, e un link scritto nella forma xxxx.php?fattura=$row[id] dove chiaramente si accede al secondo livello informativo (elementi per fattura).

    Tutto funziona correttamente, tranne una cosa.
    Io ho indicato, per motivi di sicurezza, che le fatture che può visualizzare un utente devono essere solo quelle che hanno un preciso id di sessione, che viene memorizzato nella tabella fatture, ogni volta che ne viene creata una nuova. Quindi dovrebbe accadere una cosa del genere. Io ho un ID di sessione aperto (es. 6).
    A questo punto, io accedo alla mia tabella fatture e consulto il mio elenco. Ma se provo a forzare il link (inserendo fattura=4) dove 4 fa riferimento a una fattura che non appartiene all'utente 6, la fattura viene comunque visualizzata.

    Il filtro non dovrebbe già farlo la query sopra?

    E' strano..
    "La grandezza dell'uomo si misura in base a quel che cerca e all'insistenza con cui egli resta alla ricerca".

  2. #2
    Si accettano suggerimenti.
    è come se ne fregasse dell'id di sessione...

    L'ho anche stampato per sicurezza.
    Non è che anche nella tabella elementi devo copiare l'id utente, in modo tale che nella stampa dei singoli elementi fattura non ci sono + problemi?
    "La grandezza dell'uomo si misura in base a quel che cerca e all'insistenza con cui egli resta alla ricerca".

  3. #3
    ...scusa il quesito.. ma la query che hai postato sta nella pagina che ti da l'elenco delle fatture come link (1° livello) oppure nella pagina con il dettaglio delle fatture?
    Planet Earth is blue and there's nothing I can do

  4. #4
    No, siamo già al secondo livello.
    Perché lui riceve dal link di primo livello l'id fattura che consentirà di accedere al dettaglio.
    "La grandezza dell'uomo si misura in base a quel che cerca e all'insistenza con cui egli resta alla ricerca".

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    212
    sembrerebbe tutto corretto (non vedo errori)

  6. #6
    Notate una cosa.
    La tabella fatture ha ovviamente id univoco + tutti i singoli id elemento che fanno riferimento a quella data fattura, mentre la tabella elementi ha l'id elemento + tutti i dettagli.
    Ora non vorrei che fosse incapace di interpretare l'id sessione sulla tabella elementi. In effetti la condizione posta dalla mia query dice che devo verificare che nella tabella fatture si vedano solo quelle con un certo id sessione, ma non nella tabella elementi...
    "La grandezza dell'uomo si misura in base a quel che cerca e all'insistenza con cui egli resta alla ricerca".

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.