• User Attivo

    @giannididonna said:

    Ciao ragazzi!

    Mi serve un aiuto. Avrei bisogno di prendere dati da due tabelle contemporaneamente.

    Per esempio nella prima tabella ho la necessita di prelevare due dati e nella seconda altri due e poi devo stamparli contemporaneamente nella stessa pagina.

    Qualcuno mi può dare una mano?

    select t1.campo, t2.campo from tabella1 t1 join tabella 2 t2 on t1.chiave = t2.chiave


  • Bannato User

    @joker197cinque said:

    select t1.campo, t2.campo from tabella1 t1 join tabella 2 t2 on t1.chiave = t2.chiave

    In realtà non è proprio cosi..... mi servirebbe poter accedere liberamente alle tabelle e disporre i dati a mio piacimento come se fosse una

    Per esempio una volta aperte le tabelle vorrei disporre in questo modo.

    [CENTER]Dato1 tabella1

    Dato1 tabella 2 - Dato2 tabella 1 - dato2 tabella2

    In protica ho la necessita di connettermi a tutte e due le tabelle contemporaneamente.

    Posso fare una cosa del genere?
    [/CENTER]


  • User

    ti conviene fare due query differenti e poi giocare come vuoi con mysql_fetch_array()..


  • Bannato User

    @nicodj88 said:

    ti conviene fare due query differenti e poi giocare come vuoi con mysql_fetch_array()..

    Potresti postare un esemio?

    Sai non sono un esperto....

    Grazie per il tuo interessamento.


  • User

    bhe..

    [PHP]
    $tab1 = mysql_query("") or die ("la query sulla tab1 nn va");
    $tab2 = mysql_query("") or die ("la query sulla tab2 nn va");

    // a questo punto disponi i risultati come vuoi
    for ( $i=0; ;$i++ ) {
    $row_tab1 = mysql_fetch_array($tab1);
    $row_tab2 = mysql_fetch_array($tab2);

    // se i record di una delle due query sono finiti esco dal for
    if ( $row_tab1[campo] == NULL || $row_tab2[campo] == NULL )
    break;

    echo "Dato$i : $row_tab1[campo] - tabella 1";
    echo "Dato$i : $row_tab2[campo] tabella 2";

    }

    [/PHP]

    xo nn è certo la soluzione ottimale..ma da quel che ho capito puo andare bene..


  • Bannato User

    Cosi potrebbe andare bene?

    [php]
    $tab1 = mysql_query("SELECT * FROM tabella1 ORDER BY id") or die ("la query sulla tab1 nn va");
    $tab2 = mysql_query("SELECT * FROM tabella2 ORDER BY id") or die ("la query sulla tab2 nn va");

    // a questo punto disponi i risultati come vuoi
    for ( $i=0; ;$i++ ) {
    $row_tab1 = mysql_fetch_array($tab1);
    $row_tab2 = mysql_fetch_array($tab2);

    // se i record di una delle due query sono finiti esco dal for
    if ( $row_tab1[campo] == NULL || $row_tab2[campo] == NULL )
    break;

    echo "Dato$i : $row_tab1[campo] - tabella 1";
    echo "Dato$i : $row_tab2[campo] tabella 2";

    }

    [/php]

    Puoi vedere se ho impostato bene le query?


  • User

    si sta bene...ma al posto di campo devi mettere le colonne presenti nelle tabelle..capito?


  • Bannato User

    In pratica se ho un campo nella prima tabella che si chiama hits e un campo che nella seconda tabella che si chiama nome sarà:

    (ho inserito anche i dati della connessione puoi vedere se è tutto ok?)

    [php]

    include("config.inc.php");
    $db = mysql_connect($db_host, $db_user, $db_password);
    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
    // effettui la query

    $tab1 = mysql_query("SELECT * FROM tabella1 ORDER BY id") or die ("la query sulla tab1 nn va");
    $tab2 = mysql_query("SELECT * FROM tabella2 ORDER BY id") or die ("la query sulla tab2 nn va");

    // a questo punto disponi i risultati come vuoi
    for ( $i=0; ;$i++ ) {
    $row_tab1 = mysql_fetch_array($tab1);
    $row_tab2 = mysql_fetch_array($tab2);

    // se i record di una delle due query sono finiti esco dal for
    if ( $row_tab1[campo] == NULL || $row_tab2[campo] == NULL )
    break;

    echo "Dato$i : $row_tab1[hits] - tabella 1";
    echo "Dato$i : $row_tab2[nome] tabella 2";

    }

    [/php]

    E' giusto? (grazie per la tua velocità ed il tuo interessamento)
    Puoi vedere se ho impostato bene le query?[/quote]


  • User

    ttt ok...ti correggo solo una cosa..ma sta bene anche come lo hai fatto tu..è solo una questione di...mmm...velocita..:D ..

    [PHP]
    // $db = mysql_connect($db_host, $db_user, $db_password);
    // if ($db == FALSE)
    // die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");

    // DIVENTA

    $db = mysql_connect($db_host, $db_user, $db_password) or die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");

    [/PHP]

    x il resto tt ok..;)


  • Bannato User

    In Definitiva dovrebbe essere cosi...

    [php]

    include("config.inc.php");
    $db = mysql_connect($db_host, $db_user, $db_password) or die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
    // effettui la query

    $tab1 = mysql_query("SELECT * FROM tabella1 ORDER BY id") or die ("la query sulla tab1 nn va");
    $tab2 = mysql_query("SELECT * FROM tabella2 ORDER BY id") or die ("la query sulla tab2 nn va");

    // a questo punto disponi i risultati come vuoi
    for ( $i=0; ;$i++ ) {
    $row_tab1 = mysql_fetch_array($tab1);
    $row_tab2 = mysql_fetch_array($tab2);

    // se i record di una delle due query sono finiti esco dal for
    if ( $row_tab1[campo] == NULL || $row_tab2[campo] == NULL )
    break;

    echo "Dato$i : $row_tab1[hits] - tabella 1";
    echo "Dato$i : $row_tab2[nome] tabella 2";

    }

    [/php]

    Ora lo testo un attimo e ti faccio sapere...


  • User

    ricorda di mettere <br> alla fine di ogni echo...


  • Bannato User

    Testato...

    Questo è il file completo che ho testato e in pratica la connessione avviene con successo ma non mi vengono stampati i risultati, come mai?

    Dove devo mettere il <b> ?

    [php]

    <?
    include("config.inc.php");
    $db = mysql_connect($db_host, $db_user, $db_password) or die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
    // effettui la query
    $tab1 = mysql_query("SELECT * FROM categories ORDER BY gallid ") or die ("la query sulla tab1 nn va");
    $tab2 = mysql_query("SELECT * FROM pictures ORDER BY pid") or die ("la query sulla tab2 nn va");
    // a questo punto disponi i risultati come vuoi
    for ( $i=0; ;$i++ ) {
    $row_tab1 = mysql_fetch_array($tab1);
    $row_tab2 = mysql_fetch_array($tab2);
    // se i record di una delle due query sono finiti esco dal for
    if ( $row_tab1[campo] == NULL || $row_tab2[campo] == NULL )
    break;
    echo "Dato$i : $row_tab1[description] - tabella 1";
    echo "Dato$i : $row_tab2[name] tabella 2";
    }
    ?>

    [/php]


  • User

    fai questo e dimmi cosa ti esce :

    [PHP]
    include("config.inc.php");
    $db = mysql_connect($db_host, $db_user, $db_password) or die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");

    // effettui la query
    $tab1 = mysql_query("SELECT * FROM categories ORDER BY gallid ") or die ("la query sulla tab1 nn va");
    $tab2 = mysql_query("SELECT * FROM pictures ORDER BY pid") or die ("la query sulla tab2 nn va");

    echo "<br>TABELLA 1<BR>";
    while ( $row = mysql_fetch_array($tab1) )
    foreach ( $row as $k => $v )
    echo $k." => ".$v."<br>";
    echo "<br><br>TABELLA 2<BR>";
    while ( $row = mysql_fetch_array($tab2) )
    foreach ( $row as $k => $v )
    echo $k." => ".$v."<br>";
    [/PHP]


  • Bannato User

    Mi escono tutti i risultati in questo modo:

    TABELLA 1
    0 => 2
    gallid => 2
    1 => Acqua
    gallname => Acqua
    2 => gallery.gif
    gallimg => gallery.gif
    3 => Acqua
    galloc => Acqua
    .
    .
    .
    .
    .
    .
    Continua ancora
    TABELLA 2
    0 => 1
    pid => 1
    1 => 17
    gid => 17
    2 => BACK00.GIF
    img => BACK00.GIF
    3 => 92
    counter => 92
    4 => Staff
    .
    .
    .
    .
    .
    .
    .
    .
    Continua ancora

    Quindi la connessione alle due tabelle funziona correttamente.
    Ora si tratta solo di estrarre i dati desiderati...
    Un'altra cosa... è possibile disporre un tot di dati per pagina con dei collegamenti fra le pagine?
    Per esempio

    Indietro 1 2 3 4 5 6 7 8 avanti

    Nella pagina 1 ci sono i dati da 1 a 10
    Nella pagina 2 ci sono i dati da 11 a 20 etc etc


  • User

    x l'impaginazione aspetta..cmq torniamo al codice..ho trovato il tuo errore

    [PHP]
    include("config.inc.php");
    $db = mysql_connect($db_host, $db_user, $db_password) or die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
    // effettui la query
    $tab1 = mysql_query("SELECT * FROM categories ORDER BY gallid ") or die ("la query sulla tab1 nn va");
    $tab2 = mysql_query("SELECT * FROM pictures ORDER BY pid") or die ("la query sulla tab2 nn va");
    // a questo punto disponi i risultati come vuoi
    for ( $i=0; ;$i++ ) {
    $row_tab1 = mysql_fetch_array($tab1);
    $row_tab2 = mysql_fetch_array($tab2);
    // se i record di una delle due query sono finiti esco dal for
    // ********* QUI DEVI CAMBIARE CAMPO CN UN CAMPO DELLA TAB AD.ESEMPIO
    if ( $row_tab1[description] == NULL || $row_tab2[name] == NULL )
    break;
    echo "Dato$i : $row_tab1[description] - tabella 1";
    echo "Dato$i : $row_tab2[name] tabella 2";
    }
    [/PHP]
    ora dovrebbe andare..


  • Bannato User

    OK adesso vengono i dati vengono prelevati e disposti cosi:
    (questi sono i dati di due tabelle a caso dei miei database che contengono gif)

    Dato0 : Gif Animate sul tema dell'acqua - GIF animated water - tabella 1Dato0 : BACK 00 tabella 2Dato1 : Gif Animate sui numeri e le lettere - GIF animated numbers and the letters - tabella 1Dato1 : BACK01.GIF tabella 2Dato2 : Gif animate sul tema dell'amore - GIF animated love - tabella 1Dato2 : BACK02.GIF tabella 2Dato3 : Gif animate sul tema degli angeli - GIF animated angels - tabella 1Dato3 : BACK03.GIF tabella 2Dato4 : Gif animate sul tema degli animali - GIF animated animals - tabella 1Dato4 : BACK04.GIF

    Continua ancora...

    Per limpaginazione mi puoi dare una mano?


  • User

    per un maggiore ordine inserisci <br> alla fine dei due echo...cmq l'impaginazione è una cosa un po piu complessa..tu lo conosci un po il php?..sei in grado di capire uno script gia costruito?


  • Bannato User

    un pò si.... magari ci provo e se ho problemi magari riposto qui...


  • User

    vai qui
    http://www.guidoz.it/forum/viewforum.php?f=2
    è un forum dove è presente una funzione appunto di paginazione..se hai problemi posta pure li..ti risponderanno..


  • Bannato User

    grazie! Sicuramente domani gli darò un occhiata..

    GRAZIE MILLE PER TUTTO!