Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20

Discussione: Immagini randon dal db

  1. #1
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499

    Immagini randon dal db

    Dovrei creare un codice che estrae delle foto in random dalla tabella immagini, con la possibilità, tramite una variabli scelta a priori, di mostrare n immagini quante voglio.
    La randomizziazione deve riiniziare da capo dopo aver mostrato tutte le immagini e ogni immagine deve essere differente...
    Cosa mi consigliate di fare?

  2. #2
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    mi sa che conviene mista.. per limitarne il numero usi la clausola LIMIT del mysql dato che nn so se esiste la randomizzazione dei rec in mysql.. passi tutti gli n rec ottenuti ad un array, lo mescoli, lo ordini, insomma ci fai quello che vuoi..
    ..::Luca::..
    » "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
    » "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
    [frasi random] - [Lucopedia] - [laFetta]

  3. #3
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    azz... in teoria ho capito perfettamente. Magari provo a buttare giù un po' di codice. Una volta lo avevo fatto in ASP e funzionava perfettamente. Magari la logica è la stessa. Il problema è il codice che qui è un po diverso. Se posto il codice di ASp mi puoi dire se è la strada giusta, oppure non lo conosci?

  4. #4
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    sì.. certo posta e vediamo di passarlo in php.. ASP.. bei vecchi ricordi.. quando è buono è buono riesumiamo solo l'algoritmo se nn possiamo passarlo riga per riga..
    ..::Luca::..
    » "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
    » "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
    [frasi random] - [Lucopedia] - [laFetta]

  5. #5
    http://forum.html.it/forum/newreply....hreadid=842661
    ti linko un aiuto che mi han dato sullo stesso argomento

  6. #6
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499

    Estraggo i record
    codice:
    <%
    Set objConn = server.createObject("ADODB.Connection")
    objConn.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & server.mapPath("/mdb-database/mpdb.mdb")
    Set Rs1 = Server.CreateObject("ADODB.Recordset")
    sql1 = "SELECT COUNT(*) FROM locale where Homepage=true"
    Rs1.open sql1, objConn
    
    dim max
    max = RS1(0)
    
    if max=0 then 
    response.write("database vuoto!")
    
    else
    
    Set objConn = server.createObject("ADODB.Connection")
    objConn.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & server.mapPath("/mdb-database/mpdb.mdb")
    Set Rs2 = Server.CreateObject("ADODB.Recordset")
    sql2="SELECT * FROM locale where Homepage=true"
    Rs2.Open sql2, objConn
    
    Randomize()
    dim k, casual(1000), check, numero
    
    numero = 4   'questo è il numero dei record che vuoi pescare a caso!!
    cont = 0
    check=false
    
    do while not cont>(numero - 1)
    rs2.movefirst
    
    casual(cont) = Int(Rnd() * Max) 
    
    ' //// routine per evitare doppioni ////////////////////////////////
    ' (se trova un record già estratto torna su senza incrementare cont)
    ' //////////////////////////////////////////////////////////////////
    	for k=0 to (cont-1)
    	 if casual(cont) = casual(k) then 
    		check = true 
         end if	
    	next
    ' ///////////////////////////////////////////////////////////////////
    
    If Not (Rs2.EOF OR check) Then
    Rs2.Move casual(cont)
    
    	ID = RS2("ID")
    	foto = RS2("Foto")
    	nome = RS2("Nome")
    	nome1 = Server.URLEncode (nome)
        indirizzo = RS2("Indirizzo")     
    	
    %>
    ...
    qui stampo i record
    ...

    e qui creo il ciclo e chiudo l'if

    codice:
    <%
    cont=cont + 1
    end if
    check = false
    'end if
    loop
    %>
    Grazie

  7. #7
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    proviamo a fare così, vediamo se ci semplifichiamo la vita:

    1. recuperi tutte le immagini
    2. cicli tutte le righe
    3. inserisci ogni riga in un array d'appoggio..
    4. mescoli il tutto
    5. prendi solo quello che ti interessa

    ipotiziamo che stai già al ciclo..

    Codice PHP:
    $n=10// le tue n immagini
    $img=array(); // array d'appoggio

    while($rec=mysql_fetc....) // ciclo.. so indisposta
      
    $img[]=$rec;   // passo il rec corrente

    srand((float)microtime() * 1000000); // pianto il seme.. so indisposta.. che guaio..
    shuffle($numeri); // frullo...

    $output array_slice($input0$n);   // riduco l'array ai primi $n elementi 
    ..::Luca::..
    » "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
    » "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
    [frasi random] - [Lucopedia] - [laFetta]

  8. #8
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    1: recupero le immagini
    Codice PHP:
    $sql "SELECT * FROM "$prefix ."immagini";
     
    $consulta mysql_query($sql,$conn);            
     
    $n_img mysql_num_rows($consulta); 
    2. , 3. , 4. , 5.?

    Mi sa che sono un po' in crisi

  9. #9
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    madò ti perdi in un bicchiere.. tu hai fatto l'1 io il resto...

    fuuuuuuuuuuu.......sione no?

    ..::Luca::..
    » "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
    » "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
    [frasi random] - [Lucopedia] - [laFetta]

  10. #10
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    Ok dai, forse sarà l'ora... rincomincio domani
    Grazie...

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.