Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    102

    ASP & DB--->mischiare valori di un db

    Ciao a tutti ragazzi.
    In un db ho una serie di valori:

    a
    b
    c
    d


    c'è una funzione che mischia questi valori in modo da ottenere ad esempio d b a c?

    Io pensavo a qualche istruzione sql e non alla solita fuinzione rdm che, è vero che mischia i valori, ma ogni volta i valori si presentano mischiati allo stesso modo!
    Grazie e spero che l'argomento sia giusto per questo forum!

    P.S. sto programmando in asp

  2. #2
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870

    Re: ASP & DB--->mischiare valori di un db

    Originariamente inviato da FraChiara
    P.S. sto programmando in asp
    Siamo contenti per te!

    Vuoi dire estrazione casuale di records?

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    102
    si, una estrazione casuale, con alcune condizioni:

    1. devono essere recuperati tutti i valori (es. abc ---> bac)

    2. i valori devono essere ripetuti una sola volta, quindi non ci devono essere situazioni del tipo: abc--->baac

  4. #4
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Bastava dirlo, no?
    codice:
    <%
    dim iItems()
    iMaxItems = 1
    
    set conn = server.createObject("ADODB.Connection")
    conn.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & server.mapPath("\database\db.mdb")
    
    sql = "SELECT * FROM Tabella1"
    
    set rs = server.createObject("ADODB.Recordset")
    rs.open sql, conn, 1, 3
    
    iMax = rs.recordCount
    
    	if iMax < iMaxItems then iMaxItems = iMax	
    	reDim iItems(iMaxItems - 1)
    	for x = 0 to iMaxItems - 1
    	randomize()
    	i = int(iMax * rnd() + 1)
    		for y = 0 to uBound(iItems)
    		alreadyExists = false
    			if iItems(y) = i then
    			alreadyExists = true
    			x = x - 1
    			exit for
    			end if
    		next
    		if not alreadyExists then
    		iItems(x) = i
    		end if
    	next
    	if not rs.eof then
    		for each item in iItems
    		rs.moveFirst
    		rs.move item - 1
    		response.write rs("nomeCanale") & "
    "
    		next
    	end if
    
    rs.close
    set rs = nothing
    conn.close
    set conn = nothing
    %>
    Basta modificare il valore di iMaxItems ad inizio codice per dirgli quanti record random vuoi e il tutto senza doppioni.
    Naturalmente devi personalizzarti la query secondo le condizioni che hai detto.

  5. #5
    Utente di HTML.it L'avatar di Gioba66
    Registrato dal
    Jun 2002
    Messaggi
    2,189
    <%
    Randomize()
    randNum = (CInt(1000 * Rnd) + 1) * -1

    set conn = CreateObject("ADODB.Connection")

    sql = "SELECT TOP 4 nomecampo," & _
    "r = Rnd(" & randNum & ")" & _
    "FROM nometabella" & _
    "ORDER BY r"

    set rs = conn.execute(sql)

    response.write rs(0)

    ' ...
    rs.close: set rs = nothing
    conn.close: set conn = nothing
    %>
    Tutti vogliono parlare, nessuno sa ascoltare.

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    102
    Grazie mille a tutti!
    Avete risolto il mio problema in 5 minuti!

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    102
    scusatemi, un ultimo chiarimento. Sto utilizzando il codice proposto da fraude, ma dovrei adattarlo al mio caso. Vi faccio direttamente l'esempio per capire meglio. La mia situazione è questa:

    a b
    x y
    1 2

    a, x, 1 fanno parte, ad esempio del campo termine1 nel db e b, y, 2 fanno parte del campo termine 2.
    Ho modificato il codice nel modo seguente

    <%
    sql = "SELECT count(*) as conta FROM nomeTabella"
    set rs1 = server.createObject("ADODB.Recordset")
    rs1.open sql, cn, 1, 3
    tot=rs1("conta")

    sql = "SELECT Termine1 FROM NomeTabella"
    set rs = server.createObject("ADODB.Recordset")
    rs.open sql, cn, 1, 3

    sql = "SELECT Termine2 FROM NomeTabella"
    set rs2 = server.createObject("ADODB.Recordset")
    rs2.open sql, cn, 1, 3

    iMaxItems = tot
    iMax = rs.recordCount

    if iMax < iMaxItems then iMaxItems = iMax
    reDim iItems(iMaxItems - 1)
    for x = 0 to iMaxItems - 1
    randomize()
    i = int(iMax * rnd() + 1)
    for y = 0 to uBound(iItems)
    alreadyExists = false
    if iItems(y) = i then
    alreadyExists = true
    x = x - 1
    exit for
    end if
    next
    if not alreadyExists then
    iItems(x) = i
    end if
    next
    if not rs.eof then
    for each item in iItems
    rs.moveFirst
    rs2.moveFirst
    rs.move item - 1
    rs2.move item - 1%>
    <tr>
    <td>
    <%response.write rs("Termine1")%>
    </td>
    <td>
    <%response.write rs2("Termine2")%>
    </td>
    <%next
    end if

    rs.close
    set rs = nothing
    rs1.close
    set rs1 = nothing
    %>

    il codice funziona, ma il risultato da:

    a b
    x y
    1 2

    diventa, ad esempio:

    x y
    a b
    1 2

    ossia, vengono mischiate le coppie e non i singoli elementi. Il risultato che dovrei ottenere è, ad esempio:

    x b
    a 2
    1 y

    spero che ci sia ancora il ragazzo di prima che mi ha dato gentilmente il suo pezzo di codice in modo da potermi aiutare.
    Grazie.
    Ciao

  8. #8
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Quale ragazzo? Qui solo uomini!!!!

    Cerca nel forum per array bidimensionale.

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    102
    scusami se ti ho dato del ragazzo
    quindi tu non puoi risolvermi questo problema?

  10. #10
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Originariamente inviato da FraChiara
    scusami se ti ho dato del ragazzo
    prego non c'è di che...

    Quale problema?
    Non ti ho dato già la soluzione?

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.