Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di puja
    Registrato dal
    May 2013
    Messaggi
    46

    Slideshow random con descrizione estratta da DB

    Buongiorno a tutti, sono ancora qui a chiedere un aiuto concettuale.

    Ho realizzato uno script che seleziona un'immagine random da una cartella sul server, recupera da una tabella MySql la relativa descrizione e le pubblica entrambe. Fin qui tutto bene...

    Ora però vorrei pubblicare più di una immagine e non saprei come recuperare ogni volta la descrizione giusta da abbinare alla foto.

    Allego lo script:

    Codice PHP:
    $cartella"../foto/";

    $estensioni=array('jpg');
    $dir=opendir($cartella) or die("Attenzione, impossibile aprire la cartella ".$cartella);
    $immagini=array();
    $misure=array();    

      while(
    false !== ($file=readdir($dir))) {         
               for(
    $i=0;$i<count($estensioni);$i++){   
                             
    $estensione=substr($file,(strlen($file)-3),strlen($file));    if(in_array($estensione,$estensioni)){                
                             
    $immagini[]=$file;
                             
    $misure[]=getimagesize($cartella.$file);    
                              }        
                }   
    }
     if(
    count($immagini)==0) die("Attenzione, la cartella indicata non contiene immagini compatibili con le estensioni inserite.<br> Provare a controllare l'esattezza delle estensioni e della directory indicata nella variabile 'cartella'"); 
    $indice=rand(0,(count($immagini)-1)); 
    print 
    "L'immagine ".$immagini[$indice]." è stata caricata a caso. Prova ad aggiornare la pagina.<br>"
    print 
    '<img src="'.$cartella.$immagini[$indice].'" '.$misure[$indice][3].' alt="'.$immagini[$indice].'">';

    //Imposto ed eseguo la query
    $query "SELECT `Descrizione` FROM `Testi` WHERE Nome = '$immagini[$indice]'";  
    $result mysql_query($query$link) or die ('Errore');
    if ( 
    mysql_num_rows($result) == ) {     echo "Descrizione non trovata"; } //Se invece trovo delle occorrenze... 
    else {     $result mysql_fetch_array($result);          //stampa la descrizione sulla pagina    
    echo "descrizione: <b>" $result[0] . "</b><br/>";          


    Qualche idea?

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ma non ti serve aprire la cartelle foto, secondo me basta che randomizzi la query con limit 2
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it L'avatar di puja
    Registrato dal
    May 2013
    Messaggi
    46
    Grazie per la risposta!

    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    Ma non ti serve aprire la cartelle foto, secondo me basta che randomizzi la query con limit 2

    mmm MySql è proprio il mio tallone d'Achille. dici che dovrei estrarre il testo dal database a random ed attaccarci il riferimento all'immagine?

    Se è così c'è un problema. Ad ogni descrizione possono corrispondere più foto ma non viceversa.

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Quote Originariamente inviata da puja Visualizza il messaggio
    ...
    Se è così c'è un problema. Ad ogni descrizione possono corrispondere più foto ma non viceversa.
    Questa non l'ho capita, forse facendo un esempio la capisco (porta pazienza con gli anziani mi riferisco a me chiaramente bisogna avere comprensione) e comunque lo ritengo ininfluente alla randomizzazione della query
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it L'avatar di puja
    Registrato dal
    May 2013
    Messaggi
    46
    eheheheh!

    Mi prendo la responsabilità totale di non riuscire a spiegarmi bene! Anche perché non sono proprio ferrato sulla materia. Ad. esempio, un random sulla query non saprei ancora come farlo

    Il fatto è che lo script che ho presentato è collegato ad un sacco di altre pagine. Se ne cambiassi la logica dovrei un po' stravolgere tutto.. (cosa alla quale sto pensando..).

    Non esiste un modo di usare lo script sopra per pubblicare più immagini con la propria descrizione in una pagina?


    Chessò un foreach, un loop una magia!!
    Ultima modifica di puja; 16-10-2013 a 11:31

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Quote Originariamente inviata da puja Visualizza il messaggio
    eheheheh!

    Mi prendo la responsabilità totale di non riuscire a spiegarmi bene! Anche perché non sono proprio ferrato sulla materia. Ad. esempio, un random sulla query non saprei ancora come farlo
    Per la query leggi qui
    Il fatto è che lo script che ho presentato è collegato ad un sacco di altre pagine. Se ne cambiassi la logica dovrei un po' stravolgere tutto.. (cosa alla quale sto pensando..).
    Se le modifche sono troppo gravose, rimanda e prosegui con lo script attuale
    Non esiste un modo di usare lo script sopra per pubblicare più immagini con la propria descrizione in una pagina?
    Non saprei ritengo sia più complesso modificare il tuo script, ma è solo un mio pensiero personale

    Chessò un foreach, un loop una magia!!
    Per le magie vedi qui
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Utente di HTML.it L'avatar di puja
    Registrato dal
    May 2013
    Messaggi
    46
    Grazie mille! Utilissimi i link!

    Soprattutto il secondo! Cercavo un'ispirazione e l'ho trovata

    Adesso penso rifarò tutto da capo

  8. #8
    Utente di HTML.it L'avatar di puja
    Registrato dal
    May 2013
    Messaggi
    46
    Ho iniziato a fare come proponevi tu ma mi resta lo stesso problema. Mi spiego meglio:

    a) Ricavo un valore (utenteID) casuale dal db
    b) Seleziono dal database il nome della foto relativa a quell'ID
    c) Recupero la foto con quel nome dal server e la stampo
    d) Recupero dal database la descrizione relativa alla foto e la pubblico

    E fin qui... tutto bene.. (con qualche riserva)

    Adesso però resta lo stesso problema.. Come faccio a pubblicare 2 o più immagini senza interrogare di continuo il DB.

    Forse è meglio se spiego cosa voglio ottenere poi magari mi suggerisci tu un modo

    Io vorrei che sulla mia home page comparissero delle immagini con relativa didascalia.

    Le immagini sono salvate in una cartella sul server divise per nome utente.
    Le descrizioni sono sul database.

    L'ideale sarebbe poi se le immagini cambiassero con il refresh della pagina ma vabbè.

    Quale strada percorreresti tu per arrivare a questo risultato?

    Tolgo le descrizioni dal db e le metto in un file txt sul server?

  9. #9
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Nella tabella ci sono tute le info che ti servono? id, nome file dell'immagine e descrizione? Bene con una query selezioni 2 id a caso, per esempio con:
    SELECT * FROM table ORDER BY RAND() LIMIT 2

    e stampi il tutto con un
    while ($row = myslq_fetch_array(...) )

  10. #10
    Utente di HTML.it L'avatar di puja
    Registrato dal
    May 2013
    Messaggi
    46
    BINGO!

    Ottimo, cercavo proprio quella funziona.

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