Visualizzazione dei risultati da 1 a 6 su 6

Discussione: script per ordinare

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    489

    script per ordinare

    ciao a tutti!

    vorrei fare una cosa semplice, ma mi vengono in mente solo modi difficili per farlo...

    ho un alista di prodotti nel database fatta piu o meno cosi:

    id - nomeprodotto - ordine
    1 pesce 1
    2 frutta 2
    3 pane 3
    4 bibite 4
    5
    ... etc


    ordine serve a ordinare i prodotti. ho una pagina nella quale vengono visualizzati tutti i prodotti seguendo l ordine asc del numero ordine.

    l amministratore su questa pagina vede delle freccie che se premute devono cambiare il numero ordine.

    se io ora peró premo "su" su pane, e faccio diventare pane "2", mi ritrovo sia pane che frutta con 2. e mettere anche frutta automaticamente su 3 é anche un casino, perche non ho la garanzia che frutta esista. potrebbe essere che frutta é stato cancellato, e cio mi obbligherebbe a mettere pane su 1 (invec che due) e pesce su 2 oppure 3... in poche parole mi sto incasinando e non mi vengono in mente modi semplici per cambiare l ordine dei prodotti con delle freccie...

    grazie

    ciao

    igor

  2. #2
    si potrebbe fare così:

    -selezioni il record che vuoi spostare AND quello ordine-1
    - poi fai un update con ordine del primo = ordine del secondo e ordine del secondo = ordine del primo
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  3. #3
    non ho potuto verificarlo, ma dovrebbe essere qualcosa del genere

    Codice PHP:
    // presuppongo che ordine si passato da get
    $sql "SELECT id,ordine FROM tabella WHERE ordine=$_GET[ordine] AND ordine=$_GET[ordine]-1";
    $res mysql_query($sql$conn);

    $valore1 mysql_fetch_array($res);
    $valore2 mysql_fetch_array($res);

    $sql1 "UPDATE tabella SET ordine=$valore1[ordine] WHERE id=$valore2[id]";
    $sql2 "UPDATE tabella SET ordine=$valore2[ordine] WHERE id=$valore1[id]";

    mysql_query($sql1,$conn);
    mysql_query($sql2,$conn); 
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    489
    ciao!

    grazie della risposta, ma se ordine-1 non esiste?

    cioé se nell esempio di prima frutta é stato cancellato, nel database ho questo:



    1 pesce 1
    3 pane 3
    4 bibite 4

    se ora voglio invertire pane e pesce non funziona perche pesce é 1 e non due...

    grazie mille per l aiuto.

  5. #5
    Giusto, non ci avevo pensato

    Fai due query

    1 selezioni ordine=$_GET[ordine]

    e l'altra "minore" a $_GET[ordine] LIMIT 0,1 order by ordine desc

    qualcosa del genere insomma

    prendi il record e il primo record minore a quello preso.
    PHP LEARN - Guide, tutorial e articoli sempre aggiornati
    NUOVO: standardLib; il potente framework PHP é ora disponibile
    *******************************************
    Scarica oggi la tua copia di MtxEventManager

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    489
    giusto! grazie mille...

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