Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    280

    [php][mysql] Stampare di una tabella di 3 colonne soltanto due..

    Vi faccio un esempio pratico del mio problema...
    io ho una tabella fatta da 3 colonne, es. nome,destra,sinistra
    (faccio un esempio)
    la tabella è fatta come segue..

    Nome | Destra | Sinistra

    Tonino | X |
    Giuseppe | | X
    mario | X |
    Rossana | | X
    Gino | | X
    Marta | X |

    ora devo stampare una tabella di due colonne, con titolo "destra" e "sinistra", e stampare nella colona "destra" i nome che hanno la x nella colonna destra, e viceversa per la sinistra... faccio esempio riferito all'esempio di sopra..

    Destra | Sinistra

    Tonino | Giuseppe
    Mario | Rossana
    Marta | Gino

    Mi di te che query devo fare per un database mysql e come faccio a stampare il tutto come richiesto in php?
    Grazie anticipatamente e spero di essere stato abbastanza chiaro!

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    280
    Riscrivo mejo le tabelle, mejo formattate... i puntini e i trattini sono spazi vuoti...


    Prima tabella..., la x segna l'appartenenza...
    --Nome---|Des|Sin|

    ..Tonino | X | - |
    Giuseppe | - | X |
    ...mario | X | - |
    .Rossana | - | X |
    ....Gino | - | X |
    ...Marta | X | - |


    Seconda tabella.. stampa i nomi in corrispondenza all'appartenenza dove è presente la X..

    Destra | Sinistra

    Tonino | Giuseppe
    Mario | Rossana
    Marta | Gino

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    280
    up.. please... se non mi sono spiegato diteme che mi spiego mejo..

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Se imposti la tabella così:

    codice:
    Nome  Destra  Sinistra 
    
    Tonino    1     0 
    Giuseppe  0     1 
    Mario     1     0
    Rossana   0     1 
    Gino      0     1 
    Marta     1     0
    puoi farti le query così:

    select nome as destra from prova where destra = 1;
    select nome as sinistra from prova where sinistra = 1;

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    280
    perfetto.. così li seleziono.. e invece come faccio a stampare in una tabella, l'iesimo elemento sia di destra che di sinistra? ad esempio se destra è composta da 10 elementi e sinistra da 8, ci saranno due colonne , destra e sinistra, dove sotto a destra ci saranno tutti i nomi di destra e sotto sinistra viceversa.. ma destra avrà due righe in +... è possibile?

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Una soluzione potrebbe essere questa:

    Codice PHP:
    <?php
    $conn 
    mysql_connect("localhost","root");
    mysql_select_db("tuo_database");

    $tot mysql_query("select * from prova");
    $righe mysql_num_rows($tot);

    $sinistra mysql_query("select nome as sinistra from prova where sinistra = 1");

    $destra mysql_query("select nome as destra from prova where destra = 1"); 

    echo 
    "<table border=\"1\">";
    echo 
    "<td>Sinistra</td>";
    echo 
    "<td>Destra</td>";

    for (
    $i=1$i<=$tot$i++)
    {
     while (
    $res_sx mysql_fetch_array($sinistra) )
     {
     echo 
    "<tr>";
     echo 
    "<td>$res_sx[sinistra]</td>"
     echo 
    "<td></td>";
     echo 
    "</tr>";
     }
     
     while (
    $res_dx mysql_fetch_array($destra) )
     {
     echo 
    "<tr>";
     echo 
    "<td></td>";
     echo 
    "<td>$res_dx[destra]</td>"
     echo 
    "</tr>"
     }

    }
    echo 
    "</table>";
    ?>
    Non è il massimo dato che non rispetta l'ordine "cronologico" ma vista l'ora accontentati. Quando ho un pò di tempo magari la modifico.

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Così invece lo rispetta.

    Codice PHP:
    echo "<table border=\"1\">";
    echo 
    "<tr>";
    echo 
    "<th>Sinistra</th>";
    echo 
    "<th>Destra</th>";
    echo 
    "</tr>";

    $prova mysql_query("select sinistra, destra, nome from prova order by id");
     while (
    $result mysql_fetch_array($prova) )
      {
          if (
    $result['sinistra'] == 0)
        {
            echo 
    "<tr>";
            echo 
    "<td>$result[nome]</td>";
            echo 
    "<td></td>";
            echo 
    "</tr>";
        }
        else
        {
        echo 
    "<tr>";
        echo 
    "<td></td>";
        echo 
    "<td>$result[nome]</td>";
        echo 
    "</tr>";
        }
    }
    echo 
    "</table>"

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    280
    numero 1, ti ringrazio infinitamente.. mi stai risolvendo un grosso problema..
    volevo dirti, il 1 codice funziona, solo che in corrispondenza di un nome, nella casellina affianco mi mette la casellina vuota, cosa necessaria in quanto senza di essa stampa uno di fila l'altro.. e volevo chiederti se si poteva risolvere la cosa...
    il secondo codice non mi funziona... cioè mi carica il nome della tabella ma il resto non fa nulla....
    grazie ancora!!
    ps complimenti

  9. #9
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Beh,se non riesci a farlo funzionare il codice c'è poco di che farmi i complimenti.

    Originariamente inviato da magicofred
    volevo dirti, il 1 codice funziona, solo che in corrispondenza di un nome, nella casellina affianco mi mette la casellina vuota, cosa necessaria in quanto senza di essa stampa uno di fila l'altro.. e volevo chiederti se si poteva risolvere la cosa...
    Cosa intendi per risolvere la cosa?

    il secondo codice non mi funziona... cioè mi carica il nome della tabella ma il resto non fa nulla....
    grazie ancora!!
    Mi sembra strano, l'ho provato e funziona.
    Non sono bravo come tanta gente che vedo qui a scrivere codice "in free style " senza prima testarlo.
    Se la tabella del db l'hai impostata come l'ho pensato io lo script, e cioè con i valori settati a 0 o a 1 in corrispondenza di ciascun nominativo, il codice deve funzionare.

    Io li ho provati su uno stesso file.
    Magari se tu li hai separati il problema è dovuto al fatto che non sono stato lì nel secondo a rimettere la connessione a mysql e la selezione del db. Nel qual caso ti avrebbe comunque restituito dei warning oltre all'intestazione della tabella, a meno che il tuo error_reporting sia settato diversamente dal segnalarli tutti.
    Verifica il tuo script e fammi sapere.

  10. #10
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Credo di aver capito finalmente cosa intendevi con la prima domanda, cioè visualizzare i nomi non su righe differenti ma sulla stessa.
    Appena posso vedo se riesco a risolvere se qualcuno non ti risponde prima.

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.