Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    274

    Estrazione da access random, quotidiana

    Buongiorno,
    vorrei creare nel mio sito una sorta di "una barzelletta al giorno".

    facendo si che la barzelletta, una volta estratta, non venga più estratta fino a che tutte le barzellette non sono state estratte.

    C'è qualche link a guide che spiegano come fare ciò?

    oppure qualcuno può aiutarmi a crearlo?

    grazie.

  2. #2
    se le barze stanno in un db, aggiungi una colonna 'estratto' ed estrai solo da quelle con estratto=0

  3. #3

    Re: Estrazione da access random, quotidiana

    Originariamente inviato da Okocha
    Buongiorno,
    vorrei creare nel mio sito una sorta di "una barzelletta al giorno".

    facendo si che la barzelletta, una volta estratta, non venga più estratta fino a che tutte le barzellette non sono state estratte.

    C'è qualche link a guide che spiegano come fare ciò?

    oppure qualcuno può aiutarmi a crearlo?

    grazie.
    hehe perchè random? qualcuno conosce la lista delle barzellette? ^_^ pubblicale in fila

    cmq io aggiungerei anche un campo id così puoi prenderle random in modo semplice e soprattutto aggiornare lo stato estrazione (indicato da optime) in modo semplicissimo =)

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    274
    si le barze sono in un database, la chiave ID esiste gia, anche la colonna estratto.

    Il codice che ho ora è questo
    codice:
    <%@Language=VBScript%>
    <%Option Explicit%>
    <%
    Dim objConn, objRSrnd, strProvider, strPathDB, SQL 
    strProvider = "Provider=Microsoft.Jet.OLEDB.4.0; data source="
    strPathDB = "d:\rootdatabase\database.mdb" 
    Set objConn = Server.CreateObject("ADODB.Connection") 
    objConn.Open strProvider & strPathDB  
     
    
    SQL = "SELECT Max(ID) AS MaxID, Min(ID) AS MinID FROM tabella" 
    
    Set objRSrnd = objConn.Execute(SQL) 
    
    Dim maxID, minID, rndID
    maxID = objRSrnd("MaxID")
    minID = objRSrnd("MinID") 
    
    Randomize 
    rndID = Int((maxID - minID + 1) * Rnd + minID) 
    
    SQL = "SELECT * FROM tabella WHERE ID >= " & rndID       
    
    Set objRSrnd = objConn.Execute(SQL) 
    
    Response.Write "Record casuale:
    "
    Dim fld 
    For Each fld In objRSrnd.Fields  
    Response.Write "" & fld.Name & ": " & objRSrnd(fld.Name) & "
    "
    Next 
    objConn.Close
    Set objConn = Nothing
    %>
    Questo fa solo l'estrazione random.

    Come faccio per passare il valore di "estratto" da zero a uno?

  5. #5
    fai una query di update alla riga con id = rndid
    dopo il next (prima di chiudere l'oggetto objconn)

  6. #6
    ricordati di far girare una query che controlli che ci sia qualcosa da estrarre!

    SELECT COUNT(*) FROM Tabella WHERE Estratto=0

    se la count i riporta zero (cioè hai estratto tutto) riporti tutto a zero

    UPDATE tabella SET Estratto=0


  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    274
    Potrebbe andare così?

    codice:
    <%@Language=VBScript%>
    <%Option Explicit%>
    <%
    Dim objConn, objRSrnd, strProvider, strPathDB, SQL 
    strProvider = "Provider=Microsoft.Jet.OLEDB.4.0; data source="
    strPathDB = "d:\rootdatabase\database.mdb" 
    Set objConn = Server.CreateObject("ADODB.Connection") 
    objConn.Open strProvider & strPathDB  
     
    
    SQL = "SELECT Max(ID) AS MaxID, Min(ID) AS MinID FROM NomeTabella" 
    
    Set objRSrnd = objConn.Execute(SQL) 
    
    Dim maxID, minID, rndID
    maxID = objRSrnd("MaxID")
    minID = objRSrnd("MinID") 
    
    Randomize 
    rndID = Int((maxID - minID + 1) * Rnd + minID) 
    
    SQL = "SELECT COUNT(*) FROM NomeTabella WHERE ID >= " & rndID " & Estratto=0      
    UPDATE NomeTabella SET Estratto=0
    
    Set objRSrnd = objConn.Execute(SQL) 
    
    Response.Write "Record casuale:
    "
    Dim fld 
    For Each fld In objRSrnd.Fields  
    Response.Write "" & fld.Name & ": " & objRSrnd(fld.Name) & "
    "
    Next 
    UPDATE NomeTabella WHERE Id = rndid
    objConn.Close
    Set objConn = Nothing
    %>

  8. #8
    il controllo va *prima* di tutto il resto

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    274
    codice:
    SQL = "SELECT COUNT(*) FROM Archivio WHERE Estratto=0      
    UPDATE Archivio SET Estratto=0
    
    SQL = "SELECT Max(ID) AS MaxID, Min(ID) AS MinID FROM NomeTabella" 
    
    Set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open sql, conn ,3,3 
    
    Dim maxID, minID, rndID
    maxID = objRSrnd("MaxID")
    minID = objRSrnd("MinID") 
    
    Randomize 
    rndID = Int((maxID - minID + 1) * Rnd + minID) 
    
    SQL = "SELECT COUNT(*) FROM Archivio WHERE ID >= " & rndID " & Estratto=0      
    
    Set objRSrnd = objConn.Execute(SQL) 
    
    Response.Write "Record casuale:
    "
    Dim fld 
    For Each fld In objRSrnd.Fields  
    Response.Write "" & fld.Name & ": " & objRSrnd(fld.Name) & "
    "
    Next 
    UPDATE Archivio WHERE Id = rndid SET Estratto=1
    objConn.Close
    Set objConn = Nothing
    %>
    Così va bene? (optime se ti ricordi sai che sono un caso disperato)

  10. #10
    ococcia, sei un caso disperato perché copi e incolli senza ragionare

    secondo te scrivere sql="qualcosa" basta per eseguire la query? e l'update va buttata lì così, senza manco una copertina per ripararsi dal freddo nelle lunghe notti invernali?

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.