Visualizzazione risultati 1 fino 7 di 7

Discussione: Ordinamento Crescente e Decrescente Tabella Dati a Mezzo Campo Linkato

  1. #1
    Guest

    Smile Ordinamento Crescente e Decrescente Tabella Dati a Mezzo Campo Linkato

    Chiedo gentilmente aiuto per risolvere un problema di ordinamento crescente e decrescente di dati contenuti in una tabella realizzata con uno script php mysql dove ci sono due campi uno identificato come nome e il secondo cognome, io vorrei rendere cliccabili questi due campi e fare in modo che i dati che in essi sono contenuti vengano ordinati in modo crescente e decrescente , sperando nel vs aiuto , qui di seguito posto lo script grazie

    Codice PHP:
    <?php
    mysql_connect
    ("localhost", "utente", "password") or
    die(
    "Connessione non riuscita: " . mysql_error());
    mysql_select_db("ninophp");
    if(
    $_POST)
    {
    $ids = isset($_POST['id']) ? $_POST['id'] : array();
    elimina_record($ids);
    }
    elseif(isset(
    $_GET['id']))
    {
    elimina_record(array($_GET['id']));
    }
    else
    mostra_lista();

    function
    mostra_lista()
    {
    // mostro un eventuale messaggio
    if(isset($_GET['msg']))
    echo
    '<b>'.htmlentities($_GET['msg']).'</b><br /><br />';

    ?>
    <html>
    <center>
    <?
    // preparo la query
    $query = "SELECT id,nome,cognome FROM indirizzi";

    // invio la query
    $result = mysql_query($query);

    // controllo l'esito
    if (!$result) {
    die(
    "Errore nella query $query: " . mysql_error());
    }
    echo
    '
    <form name="form1" method="post" action="">
    <table bgcolor="#ffff99" border="1">
    <tr bgcolor="#FF0000">
    <th>&nbsp;</th>
    <th>Nome</th>
    <th>Cognome</th>
    <th>Elimina</th>
    <th>&nbsp;</th>
    </tr>'
    ;
    while (
    $row = mysql_fetch_assoc($result))
    {
    $nome = htmlentities($row['nome']);
    $cognome = htmlentities($row['cognome']);
    // preparo il link per la modifica dei dati del record
    $link = $_SERVER['PHP_SELF'].'?id=' . $row['id'];
    echo
    "<tr>
    <td><input name=\"id[]\" type=\"checkbox\" value=\"
    $row[id]\" /></td>
    <td>
    $nome</td>
    <td>
    $cognome</td>
    <td><center><a href=\"
    $link\"><img src=\"x.gif\"></a></center></td>
    <tr>"
    ;
    }
    echo
    '</table>
    <br />
    <input type="submit" name="Submit" value="Elimina record selezionati" />
    </form>'
    ;
    ?>
    <CENTER><a href="menuprincipale.php" title="MENU PRINCIPALE">MENU PRINCIPALE</a></CENTER>
    <?
    // libero la memoria di PHP occupata dai record estratti con la SELECT
    mysql_free_result($result);

    // chiudo la connessione a MySQL
    mysql_close();
    }

    function
    elimina_record($ids)
    {
    // verifico che almeno un id sia stato selezionato
    if(count($ids) < 1)
    {
    $messaggio = urlencode("Nessun record selezionato!");
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
    exit;
    }

    // per precauzione converto gli ID in interi
    $ids = array_map('intval',$ids);

    // creo una lista di ID per la query
    $ids = implode(',',$ids);

    // preparo la query
    $query = "DELETE FROM indirizzi WHERE id IN ($ids)";

    // invio la query
    $result = mysql_query($query);

    // controllo l'esito
    if (!$result) {
    die(
    "Errore nella query $query: " . mysql_error());
    }

    // conto il numero di record cancellati
    $num_record = mysql_affected_rows();

    // chiudo la connessione a MySQL
    mysql_close();

    $messaggio = urlencode("Numero record cancellati: $num_record");
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
    }
    echo
    '
    <table border="1">
    <tr>
    <th>&nbsp;</th>
    <th>MENU</th>
    <th>&nbsp;</th>
    <td><a href="menuprincipale.php">menu</a></td>
    <td><a href="inserire.php">Inserimento dati</a></td>
    <th>&nbsp;</th>
    </tr>'
    ;


    ?>

    </center>
    </html>
    *Usa i tag appositi quando devi postare del codice*
    Ultima modifica di debug : 28-08-2008 alle ore 12.03.31

  2. #2
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Prova cosi, dovrebbe funzionare:
    Codice PHP:
    <?php
    mysql_connect
    ("localhost", "utente", "password") or
    die(
    "Connessione non riuscita: " . mysql_error());
    mysql_select_db("ninophp");
    if(
    $_POST)
    {
    $ids = isset($_POST['id']) ? $_POST['id'] : array();
    elimina_record($ids);
    }
    elseif(isset(
    $_GET['id']))
    {
    elimina_record(array($_GET['id']));
    }
    else
    mostra_lista();

    function
    mostra_lista()
    {
    // mostro un eventuale messaggio
    if(isset($_GET['msg']))
    echo
    '<b>'.htmlentities($_GET['msg']).'</b><br /><br />';

    ?>
    <html>
    <center>
    <?
    /* Inizio Configurazione */
    $crescente = "ASC";
    $decrescente = "DESC";

    $standard = $crescente; // Modifica questo con l'ordinamento standard

    if(empty($_GET['ordine'])){
    $ordine = $standard;
    }elseif(
    $_GET['ordine'] == "decrescente"){
    $ordine = $decrescente;
    }elseif(
    $_GET['ordine'] == "crescente"){
    $ordine = $crescente;
    }else{
    echo
    "ERRORE NELL'ORDINAMENTO.";
    }

    /* Fine Configurazione */
    // preparo la query
    $query = "SELECT id,nome,cognome FROM indirizzi ORDER BY id $ordine";

    // invio la query
    $result = mysql_query($query);

    // controllo l'esito
    if (!$result) {
    die(
    "Errore nella query $query: " . mysql_error());
    }
    echo
    '
    <form name="form1" method="post" action="">
    <table bgcolor="#ffff99" border="1">
    <tr bgcolor="#FF0000">
    <th>&nbsp;</th>
    <th>Nome</th>
    <th>Cognome</th>
    <th>Elimina</th>
    <th>&nbsp;</th>
    </tr>'
    ;
    while (
    $row = mysql_fetch_assoc($result))
    {
    $nome = htmlentities($row['nome']);
    $cognome = htmlentities($row['cognome']);
    // preparo il link per la modifica dei dati del record
    $link = $_SERVER['PHP_SELF'].'?id=' . $row['id'];
    echo
    "<tr>
    <td><input name=\"id[]\" type=\"checkbox\" value=\"
    $row[id]\" /></td>
    <td>
    $nome</td>
    <td>
    $cognome</td>
    <td><center><a href=\"
    $link\"><img src=\"x.gif\"></a></center></td>
    <tr>"
    ;
    }
    echo
    '</table>
    <br />
    <input type="submit" name="Submit" value="Elimina record selezionati" />
    </form>'
    ;
    ?>
    <CENTER><a href="menuprincipale.php" title="MENU PRINCIPALE">MENU PRINCIPALE</a></CENTER>
    <?
    // libero la memoria di PHP occupata dai record estratti con la SELECT
    mysql_free_result($result);

    // chiudo la connessione a MySQL
    mysql_close();
    }

    function
    elimina_record($ids)
    {
    // verifico che almeno un id sia stato selezionato
    if(count($ids) < 1)
    {
    $messaggio = urlencode("Nessun record selezionato!");
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
    exit;
    }

    // per precauzione converto gli ID in interi
    $ids = array_map('intval',$ids);

    // creo una lista di ID per la query
    $ids = implode(',',$ids);

    // preparo la query
    $query = "DELETE FROM indirizzi WHERE id IN ($ids)";

    // invio la query
    $result = mysql_query($query);

    // controllo l'esito
    if (!$result) {
    die(
    "Errore nella query $query: " . mysql_error());
    }

    // conto il numero di record cancellati
    $num_record = mysql_affected_rows();

    // chiudo la connessione a MySQL
    mysql_close();

    $messaggio = urlencode("Numero record cancellati: $num_record");
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
    }
    echo
    '
    <table border="1">
    <tr>
    <th>&nbsp;</th>
    <th>MENU</th>
    <th>&nbsp;</th>
    <td><a href="menuprincipale.php">menu</a></td>
    <td><a href="inserire.php">Inserimento dati</a></td>
    <th>&nbsp;</th>
    </tr>'
    ;


    ?>

    </center>
    </html>
    Apprezzi l'aiuto? Offrimi un caffè!

  3. #3
    Guest

    Predefinito

    Però, per far comprendere meglio:

    Per ordinare una lista nella query basta inserire un "ORDER BY valore", difatti se vedi l'aggiunta:
    Codice PHP:
    $query = "SELECT id,nome,cognome FROM indirizzi ORDER BY $ordine";
    In questo modo ordinerà per $ordine ^^

    Se vuoi ordinare in modo crescente o decrescente aggiungi dopo $ordine -> " DESC" oppure " ASC"
    Ultima modifica di comunitavirtuali : 28-08-2008 alle ore 20.28.22

  4. #4
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Scusa no comunitavirtuali io cosa ho scritto qui:
    Codice PHP:
    /* Inizio Configurazione */
    $crescente = "ASC";
    $decrescente = "DESC";

    $standard = $crescente; // Modifica questo con l'ordinamento standard

    if(empty($_GET['ordine'])){
    $ordine = $standard;
    }elseif(
    $_GET['ordine'] == "decrescente"){
    $ordine = $decrescente;
    }elseif(
    $_GET['ordine'] == "crescente"){
    $ordine = $crescente;
    }else{
    echo
    "ERRORE NELL'ORDINAMENTO.";
    }

    /* Fine Configurazione */
    // preparo la query
    $query = "SELECT id,nome,cognome FROM indirizzi ORDER BY id $ordine";
    A seconda del valore GET pagina.php?ordine=crescente/decrescente esso visualizza l'ordine...

    paolomi hai risolto?
    Apprezzi l'aiuto? Offrimi un caffè!

  5. #5
    Guest

    Smile problema di eliminazione più record in una sola volta

    Ho rielaborato un po' lo script di ordinamento crescente e descrescente
    con campi linkabili tutto ok , ma ora non mi funziona piu' il pulsante "Elimina record selezionati" , ho provato a selezionare con spunta in checkbox i vari record da cancellare , ma il pulsante creato non ha effetto su di loro , la cancellazione invece avviene cliccando l'immagine della x un record alla volta ( quello cmq mi sta bene che ci sia , ma non riesco a capire perchè non mi funziona piu' il pulsante "Elimina record selezionati" attendo gentile aiuto grazie rimetto nuovamente il listato
    PS: chiedo scusa a tutti se involontariamente violo qualche regola di questo forum ma non sono molto pratico e non lo conosco ancora bene .
    ecco lo script:


    Codice PHP:
    <?php
    mysql_connect
    ("localhost", "utente", "password") or
    die(
    "Connessione non riuscita: " . mysql_error());
    mysql_select_db("ninophp");
    if(
    $_POST)
    {
    $ids = isset($_POST['id']) ? $_POST['id'] : array();
    elimina_record($ids);
    }
    elseif(isset(
    $_GET['id']))
    {
    elimina_record(array($_GET['id']));
    }
    else
    mostra_lista();

    function
    mostra_lista()
    {
    // mostro un eventuale messaggio
    if(isset($_GET['msg']))
    echo
    '<b>'.htmlentities($_GET['msg']).'</b><br /><br />';
    }
    $query = "select id,nome,cognome from indirizzi";
    $rs = mysql_query($query) or die(mysql_error());
    $num = mysql_num_rows($rs);

    if (
    $num == 0)
    echo
    "<div style=\"text-align:center\">Nessun contatto nella presente tabella</div>";
    else
    {
    if(empty(
    $_GET['ordercampo']))
    $_GET['ordercampo'] = "id";

    if(empty(
    $_GET['order']))
    $_GET['order'] = "asc";

    if(
    $_GET['order']=="asc") {$ordinaVerso = "desc";}
    if(
    $_GET['order']=="desc") {$ordinaVerso = "asc";}
    $query = "select id,nome,cognome from indirizzi order by $_GET[ordercampo] $ordinaVerso ";
    $rs = mysql_query($query) or die(mysql_error());




    ?>

    <center><table bgcolor="#ffff99" border="1">
    <tr bgcolor="#FF0000">
    <td align="center"><strong>selez.</a></strong></td>
    <td align="center"><strong><a href="ordina69.php?ordercampo=<?php echo 'nome' ?>&order=<?php echo $ordinaVerso ?>" title="Inverti ordinamento">nome</a></strong></td>
    <td align="center"><strong><a href="ordina69.php?ordercampo=<?php echo 'cognome' ?>&order=<?php echo $ordinaVerso ?>" title="Inverti ordinamento">cognome</a></strong></td>
    <td align="center"><strong>elimina</a></strong></td>
    </tr></center>
    <?php

    while($results = mysql_fetch_array($rs))
    {
    $nome = htmlentities($results['nome']);
    $cognome = htmlentities($results['cognome']);
    $link = $_SERVER['PHP_SELF'].'?id=' . $results['id'];
    echo
    "<tr>";
    // $id = $results['id'];
    ;
    echo
    "<td><input name=\"id[]\" type=\"checkbox\" value=\"$results[id]\" /></td>";
    echo
    "<td width=\"35%\">&nbsp;$results[nome]</td>";
    echo
    "<td width=\"35%\">&nbsp;$results[cognome]</td>";
    echo
    "<td><center><a href=\"$link\"><img src=\"x.gif\"></a></center></td>";
    echo
    "</tr>";

    }
    //fine ciclo while

    } //fine else nel caso ci sia almeno un contatto nel comune

    function elimina_record($ids)
    {
    // verifico che almeno un id sia stato selezionato
    if(count($ids) < 1)
    {
    $messaggio = urlencode("Nessun record selezionato!");
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
    exit;
    }

    // per precauzione converto gli ID in interi
    $ids = array_map('intval',$ids);

    // creo una lista di ID per la query
    $ids = implode(',',$ids);

    // preparo la query
    $query = "DELETE FROM indirizzi WHERE id IN ($ids)";

    // invio la query
    $results = mysql_query($query);

    // controllo l'esito
    if (!$results) {
    die(
    "Errore nella query $query: " . mysql_error());
    }

    // conto il numero di record cancellati
    $num_record = mysql_affected_rows();

    // chiudo la connessione a MySQL
    // mysql_close();

    $messaggio = urlencode("Numero record cancellati: $num_record");
    header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
    }
    echo
    '
    <table border="1">
    <input type="submit" name="Submit" value="Elimina record selezionati" />
    <tr>
    <th>&nbsp;</th>
    <th>MENU</th>
    <th>&nbsp;</th>
    <td><a href="menuprincipale.php">menu</a></td>
    <td><a href="inserire.php">Inserimento dati</a></td>
    <th>&nbsp;</th>
    </tr>'
    ;

    ?>
    *usa i tag appropriati quando devi postare del codice*
    Ultima modifica di debug : 29-08-2008 alle ore 16.36.42

  6. #6
    Guest

    Predefinito

    Il prossimo post in cui posti del codice senza usare i tag vieni ammonito.


    ciao!

  7. #7
    Guest

    Predefinito

    Beh...scusami miki..ma perchè fai usare tutte qst variabili?
    Codice PHP:
    /* Inizio Configurazione */
    /*$crescente = "ASC";
    $decrescente = "DESC";

    $standard = $crescente; // Modifica questo con l'ordinamento standard */

    if(empty($_GET['ordine'])){
    $ordine = "ASC"; // Oppure se mai $standard = $crescente..non $standard :P
    }elseif($_GET['ordine'] == "decrescente"){
    $ordine = "DESC";
    }elseif(
    $_GET['ordine'] == "crescente"){
    $ordine = "ASC";
    }else{
    echo
    "ERRORE NELL'ORDINAMENTO.";
    }

    /* Fine Configurazione */
    // preparo la query
    $query = "SELECT id,nome,cognome FROM indirizzi ORDER BY id $ordine";
    Ciaooo! ^^

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •