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

    Problema con l'unione di due tabelle

    Salve, ho creato questo codice dove due tabelle del database vengono unit ein una:
    Codice PHP:
    <?
          
    include("conn_db.php");

    $sql1 "SELECT reti.Filato, reti.Tipo, reti.ID AS ID1, entrate.ID AS ID2, entrate.Rete FROM entrate, reti WHERE reti.Tipo = 'a'";

    $risultato1 = @mysql_query($sql1,$connessione)
            or die(
    "$err3");

    $visualizza "";
                
    while (
    $riga mysql_fetch_array($risultato1)) 
    {

    $ID1 $riga['ID1'];
    $ID2 $riga['ID2'];
    $Filato $riga['Filato'];
    $Tipo $riga['Tipo'];
    $Rete $riga['Rete'];

            
    $ret_mon .= "$Filato $ID1 $ID2
    "
    ;

    }



    echo 
    "$ret_mon";
    Purtroppo quello che visualizza non è come vorrei io.
    La tabella reti vanta 94 righe, mentre quella entrate 558.
    In teoria dovrebbe visualizzarmi solo 94 righe... invece mi visualizza 558 volte la prima riga di reti, 558 la seconda, ecc. è un'elenco lunghissimo.....

    Come mai? in cosdas ho sbagliato? Eppure mi sembra tutto giusto. L'unico nome di colonna che le due tabelle hanno uguale è ID, ma con il codice
    codice:
    reti.ID AS ID1, entrate.ID AS ID2
    ho deviato il problema.
    Fatemi sapere

    Grazie :maLOL:

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    534
    FROM entrate, reti WHERE reti.Tipo = 'a'";

    bisogna avere una relazione tra le due tabelle. Non è corretto questo tipo di JOIN, rende un prodotto cartesiano. (94 x 558) uno contro tutti.

  3. #3
    Ciao, ho capito cosa mi vuoi dire e ho corretto lo script.
    Però il risultato non èp ancora quello.
    Non esiste un modo più semplice per poter utilizzare due tabelle insieme?
    Qualcosa come
    Codice PHP:
    include("conn_db.php"); 

    $sql_reti "SELECT * FROM reti WHERE Tipo = 'a'"

    $sql_entr "SELECT * FROM entrate"

    $risultato1 = @mysql_query(($sql_entr,$sql_reti),$connessione
            or die(
    "$err3"); 

    $visualizza ""
                 
    while (
    $riga mysql_fetch_array($risultato1))  


    $ID1 $riga['ID1']; 
    $ID2 $riga['ID2']; 
    $Filato $riga['Filato']; 
    $Tipo $riga['Tipo']; 
    $Rete $riga['Rete']; 

            
    $ret_mon .= "$Filato $ID1 $ID2
    "



    P.S.: So che lo script sopra non è corretto, l'ho solo inserito per rendere un'idea di ciò che vorrei.

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.