Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Spostare due record alla volta all'inizio del DB

    Allora proviamo a spiegarmi:

    Sto creando un sito per una libreria. Nella Home ci sarà una sezione dove compariranno due libri (i primi della lista nel database). Poi ho creato la parte admin dove inserire modificare cancellare i libri...il mio problema è che vorrei creare un codice che mi potesse far spostare un qualsiasi libro all'inizio della lista nel DB, però dovrebbero essere solo due libri alla volta da impostare.

    Ho trovato solo questo codice:

    codice:
    <% 
    Set rs = Server.CreateObject("ADODB.Recordset") 
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.MapPath("/mdb-database/Nbook.mdb")
    
    'Enter the script 
    if request("type")<>"" then 
        select case request("type") 
        case 0 
            query = "select top 1 ordine from book_novita where ordine > "& request("order") &"  order by ordine ASC" 
            rs.Open query,conn 
            if not rs.EOF then 
                order = rs(0) 
            end if 
            rs.Close 
        case 1 
            query = "select top 1 ordine from book_novita where ordine < "& request("order") &"  order by ordine DESC" 
            rs.Open query,conn 
            if not rs.EOF then 
                order = rs(0) 
            end if 
            rs.Close 
        end select 
         
        if order <> "" then 
            query = "update book_novita set ordine = "& request("order") &" where ordine="& order 
            conn.execute query 
         
            query = "update book_novita set ordine = "& Order &" where ID="& request("cod") 
            conn.execute query 
        end if 
    end if 
    
    query = "select * from book_novita order by ordine" 
    rs.Open query, conn
    %> 
    
    <table width="500" border="0" align="center" cellpadding="0" cellspacing="0"> 
      <tr> 
        <td valign="top">&amp;nbsp;</td> 
        <td valign="top" align="center">Modifica l'ordine dei modelli  sulla pagina 
                generale
     
          
     
        </td> 
      </tr> 
      <tr> 
        <td valign="top" width="10%"><table width="100%" border="0" cellpadding="0" cellspacing="0"> 
      <tr> 
        <td  height="25">&amp;nbsp;</td> 
      </tr> 
      <tr> 
        <td align="center"> 
        
     
        
     
         
        </td> 
      </tr> 
    </table></td> 
        <td valign="top" width="90%"><table width="100%" border="0" cellpadding="0" cellspacing="0"> 
    <tr> 
         
        <td width="50%" height="25">Modello</td> 
        <td width="22%" align="center">Sposta su</td> 
        <td width="22%" align="center">Sposta giu</td> 
        <td width="6%" align="center">ordine</td> 
    </tr> 
    <% do while not rs.EOF  %> 
        <tr> 
            <td ><%= rs.Fields("Titolo")%></td> 
            <td align="center">&order=<%= rs.Fields("ordine")%>">[su]</td> 
            <td align="center">&order=<%= rs.Fields("ordine")%>">[giu]</td> 
            <td align="center"><%= rs.Fields("ID")%></td> 
         
        </tr> 
    <% 
        rs.MoveNext 
       loop 
        
       'close all 
       rs.Close 
       set rs = nothing 
       conn.close 
       set conn = nothing 
    %> 
    </table></td> 
      </tr> 
    </table>
    <% 
    Set rs = Server.CreateObject("ADODB.Recordset") 
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.MapPath("/mdb-database/Nbook.mdb")
    
    'Enter the script 
    if request("type")<>"" then 
        select case request("type") 
        case 0 
            query = "select top 1 ordine from book_novita where ordine > "& request("order") &"  order by ordine ASC" 
            rs.Open query,conn 
            if not rs.EOF then 
                order = rs(0) 
            end if 
            rs.Close 
        case 1 
            query = "select top 1 ordine from book_novita where ordine < "& request("order") &"  order by ordine DESC" 
            rs.Open query,conn 
            if not rs.EOF then 
                order = rs(0) 
            end if 
            rs.Close 
        end select 
         
        if order <> "" then 
            query = "update book_novita set ordine = "& request("order") &" where ordine="& order 
            conn.execute query 
         
            query = "update book_novita set ordine = "& Order &" where ID="& request("cod") 
            conn.execute query 
        end if 
    end if 
    
    query = "select * from book_novita order by ordine" 
    rs.Open query, conn
    %> 
    
    <table width="500" border="0" align="center" cellpadding="0" cellspacing="0"> 
      <tr> 
        <td valign="top">&amp;nbsp;</td> 
        <td valign="top" align="center">Modifica l'ordine dei modelli  sulla pagina 
                generale
     
          
     
        </td> 
      </tr> 
      <tr> 
        <td valign="top" width="10%"><table width="100%" border="0" cellpadding="0" cellspacing="0"> 
      <tr> 
        <td  height="25">&amp;nbsp;</td> 
      </tr> 
      <tr> 
        <td align="center"> 
        
     
        
     
         
        </td> 
      </tr> 
    </table></td> 
        <td valign="top" width="90%"><table width="100%" border="0" cellpadding="0" cellspacing="0"> 
    <tr> 
         
        <td width="50%" height="25">Modello</td> 
        <td width="22%" align="center">Sposta su</td> 
        <td width="22%" align="center">Sposta giu</td> 
        <td width="6%" align="center">ordine</td> 
    </tr> 
    <% do while not rs.EOF  %> 
        <tr> 
            <td ><%= rs.Fields("Titolo")%></td> 
            <td align="center">&order=<%= rs.Fields("ordine")%>">[su]</td> 
            <td align="center">&order=<%= rs.Fields("ordine")%>">[giu]</td> 
            <td align="center"><%= rs.Fields("ID")%></td> 
         
        </tr> 
    <% 
        rs.MoveNext 
       loop 
        
       'close all 
       rs.Close 
       set rs = nothing 
       conn.close 
       set conn = nothing 
    %> 
    </table></td> 
      </tr> 
    </table>
    Però così mi sposta il record di un posto solo...però è un po' scomodo...può essere modificato questo script oppure no?

  2. #2
    Io ho avuto lo stesso problema per http://www.domus-area.com/home.asp/

    Allora, conosci in asp la funzione Randomize()?
    Serve a generare un numero Casuale, richiamandolo cosi: Rnd().

    Apri il database dei libri che potenzialmente potrebbero essere scelti per comparire nel box dei due libri.
    Se sono tutti potenziali candidati allora la tua query sarà:
    "SELECT * FROM Libri;"

    dopo attribuisci alla variabile intLibri il valore objRSLibri.RecordCount.

    In questo modo sai quanti libri ci sono utilizzando questa funzione:
    intSorteggiato = Int(((intLibri-1)*Rnd())+1)

    questo ti restituisce un numero compreso tra 1 e intLibri.
    Dopo ->
    DO WHILE intSorteggiato_2=intSorteggiato
    intSorteggiato_2 = Int(((intLibri-1)*Rnd())+1)
    LOOP

    cioè ti garantisci che il primo libro sia diverso dal secondo.

    allora hai due puntatori a due elementi del db

    a questo punto il recordset è ok usa il metodo objRSLibri.Move intSorteggiato e quanto hai finito (la tabella HTML magari) metti objRSLibri.Move intSorteggiato_2 e quello di prende solo i due libri casuali.

    Ciao.

    Se non hai capito qualcosa scrivi al mio indirizzo email.
    Think global, act local.

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.