Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    183

    php + tabelle mysql Possibile semplificare?

    Ciao a tutti!
    In alcuni dei miei siti web (tutti lavoretti amatoriali senza pretese) ho sempre esigenze di leggere, visualizzare, modificare, eliminare, ordinare ecc.. DATI da tabelle mysql.

    Immaginate la più classica delle rubriche telefoniche con una tabella con:
    nome/cognome/indirizzo/telefono.

    Volendo visualizzare questa tabella e permettere di ordinarla a piacimento dell'utente e poi eventualmente modificare o inserire nuovi dati io devo scrivere un codice molto molto lungo.

    Non so se sia dovuto alla mia poca conoscenza del codice php, ma mi sembra strano che non esista un modo più "automatico" per realizzare quanto descritto sopra.
    In fondo le mie richieste mi sembrano cose molto comuni.

    Dico questo perchè avento imparato prima un po' di ASP, queste cose sono molto automatizzate utilizzando un editor di sviluppo.
    Agendo solo scrivendo il codice tutto sembra complicarsi.
    Qual'è il segreto per velocizzate la cosa?
    Grazie

  2. #2
    Basta cambiare OREDER BY alla query... o ho capito male?

    Se hai
    select * from tabella order by Cognome desc

    la puoi tenere "modificabile" tramite una variabile che passi dopo il click sull'ordinamento

    select * from tabella order by $ordinamento desc
    Fantasupermegafavolipermeramagicultra irresistibili
    4 10 30 100 1001 personaggi insuperabili fantaincredibili ultraimpossibili iperterribili irresistibili!!!

    "... a quell'età ... bastava un dito per fare la pace ..."
    fotine

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    183
    provo a spiegarmi meglio inserendo un codice...
    con il codice sotto riportato nella mia pagina web mostro i dati presenti in un tabella mysql

    vengono quindi visualizzati i campi:
    Persona // Nome // Cognome // Alias // CF // PIVA
    di questi vengono mostrati i primi 20 valori trovati
    cliccando sui link sopra la tabella è possibile vedere i successivi 20 valori o i precedenti
    ogni riga è selezionabile per vedere ulteriori dettagli
    inoltre cliccando su un pulsante sopra la colonna si cambia i parametri di ordinamento

    per fare tutte queste cose (che mi sembrano cose molto basilari) ho dovuto scrivere un codice lunghissimo (sotto riportato).
    La mia domanda in sostanza era:
    per fare queste cose banali perchè ho dovuto scrivere un codice così lungo?
    come avrei dovuto semplificare la cosa?
    sono sicuro che conoscendo meglio php avrei ottenuto le stesse cose con meno sforzo.

    Ecco il codice
    codice:
    echo"Elenco persone
    
    ";
    
    $page = 1;
    $oo=1;
    
    $ordine1 = "p";
    $ordine2 = "nome";
    $ordine3 = "cognome";
    $v1 = "@";
    $v2 = "_";
    $v3 = "_";
    $v4 = "_";
    $v5 = "_";
    $v6 = "_";
    
    if ( isset ($_GET['page']))
    {
    $page = $_GET['page'];
    $oo =$_GET['oo'];
    }
    
    if ( isset ($_POST['o1'] ))  
    {
    $ordine1 = "p";
    $ordine2 = "nome";
    $ordine3 = "cognome";
    $v1 = "@";
    $v2 = "_";
    $v3 = "_";
    $v4 = "_";
    $v5 = "_";
    $v6 = "_";
    $page = $_POST['page'];
    $oo=1;
    }
    
    if ( isset ($_POST['o2'] ))  
    {
    $ordine1 = "nome";
    $ordine2 = "cognome";
    $ordine3 = "p";
    $v1 = "_";
    $v2 = "@";
    $v3 = "_";
    $v4 = "_";
    $v5 = "_";
    $v6 = "_";
    $page = $_POST['page'];
    $oo=2;
    }
    
    if ( isset ($_POST['o3'] ))  
    {
    $ordine1 = "cognome";
    $ordine2 = "nome";
    $ordine3 = "p";
    $v1 = "_";
    $v2 = "_";
    $v3 = "@";
    $v4 = "_";
    $v5 = "_";
    $v6 = "_";
    $page = $_POST['page'];
    $oo=3;
    }
    
    if ( isset ($_POST['o4'] ))  
    {
    $ordine1 = "alias";
    $ordine2 = "nome";
    $ordine3 = "cognome";
    $v1 = "_";
    $v2 = "_";
    $v3 = "_";
    $v4 = "@";
    $v5 = "_";
    $v6 = "_";
    $page = $_POST['page'];
    $oo=4;
    }
    
    if ( isset ($_POST['o5'] ))  
    {
    $ordine1 = "pcf";
    $ordine2 = "p";
    $ordine3 = "cognome";
    $v1 = "_";
    $v2 = "_";
    $v3 = "_";
    $v4 = "_";
    $v5 = "@";
    $v6 = "_";
    $page = $_POST['page'];
    $oo=5;
    }
    
    if ( isset ($_POST['o6'] ))  
    {
    $ordine1 = "ppiva";
    $ordine2 = "p";
    $ordine3 = "cognome";
    $v1 = "_";
    $v2 = "_";
    $v3 = "_";
    $v4 = "_";
    $v5 = "_";
    $v6 = "@";
    $page = $_POST['page'];
    $oo=6;
    }
    
    if ( $oo==1)  
    {
    $ordine1 = "p";
    $ordine2 = "nome";
    $ordine3 = "cognome";
    $v1 = "@";
    $v2 = "_";
    $v3 = "_";
    $v4 = "_";
    $v5 = "_";
    $v6 = "_";
    }
    
    if ( $oo==2)  
    {
    $ordine1 = "nome";
    $ordine2 = "cognome";
    $ordine3 = "p";
    $v1 = "_";
    $v2 = "@";
    $v3 = "_";
    $v4 = "_";
    $v5 = "_";
    $v6 = "_";
    }
    
    if ( $oo==3)  
    {
    $ordine1 = "cognome";
    $ordine2 = "nome";
    $ordine3 = "p";
    $v1 = "_";
    $v2 = "_";
    $v3 = "@";
    $v4 = "_";
    $v5 = "_";
    $v6 = "_";
    }
    
    if ( $oo==4)  
    {
    $ordine1 = "alias";
    $ordine2 = "nome";
    $ordine3 = "cognome";
    $v1 = "_";
    $v2 = "_";
    $v3 = "_";
    $v4 = "@";
    $v5 = "_";
    $v6 = "_";
    }
    
    if ( $oo==5)   
    {
    $ordine1 = "pcf";
    $ordine2 = "p";
    $ordine3 = "cognome";
    $v1 = "_";
    $v2 = "_";
    $v3 = "_";
    $v4 = "_";
    $v5 = "@";
    $v6 = "_";
    }
    
    if ( $oo==6)  
    {
    $ordine1 = "ppiva";
    $ordine2 = "p";
    $ordine3 = "cognome";
    $v1 = "_";
    $v2 = "_";
    $v3 = "_";
    $v4 = "_";
    $v5 = "_";
    $v6 = "@";
    }
    
    /* Recupero dei dati da inserire nel form */
    
    $sql = "SELECT * FROM persone ORDER BY $ordine1 ASC, $ordine2 ASC, $ordine3 ASC";
    $rs = mysql_query($sql, $link) or die ("Errore recupero dati" . mysql_error());
    
    /* Setto un array nel quale vado ad inserire i dati che recupero*/
    
    $dati = array();
    $dati1 = array();
    $dati2 = array();
    $dati3 = array();
    $dati4 = array();
    $dati5 = array();
    $dati6 = array();
    $dati7 = array();
    
    /* Scorrendo i record assegno i valori all'array */
    
    while ($rec = mysql_fetch_array($rs))
    {
    $dati[] = $rec;
    }
    
    $nda=0;
    foreach ($dati as $d)
    {
    $p = $d['p'];
    $pid = $d['pid'];
    $nome = $d['nome'];
    $cognome = $d['cognome'];
    $alias = $d['alias'];
    $cf = $d['pcf'];
    $piva = $d['ppiva'];
    
    $dati1[]=$p;
    $dati2[]=$pid;
    $dati3[]=$nome;
    $dati4[]=$cognome;
    $dati5[]=$alias;
    $dati6[]=$cf;
    $dati7[]=$piva;
    
    $nda++;
    }
    
    $last_page= ceil($nda / DDP);
    $pml = round(($page-1)/2);
    $pmr = round($page+(($last_page-$page)/2));;
    
    ?>
    
    <table border=1>
    
    <tr>
    <tr><td align="center" colspan="7" align="center">[b]
    <?php
    
    if($page != 1)
    {
    ?>
    &oo=<?php echo $oo; ?>">pag.1.
    <?php
    }
    
    if($pml != ($page-1) AND $plm != ($page) )
    {
    
    ?>
    <?php echo "pag.".($pml) ; ?>
    <?php
    }
    
    if($page <= $last_page AND $page > 2)
    {
    
    ?>
    <?php echo "pag.".($page-1) ; ?>
    <?php
    }
    
    ?>
    <?php echo "_pag.".$page."/".$last_page."_"; ?>
    <?php
    
    if($page >= 1 AND ($page+1) < $last_page)
    {
    
    ?>
    <?php echo "pag.".($page+1) ; ?>
    <?php
    }
    
    if($pmr != ($page+1) AND $pmr != ($page) )
    {
    
    ?>
    <?php echo "pag.".($pmr) ; ?>
    <?php
    }
    
    if($page != $last_page)
    {
    
    ?>
    <?php echo "pag.".$last_page; ?>
    <?php
    }
    
    ?>
    </td></tr>
    
    <form method="post" action="elenco_persone.php">
    
    <tr>
    <input type="hidden" name="page" value="<?php echo $page ?>" />
    <TD><input type="submit" name="o1" value="<?php echo $v1 ; ?>" /></TD>
    <TD><input type="submit" name="o2" value="<?php echo $v2 ; ?>" /></TD>
    <TD><input type="submit" name="o3" value="<?php echo $v3 ; ?>" /></TD>
    <TD><input type="submit" name="o4" value="<?php echo $v4 ; ?>" /></TD>
    <TD><input type="submit" name="o5" value="<?php echo $v5 ; ?>" /></TD>
    <TD><input type="submit" name="o6" value="<?php echo $v6 ; ?>" /></TD>
    </form>
    </tr>
    
    <tr><TD>Persona</TD><TD>[b]Nome</TD><TD>[b]Cognome</TD><TD>[b]Alias</TD><TD>[b]CF</TD><TD>[b]PIVA</TD><TD>Selezione</TD></tr>
    
    <?php
    
    $b=(($page*DDP)-DDP);
    $c=1;
    
    while ($c <= DDP)
    {
    $p=$dati1[$b];
    $pid=$dati2[$b];
    $nome=$dati3[$b];
    $cognome=$dati4[$b];
    $alias=$dati5[$b];
    $cf=$dati6[$b];
    $piva=$dati7[$b];
    
    ?>
    <form method="post" action="persona.php">
    <input type="hidden" name="pid" value="<?php echo $pid ?>" />
    
    <tr>
    <TD WIDTH=400><?php echo $p; ?></td>
    <TD><?php echo $nome; ?></td>
    <TD><?php echo $cognome; ?></td>
    <TD><?php echo $alias; ?></td>
    <TD><?php echo $cf; ?></td>
    <TD><?php echo $piva; ?></td>
    
    <?php
    if($pid != "")
    {
    ?>
    <TD><input type="submit" name="form" value="seleziona" /></form></td>
    <?php
    }
    ?>
    
    </tr>
    
    <?php
    
    $b++;
    $c++;
    }
    
    ?>
    
    </TABLE>
    
    </td>
    
    </tr>

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.