Visualizzazione dei risultati da 1 a 3 su 3

Discussione: ordinare i record

  1. #1
    Utente di HTML.it L'avatar di polinet
    Registrato dal
    Nov 2000
    Messaggi
    993

    ordinare i record

    Ciao a tutti, ho la necessita di ordinare i record.
    Tramite il pannello di controllo del sito l'amministratore puo decidere in quale posizione visualizzare il record.

    Avevo pensato ad una cosa cosi:
    <form name="ordina" action="ordina.php" method="post">
    Codice PHP:
    <?
    // prima query
    $sql "select * from sfb order by id_pro";
    $prt_view_news mysql_db_query$nome_db$sql$db) or die(mysql_error());    
    $nr=mysql_num_rows($prt_view_news);
    //seconda query
    $query_limit mysql_query("SELECT * FROM sfb LIMIT $primo$per_page");// questo per la paginazione
    //estraggo e metto nella tabella i vari campi......etc....
    //qui ho il campo che mi recupera ID_PRO
    <input type="radio" name="id_pro" value="<? echo $riga['id_pro']; ?>">
    //qui faccio una select per la posizione
    <select name="ord[<?= $riga['ord ']; ?>]">
    <?
            for (
    $k=1$k<$nr+$k++)
            {
            echo 
    "<option value=\"$k\"";
            if(
    $k==$riga['ord']) echo "selected";
            echo 
    ">$k</option>\n";
            }
    ?>
    </select>
    </form>
    //etc....
    ora quando passo i dati allo script ordina.php devo aggiornare la tabella!
    Il problema e`che non riesco a recuperare il campo ORD (che e`una array)
    Codice PHP:
    $sql " UPDATE sfb SET ord= qui che ci metto!!!! where id_pro = $id_pro ";
    $ordina mysql_db_query$nome_db$sql$db) or die(mysql_error());
    echo 
    $sql
    Premetto che con gli array non ho molta dimestichezza...!!! non mi entrano in testa!!!!
    GRAZIE per l'aiuto!
    ¿Hasta la pasta?

  2. #2
    Utente di HTML.it L'avatar di polinet
    Registrato dal
    Nov 2000
    Messaggi
    993
    Trovato errore!!!!!
    qui ho modificato cosi:
    <select name="ord[<?= $riga['id_pro']; ?>]">
    Codice PHP:
        <?
            
    for ($k=1$k<$nr+$k++)
            {
            echo 
    "<option value=\"$k\"";
            if(
    $k==$riga['ord']) echo "selected";
            echo 
    ">$k</option>\n";
            }
        
    ?>
    e nel file ordina.php:
    Codice PHP:
    if(isset($_POST['ord'])){
        while(list(
    $key,$val)=each($_POST['ord'])){
            
    $sql " UPDATE sfb set ord = $val where id_pro = $key";
            
    $ordina mysql_db_query$nome_db$sql$db) or die(mysql_error());
            echo 
    $sql;
        }

    Funziona alla perfezione!!!
    GRAZIE!!!!!
    ¿Hasta la pasta?

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    121
    Il modo in cui devi ordinare i campi non mi è ben chiaro, cmq per quanto riguarda il recupero dell'array ord passato in post è abbastanza semplice:
    quando fai submit di un form tutti i dati dei campi vengono inseriti in un array globale $_POST o $_GET, a seconda del method che hai utilizzato, il quale ha come indici i nomi dei campi e come valore il value; per questo il valore di un campo puoi recuperarlo leggendo la variabile $_POST['nomecampo'] o $_GET['nomecampo'], ma nel momento in cui fai submit di un array di campi praticamente avrai un array all'interno di un sigolo elemento di $_POST o $_GET, quindi in sostanza un array multidimensionale.
    Nel tuo caso per recuperare il valore del campo ord[1] in ordina.php dovrai riferirti a $_POST['ord'][1], cioè il primo elemento dell'array contenuto nell'elemento con indice 'ord' di $_POST

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 © 2024 vBulletin Solutions, Inc. All rights reserved.