Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Visualizzare immagine random e sua descrizione!

    Prosegue la mia odissea... sto facendo questo sito web per un amico meccanico...

    La sua richiesta:
    Inserire foto di auto che vende saltuariamente, con descrizione.

    Cosa ho fatto:
    Sono riuscito a caricare immagini nel database, con la loro descrizione.

    Cosa devo fare:
    Ora devo caricarle, in maniera random, in prima pagina, descrizione compresa.

    Che codice ho usato:
    Codice PHP:
    <?php

    include("config.php");

     
    mysql_connect($host$username$password)  
     or die(
    'Connessione non riuscita: ' mysql_error());  
       
     if(!
    mysql_select_db($db))  
     die(
    'Selezione database fallita!');  
     
     
    $query="SELECT * FROM immagini order by rand() limit 1";
     
    $risultato mysql_query($query) or die('Query non valida: ' mysql_error());  
     
    $tmp mysql_fetch_array($risultato); 
     
     
    // invio una intestazione contenente il tipo MIME  
     
    header('Content-Type: image/jpeg');  
       
     
    // invio il contenuto del file  
     //echo $tmp['immagine'];  
     
     
    $desired_width 300;
    $desired_height 200;

    $im imagecreatefromstring($tmp['immagine']);
    $new imagecreatetruecolor($desired_width$desired_height);

    $x imagesx($im);
    $y imagesy($im);

    imagecopyresampled($new$im0000$desired_width$desired_height$x$y);

    imagedestroy($im);

    header('Content-type: image/jpeg');
    imagejpeg($newnull85);
     
    ?>
    Devo aggiungedere dei campi, perchè ora come ora mi visualizza solo la foto. I campi variabili sono, ad esempio: anno, cilindrata (basta che mi aiutiate inserendo questi due, e gli altri li termino io)...

    Grazie a tutti, buona Domenica!!
    "Quando uno è fatto così, è fatto per la roba"
    G.Verga - "La Roba"

  2. #2
    La creazione della thumbnail a runtime è una follia: sovraccarichi il server per niente.

    Il codice di estrazione casuale dovrebbe essere inserito all'interno della home page. Visualizzi le varie informazioni ed il tag IMG che punta alla thumbnail sul file system.

    P.S.
    Sposta le immagini dal DB al file system, ti eviti molte rogne e rendi il sito molto più veloce.

  3. #3
    Ciao e grazie per la risposta!!

    Potresti dirmi dove trovare i codici per fare ciò? Non sono un programmatore, sto solo facendo un favore ad un amico! E come sposto le immagini dal DB al file system? Considera che comunque non conterrà mai più di 10 immagini, perchè il mio amico è un meccanico che ogni tanto vende qualche auto, quindi non è una concessionaria con grosso traffico... grazie mille!!
    "Quando uno è fatto così, è fatto per la roba"
    G.Verga - "La Roba"

  4. #4
    Ciò che vuoi fare è molto semplice.
    Codice PHP:
    <?php

    $macchina_da_visualizzare 
    rand(1,10);  //Le macchina da visualizzare sono 10

    /* Ora rinomina le immagini in modo che ognuna abbia come nome un numero che vada da 1 a 10 */

    /* A questo punto crea un file, descrizioni.txt e scrivi dentro in questo modo: 

    [/des/]Descrizione della prima macchina[/des/]Descrizione della seconda macchina[/des/]Etc..[/des/]

    Ora c'è il PHP:

    */

    $file_name "descrizioni.txt";
    $fp fopen($file_name,"r+");
         
    $leggo fread($fp5000);
    fclose($fp);

    $sd explode("[/des/]"$leggo); 

    echo 
    "<img src=\"".$macchina_da_visualizzare."\">
    Descrizione:
    "
    .echo $sd[$macchina_da_visualizzare]." ";

    ?>

    In questo modo non userai nemmeno il DB, e l'applicazione sarà veloce..


  5. #5
    Grazie elmapomapo!! Però il problema è che il mio amico le carica in DB tramite pannello di controllo (non ne capisce niente di pc)... quindi la tua soluzione purtroppo (sebbene più veloce e pulita) mi sembra poco praticabile.....
    "Quando uno è fatto così, è fatto per la roba"
    G.Verga - "La Roba"

  6. #6
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    segui il consiglio di filippo.toso.

    nel db fai caricare un id, il percorso dell'immagine che caricherai sul server, la descrizione e tutti gli altri campi che ti servono.

    a quel punto quando esegui la query al db avrai tutti campi testuali che gestirai come fossero normali stringhe (quindi stamperai il tag img per il percorso dell'immagine, l'alt per la descrizione, il testo e tutto quello che ti serve)

    tutto molto più veloce e meno affaticante per il server, che non deve estrarre campi blob e poi creare le immagini

  7. #7
    Originariamente inviato da Sir Lothar
    Grazie elmapomapo!! Però il problema è che il mio amico le carica in DB tramite pannello di controllo (non ne capisce niente di pc)... quindi la tua soluzione purtroppo (sebbene più veloce e pulita) mi sembra poco praticabile.....
    Beh le fai caricare sul server no?

    Non ci vuole nulla a spiegare, anche perfino ad uno che non ne capisce di computer.

  8. #8
    1) per le immagini, concordo con chi ti ha suggerito di usare il file system: sei veloce nel recuperare i file e il db rimane "snello" :-)

    2) per avere una immagine random che fa parte di un record mysql puoi fare in questo modo:

    poniamo che la tabella è composta in questo modo: id, titolo, testo, img etc

    fai una prima query dove vai a verificare quali id della tabella soddisfano la tua richiesta.
    potebbero esserci dei record che non sono visibili, altri che sono stati cancellati, altri che devono essere pubblicati...

    3) crei un array da associare al risultato estratto della query (di sopra) :-)

    4) crei un indice dei risultati ottenuti, e usi la funzione rand() via PHP

    5) crei la query per recuperare l'immagine impostando come "discriminante" l'id della prima query e il gioco è fatto....

    Comunque, ti ho scritto un po' di codice per rendere l'esempio più semplice:

    Codice PHP:

    // Costruisco la prima query per avere tutti gli id disponibili che soddisfano la richiesta 
    $query_id "SELECT id FROM {$tab_automobili} WHERE is_attiva = 1 ";
    $rs_query_id mysql_query($query_id);

    // creo un array di $mostra da associare al risultato estratto
    $mostra = array();

    while(
    $mostra[] = mysql_fetch_array($rs_query_idMYSQL_ASSOC))

    // setto la variabile... 
    isset($index);
    // creo un indice dei risultati ottenuti. 
    // Se -2 restituisce solo i record pieni, se -1 lascia uno vuoto, da usare per pubblicità galistar
    // recupero un id random... 
    $index rand(0count($mostra) - 2);

    {
        
    $id_record =  $mostra[$index]['id_articolo'];
    }

    // liberiamo memoria...
    mysql_free_result($rs_query_id);

    // setto anche qui la variabile...
    if (isset($id_record) != '')
    {
        
    $query_img     "SELECT id, titolo, img FROM {$tab_automobili} WHERE id = {$id_record}";
        
    $rs_query_img mysql_query($query_img);
        
    $mostra_img    mysql_fetch_array($rs_query_imgMYSQL_ASSOC);
        
        
    $id        $mostra_img['id'];
        
    $titolo    $mostra_img['titolo'];
        
    $img     $mostra_img['img'];
    }
    else
    {
             print 
    ' nessun record...  ';

    ciao e buon lavoro!

  9. #9
    Ringrazio tutti per le risposte, siete davvero gentili e cordiali!!

    Il mio problema è che non ne capisco quasi nulla (sono uno studente di medicina, non ho una formazione informatica di alcun tipo, quel poco che so è stato tutto fatto da autodidatta, quindi non ho una vasta conoscenza della situazione)...

    Non ho capito molto bene come caricare le immagini in maniera random... ed è fuori discussione, purtroppo, che il mio amico carichi le immagini sul server!! Già devo vedere se riesco a trovare qualche script che ridimensioni le immagini (sia come dimensioni che come peso), prima di fargliele caricare... come cosa ho ovviato con una variabile che limiti a 300 KB il peso dell'immagine.

    Per quanto riguarda il sovraccarico del sito, non c'è da temere: il mio amico non ha una grossa concessionaria, e se farà 30-40 visite al mese sarà già tanto... dubito che il server si impalli per questo, quindi ora come ora posso procedere in questo senso (sebbene il discorso che mi proponiate voi è senza dubbio più leggero)...

    Qualcuno può darmi qualche dritta sul codice che ho postato io, con le modifiche per poter visualizzare anche gli altri record oltre al campo BLOB? Grazie mille!!
    "Quando uno è fatto così, è fatto per la roba"
    G.Verga - "La Roba"

  10. #10
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Che campi hai nel DB? Secondo me risolvi con questo
    Codice PHP:
    echo $tmp['anno'];  // un esempio 
    da inserire impaginato vicino all'immagine che devi mostrare.

    Spero di aver capito.

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.