Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: 2 tabelle

  1. #1

    2 tabelle

    SELECT fatture.ID, fatture.numero, fatture.ID_fornitore fornitori.numero FROM fatture, fornitori WHERE fatture.ID_fornitore=fornitori.nome

    questa è la mia select. devo far vedere in una tabella il nome del fornitore e il numero della fattura. Quando faccio il ciclo while mi compaiono 2 volte i risultati. Quale è il modo migliore x gestire queste 2 tabelle? Ho provato a fare come dice la guida sul sito ma non va!

    Grazie!

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Prova con

    SELECT distinct fatture.ID, fatture.numero, fatture.ID_fornitore fornitori.numero FROM fatture, fornitori WHERE fatture.ID_fornitore=fornitori.nome

  3. #3
    ti ringrazio dell'aiuto ma non và proprio!

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Quali sono le chiavi univoche di entrambi tabelle ?

    Sotto sembra mancare una virgola
    SELECT fatture.ID, fatture.numero, fatture.ID_fornitore , fornitori.numero

  5. #5

  6. #6
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Nella tabella fatture quante righe ci sono per una fattura ? Mi spiego... è una tabella di testate o di righe ?

  7. #7
    Posto il codice magari è + utile


    include("setConn.php");
    $start = $_GET["start"];

    if(!isset($start)OR $start<0)
    $start=0;
    $step=20;

    $sql = "SELECT distinct fatture.ID, fatture.numero, fatture.ID_fornitore, fornitori.numero FROM fatture fornitori WHERE fatture.ID=fornitori.nome LIMIT $start, $step";

    $result = mysql_db_query("news", $sql, $db);

    print "<table width='100%'>";
    print "<tr><td height='50'>FORNITORE</td><td height='50'>NUMERO</td></tr>";
    while ($row = mysql_fetch_array($result)) {
    print "<tr>";
    print "<td height='20'>".$row["nome"]."</td><td height='20'>".$row["numero"]."</td>";
    print "</tr>";
    }
    print "</table>";

  8. #8
    Non entro nel merito della query a cui ti sta gia' rispondendo badaze, ma vorrei farti notare l'incongruenza delle prime righe...
    codice:
    include("setConn.php"); 
    $start = $_GET["start"]; 
    
    if(!isset($start)OR $start<0)
    Prima valorizzi $start e poi verifichi se e' valorizzato ed il contenuto. Dovresti prima verificare se $_GET["start"] e' valorizzato e poi applicare le valorizzazioni del caso.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    $sql = "SELECT distinct fatture.ID, fatture.numero, fatture.ID_fornitore, fornitori.numero FROM fatture fornitori WHERE fatture.ID=fornitori.nome LIMIT $start, $step";

    Già manca una virgola tra le due tabelle -> fatture, fornitori
    Come hai scritto indichi che fornitori è un alias di fatture.

    Poi nella clausola where indichi che l'identificante di una fattura è il nome del fornitore mentre hai un campo fatture.ID_fornitore !?!?!?

  10. #10
    Ho sistemato la query:

    SELECT fatture.ID, fatture.numero, fatture.ID_fornitore, fornitori.ID, fornitori.nome as nome FROM fatture, fornitori LIMIT $start, $step

    però mi visualizza doppi risultati.

    Ho popolato la tabella ed ho 6 record.
    Ho 2 fornitori A e B.
    Mi visualizza tutti i numeri fattura in ordine x 2 volte.
    E per quantoi riguarda i nomi dei fornitori moi visualizza 6 volte A e dopo 6 volte B non associandoli all'ID_fornitore.

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.