visualizzare foto in ordine di upload

netmaster

Nuovo Utente
8 Dic 2008
14
0
1
Salve a tutti,

ho implementato una galleria fotografica nel mio sito che aggiorno periodicamente. Vorrei sapere come ordinare l'array delle foto ($photos) in modo tale che le ultime foto caricate siano visibili sempre per prime nella fotogallery rispetto a quelle già presenti.

Ho provato a fare così ...

$DirGallery = "galleria_foto";
$listafile = array_merge(glob($DirGallery));
$photos = array();
foreach($listafile as $nomefile) {
$filemtime = filemtime($nomefile);
$photos[$filemtime] = $nomefile;
}
uasort($photos);


... ma non funziona. Qualcuno mi può aiutare? Grazie! :hammer:
 
Quando carichi le img fai scrivere il percorso in una tb del db

poi fai una query e fai ordinare a mysql

tipo

$data = mysql_query("SELECT * FROM foto ORDER BY idfoto ASC") o al posto di asc usi desc
 
Quando carichi le img fai scrivere il percorso in una tb del db

poi fai una query e fai ordinare a mysql

tipo

$data = mysql_query("SELECT * FROM foto ORDER BY idfoto ASC") o al posto di asc usi desc




Ti ringrazio per la risposta. Adesso la metto in pratica subito. Se ci sono problemi ri-POSTO. Ciao!
 
Ti ringrazio per la risposta. Adesso la metto in pratica subito. Se ci sono problemi ri-POSTO. Ciao!



Con uno script di upload multiplo, le foto vengono caricate, anche da utenti, in una cartella dove è incluso il file insert_db.php che inserisce i dati nel database:

INSERT_DB.PHP

PHP:
<?php
$data = date("Y-m-d"); 
$ora = date("H:i:s"); 
$host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$utente = "". $auth->ShowUsername() ."";
$ip = $_SERVER['REMOTE_ADDR'];
$hostn = exec("hostname -s");

include ("db_connessione.php");

$query = "INSERT INTO uploadfoto (username, foto, data, ora, ip, hostn, host ) ".
"VALUES ('$utente', '$file_name', '$data', '$ora', '$ip', '$hostn', '$host')";

mysql_query($query) or die('Errore, query fallita');
mysql_close($connessione); 
?>

questa è la struttura della tabella 'upload foto' del database:

Codice:
CREATE TABLE `uploadfoto` (
  `id` int( 11 ) NOT NULL auto_increment,
  `username` varchar(20) NOT NULL,
  `foto` varchar( 100 ) NOT NULL ,
  `data` date NOT NULL default '0000-00-00' ,
  `ora` time NOT NULL default '00:00:00' ,
  `ip` varchar( 100 ) NOT NULL ,
  `hostn` varchar( 100 ) NOT NULL ,
  `host` varchar( 100 ) NOT NULL ,
  PRIMARY KEY ( `id` )
) TYPE = MYISAM ;

Nel file che visualizza la galleria della cartella FOTO ho inserito:

PHP:
....

include("include/db_connessione.php");
$query = mysql_query("SELECT * FROM uploadfoto ORDER BY id DESC");
$result = mysql_query($query) or die('Errore, query fallita');
mysql_close($connessione);

....


Va bene cosi?
 
si vabene fai un cliclo con il while è fai stampare il campo foto(deve contenere il nome o percorso/nomefoto.jpg)

lo inserisci

nel

<img src=percorso/"<?php echo $foto ?>" > o <img src="<?php echo $foto ?>" >(se il percorso è gia inserito nel campo foto)

prova
 
come mai hai registrato data e ora per ogni record e poi hai ordinato le foto per id?
 
E comunque non è molto efficiente registrare data e ora in due campi separati. Meglio salvare lo UNIX time in un campo di tipo BIGINT e poi ricavarsi le due variabili con la funzione date().

P.S.: Eliox, sono tornato operativo. Almeno spero! :D
 
come mai hai registrato data e ora per ogni record e poi hai ordinato le foto per id?

Intanto grazie a tutti per le risposte. Ho creato la tabella del DB in questo modo per registrare questi dati in relazione alle foto caricate dagli utenti (che per accedere alla pagina di upload devono essere registrati) per tenere traccia di quando le foto sono state caricate, da chi e quali foto, al fine di eventuali problemi di copyright sulle foto stesse posseduti da altri che non siano gli utenti che le hanno caricate. Se un domani qualcuno avanza dititti sulle foto caricate nel sito, ho questi dati per far rintracciare l'utente dalla polizia postale.

Ho inserito la query sul''ID invece che sulla data perchè mi è stato consigliato dall'utente gasparroa.

Comunque, adesso provo a mettere in pratica. Grazie e saluti.
 

Discussioni simili