• User Attivo

    Richiamare dati da due tabelle con php

    Ciao a tutti...
    piccolo problema...o meglio...vorrei sapere se è possibile in una stessa pagina richiamare dati da due tabelle diferenti, ma non allo stesso tempo...mi spiego: ho dati in due tabelle e cliccando su un link dovrebbero apparire dati di una tabella, mentro su un'altro link dati di un'altra tabella, ma questo nella stessa pagina (non vorrei creare una nuova pagina).
    Ho pensato di utilizzare la funzione if..else dove in if metto una funcione php per richiamare la prima tabelle, e else, altra funzione per richiamere la seconda tabella...
    riporto qui sotto come intendo fare:
    [php]<?php
    $x_pag = 1;// Righe per pagina
    $pageNum = 18; // Pagina iniziale di default
    // Recupero il numero di pagina corrente.
    if(isset($_GET['page']))
    {
    $pageNum = $_GET['page'];
    }
    // Uso mysql_num_rows per contare le righe presenti
    // all'interno della tabella
    $all_rows = mysql_num_rows(mysql_query("SELECT img_id, titolo, info, link, image FROM tabella1 a, immagini i WHERE a.img_id = i.id LIMIT 1, 36"));
    // Tramite una semplice operazione matematica definisco
    // il numero totale di pagine
    $all_pages = ceil($all_rows / $x_pag);
    $self = $_SERVER['PHP_SELF'];
    $nav = '';
    for($page = 1; $page <= $all_pages; $page++)
    {
    if ($page == $pageNum)
    {
    $nav .= " $page ";
    }
    else
    {
    $nav .= " <a href="$self?page=$page">$page</a> ";
    }
    }

    // Calcolo da quale record iniziare
    $first = ($pageNum - 1) * $x_pag;
    ?>
    <?php
    $x_pag = 1;// Righe per pagina
    $pageNum = 18; // Pagina iniziale di default
    // Recupero il numero di pagina corrente.
    if(isset($_GET['page']))
    {
    $pageNum = $_GET['page'];
    }
    // Uso mysql_num_rows per contare le righe presenti
    // all'interno della tabella
    $all_rows = mysql_num_rows(mysql_query("SELECT img2_id, titolo2, lido, link2, image FROM laguna a, immagini i WHERE a.img2_id = i.id LIMIT 1, 36"));
    // Tramite una semplice operazione matematica definisco
    // il numero totale di pagine
    $all_pages = ceil($all_rows / $x_pag);
    $self = $_SERVER['PHP_SELF'];
    $nav = '';
    for($page = 1; $page <= $all_pages; $page++)
    {
    if ($page == $pageNum)
    {
    $nav .= " $page ";
    }
    else
    {
    $nav .= " <a href="$self?page=$page">$page</a> ";
    }
    }
    ////
    [/php]questo lo ripeto anche per la seconda tabella.

    [php]<?php
    $x_pag = 1;// Righe per pagina
    $pageNum = 18; // Pagina iniziale di default
    // Recupero il numero di pagina corrente.
    if(isset($_GET['page']))
    {
    $pageNum = $_GET['page'];
    }
    // Uso mysql_num_rows per contare le righe presenti
    // all'interno della tabella
    $all_rows = mysql_num_rows(mysql_query("SELECT img2_id, titolo2,info2, link2, image FROM tabella2 a, immagini i WHERE a.img2_id = i.id LIMIT 1, 36"));
    // Tramite una semplice operazione matematica definisco
    // il numero totale di pagine
    $all_pages = ceil($all_rows / $x_pag);
    $self = $_SERVER['PHP_SELF'];
    $nav = '';
    for($page = 1; $page <= $all_pages; $page++)
    {
    if ($page == $pageNum)
    {
    $nav .= " $page ";
    }
    else
    {
    $nav .= " <a href="$self?page=$page">$page</a> ";
    }
    }

    // Calcolo da quale record iniziare
    $first = ($pageNum - 1) * $x_pag;
    ?>[/php]Poi utilizzo :
    [php]if (scelta)
    { <?php
    // Recupero i record per la pagina corrente...
    // utilizzando LIMIT per partire da $first e contare fino a $x_pag
    $rs = mysql_query("SELECT img_id, titolo, info, link, image FROM tabella1 a, immagini i WHERE a.img2_id = i.id LIMIT $first, $x_pag");
    $nr = mysql_num_rows($rs);
    if ($nr != 0){
    for($x = 0; $x < $nr; $x++){
    $row = mysql_fetch_assoc($rs);
    $immagini = $row['image'];
    echo "<table border='0' align='center' cellpadding='5' cellspacing='2'><tr>";
    echo ("<td colspan='2' align='center' valign='middle'>" . "<img src="$immagini"/ >" . "</td>");
    echo ("</tr><tr>");
    echo "<td colspan='2'><img src='../../immagini/transparent.gif' width='300' height='20' align='top' /></td>";
    echo ("</tr><tr>");
    echo "<td><img src='../../immagini/transparent.gif' width='10' height='20' align='top' /></td>";
    echo "<td align='right' valign='middle'><h1>" . $row['titolo2'] . "</h1></td>";
    echo ("</tr><tr>");
    echo "<td colspan='2'><img src='../../immagini/transparent.gif' width='300' height='20' align='top' /></td>";
    echo ("</tr><tr>");
    echo "<td><img src='../../immagini/transparent.gif' width='10' height='20' align='top' /></td>";
    echo "<td align='left'><h5>" . $row['lido'] . "</h5></td>";
    echo ("</tr><tr>");
    echo "<td colspan='2'><img src='../../immagini/transparent.gif' width='300' height='5' align='top' /></td>";
    echo ("</tr><tr>");
    echo "<td><img src='../../immagini/transparent.gif' width='10' height='20' align='top' /></td>";
    echo "<td align='left'><h5>" . $row['link2'] . "</h5></td>";
    echo ("</tr></table>");
    }
    }
    mysql_close($db);
    ?>
    }

    else (nome seconda funzione)
    { qui metto le istruzioni <?php ?> della seconda tabella}

    // vorrei sapere se questo è possibile farlo e in tal caso come richiamare dal link l'una o l'altra tabella
    [/php]In genere faccio
    <a href="pagina.php?page=1">link1</a>
    per richamare il record che mi interessa, ma probabilmente prima di ?page dovrò mettere il nome assegnato alla funzione.
    Ma in che modo???
    Spero di non avere fatto troppa confusione.

    Grazie per aiuto.


  • ModSenior

    Ciao stefana,
    fai attenzione alla punteggiatura e alle maiuscole...

    Dovresti passare 2 variabili GET, invece di fare page.php?page=1 fai page.php?page=1&page2=valore.
    In questo modo basta fare un if sul valore della varaibile page2 per far ciò che serve a te.


  • User Attivo

    ?page=1 nel link che usa richiama il record 1 della tabella (al momento in ogni file.php richiamo una sola tabella). Per cui non riesco a capire l'esempio che mi hai dato.
    Il link (ogni record deve essere richiamato da un link) deve richiamare o la prima tabella o la seconda tabella e di seguito il record.


  • User Attivo

    Forse dovrei mettere il nome variabile assocciato alla funzione php della tabella 1 o della tabella 2 e poi page per richiamare il record
    ?tabella=(nome variabile)&page=(numero record)


  • User Attivo

    ?page=1 nel link che usa richiama il record 1 della tabella (al momento in ogni file.php richiamo una sola tabella). per cui non riesco a capire l'esempio che mi hai dato
    il link (ogni record deve essere richiamato da un link) deve richiamare o la prima tabella o la seconda tabella e di seguito il record