Base de galerie photo en 20 lignes facilement personnalisable

Contenu du snippet

Eh oui, en fait, il n'y a pas forcément besoin de centaines de fichiers pour faire une galerie photo. Je ne développe pas ici un script complet mais juste la partie front office.

Ce script gère les rubriques, propose un aperçu.

À vous de personnaliser car la page risque d'être lourde car n'ayant pas de miniatures, toutes les images entières se chargent en même temps. Solution : création d'une miniature lors de l'upload, et affichage de l'image grandeur nature dans l'aperçu.

Ce script est très optimisé mais reste volontairement incomplet, il ne s'agit que des bases.

PS : un bonbon pour celui qui trouve le point commun entre les deux rubriques de l'aperçu ;)

Source / Exemple :


<html>
<table border="1"><tr><td valign="top">
<?php
	require "fonctions.inc.php";
	$rs=connexion("SELECT DISTINCT `rub` FROM `galerie`");
	while($data=@mysql_fetch_array($rs)) {
		$subrs=connexion("SELECT * FROM `galerie` WHERE `rub`='".$data['rub']."'");
		?><br>
		<hr />
		<?=$data['rub']?>
		<br /><?php
		$i=0;
		while($subdata=@mysql_fetch_array($subrs)) {
			?>
			<a href="#"  onmouseover="document.image.src='images/upload/<?=$subdata['url']?>';">
			<img src="images/upload/<?=$subdata['url']?>" alt="<?=$subdata['nom']?>" height="50" border="0" /></a>
			<?php
			if($i==2) { echo "\n<br />\n"; }
			$i++;
		}
	}
?>
</td><td valign="top">Aperçu taille réelle de l'image survolée :<br />
<img id="image" name="image" src="images/upload/one.jpg" />
</td></tr></table></html>

Conclusion :


fichier fonctions.inc.php :

function connexion($requete="") {
if(empty($requete)) {
return false;
}

//paramètres de connexion
$server="localhost";
$user="root";
$mdp="";
$db="galerie";

mysql_connect($server,$user,$mdp);
mysql_select_db($db);
$requete=mysql_query($requete);
return $requete;
}

-------------------------------------------------------------
Mysql :

CREATE TABLE `galerie` (
`id` int(2) NOT NULL auto_increment,
`rub` varchar(255) NOT NULL default '',
`url` varchar(255) NOT NULL default '',
`nom` varchar(255) NOT NULL default '',
`description` text NOT NULL,
`vote_cumul` int(10) NOT NULL default '0',
`vote_total` int(10) NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=0 ;

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.