par
Invité » 08 août 2014, 18:10
Bonjour à tous,
Pour commencer, j'ai quelques bases de php, mais je reste une quiche ^^. Je suis meilleurs en html. Alors désolé si la question est bete, ou si mes scripts sont pas très jolis ^^
Donc, j'ai pour projet de développer un hébergeur d'image pour le compte d'un club dont je suis membre, afin de faciliter l'insertion d'image dans les posts. Tout fonctionne, hormis une chose : l'affichage de la galerie d'image que l'utilisateur a posté. Avant je faisait simplement un opendir, mais ça affichait les images classées par nom, et non par date, ce qui aurait vite été pénible sir le user upload 200 photos !
Pour ça, j'ai rajouté une insertion en base de données du nom de la photo.
J'arrive ensuite à le récupérer dans la galerie, et à l'afficher, seulement avec mon code, je n'affiche qu'une seule photo (la première qu'il trouve en base de donnée), et non toute comme c'était le cas avec mon code précédent.
Auriez vous une solution pour afficher toute les photos (et soyons fou, les classer par date, de la plus récente à la plus ancienne ?
Ma base de donnée :
Nom de la table : Photos
Colonnes :
id,
login (celui de la personne qui a envoyé la photo, car il faut se loguer pour utiliser le service, et on ne voit que ses propre photos, pas celle des autres)
Nom_de_la_photo (avec l'extension)
date (date et heure de l'upload)
La fin du code de ma galerie :
Code : Tout sélectionner
<?php
//Connexion à la base
$base = mysql_connect ('*******', '******', '******');
mysql_select_db ('*******', $base);
// recherche dans la base
$sql = 'SELECT Nom_de_la_photo FROM Photos WHERE login="'.mysql_real_escape_string($_SESSION['login']).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while($data = mysql_fetch_assoc($req))
$photo = $data['Nom_de_la_photo'];
//affichage $photo pour test
echo $photo;
//repertoires
$directory = "/Utilisateurs/".$_SESSION['login'];
$directory2 = "/Miniatures/".$_SESSION['login'];
//affichage dans la gallerie
$openmin = opendir($directory3);
while($file = readdir($openmin))//{
//$allow_extension = array("jpg",'png','gif');
//$extension = strtolower(substr($file,-3));
//if(in_array($extension,$allow_extension)){
//}
//}
?>
<a href="<?php echo $directory; ?>/<?php echo $photo; ?>" rel="zoombox[galerie]">
<img src="<?php echo $directory2; ?>/<?php echo $photo; ?>"/>
<?php
mysql_close();
?>
Voilà c'est pas super jolie, mais ça marchait pour ouvrir le dossier et afficher les photos. Il y a 2 images : une miniature, et celle redimensionnée en 800*600, qui se stockent dans 2 répertoires différents, au nom de l'utilisateur.
Bonjour à tous,
Pour commencer, j'ai quelques bases de php, mais je reste une quiche ^^. Je suis meilleurs en html. Alors désolé si la question est bete, ou si mes scripts sont pas très jolis ^^
Donc, j'ai pour projet de développer un hébergeur d'image pour le compte d'un club dont je suis membre, afin de faciliter l'insertion d'image dans les posts. Tout fonctionne, hormis une chose : l'affichage de la galerie d'image que l'utilisateur a posté. Avant je faisait simplement un opendir, mais ça affichait les images classées par nom, et non par date, ce qui aurait vite été pénible sir le user upload 200 photos !
Pour ça, j'ai rajouté une insertion en base de données du nom de la photo.
J'arrive ensuite à le récupérer dans la galerie, et à l'afficher, seulement avec mon code, je n'affiche qu'une seule photo (la première qu'il trouve en base de donnée), et non toute comme c'était le cas avec mon code précédent.
Auriez vous une solution pour afficher toute les photos (et soyons fou, les classer par date, de la plus récente à la plus ancienne ?
Ma base de donnée :
[u]Nom de la table[/u] : Photos
[u]Colonnes[/u] :
id,
login (celui de la personne qui a envoyé la photo, car il faut se loguer pour utiliser le service, et on ne voit que ses propre photos, pas celle des autres)
Nom_de_la_photo (avec l'extension)
date (date et heure de l'upload)
[u]La fin du code de ma galerie[/u] :
[code]
<?php
//Connexion à la base
$base = mysql_connect ('*******', '******', '******');
mysql_select_db ('*******', $base);
// recherche dans la base
$sql = 'SELECT Nom_de_la_photo FROM Photos WHERE login="'.mysql_real_escape_string($_SESSION['login']).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while($data = mysql_fetch_assoc($req))
$photo = $data['Nom_de_la_photo'];
//affichage $photo pour test
echo $photo;
//repertoires
$directory = "/Utilisateurs/".$_SESSION['login'];
$directory2 = "/Miniatures/".$_SESSION['login'];
//affichage dans la gallerie
$openmin = opendir($directory3);
while($file = readdir($openmin))//{
//$allow_extension = array("jpg",'png','gif');
//$extension = strtolower(substr($file,-3));
//if(in_array($extension,$allow_extension)){
//}
//}
?>
<a href="<?php echo $directory; ?>/<?php echo $photo; ?>" rel="zoombox[galerie]">
<img src="<?php echo $directory2; ?>/<?php echo $photo; ?>"/>
<?php
mysql_close();
?>[/code]
Voilà c'est pas super jolie, mais ça marchait pour ouvrir le dossier et afficher les photos. Il y a 2 images : une miniature, et celle redimensionnée en 800*600, qui se stockent dans 2 répertoires différents, au nom de l'utilisateur.