Gallerie photo et base de données

Contenu du snippet

Alors, à l'origine, ce que j'avais voulu faire, c'était une gallerie photo.
Pour cela, je scannai un dossier contenant des images avec une certaines extensions puis, je les insérai ds une table.
Puis, j'affiche ces images!
J'utilise une base de donnée du nom de gallerie avec une table photos (4 champs : ID (auto increment, clé primaire), PNOM, PPOIDS, PCHEMIN (clé unique sur ces trois derniers champs).

J'ai essayé de faire quelque chose de rapide. et le résultat... c'est le code ce dessous :).

N'hésitez pas à le rendre plus performant. désolé pour les éventuelles erreurs.

Source / Exemple :


<?php
	//Database connexion
	mysql_pconnect("localhost", "root", "") or die("Impossible de se connecter : " . mysql_error());
	mysql_select_db("gallerie");//nom de votre base de données
?>
<html>
<head>
<title>Gallerie</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style>
		body { color:#333366; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; }
		table { border : 1px solid #000033; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; color:#333366;}
		input { font-family : arial; font-size : 11px; color: #333366; background-color= #FFFFFF; border : thin groove;}
		button { font-family : arial; font-size : 11px; color : #000033 ; background-color = #FFFFFF; border : thin groove;}
</style>
</head>

<body>
<?php

if (!(isset($_GET['picture'])))
	{
		//pagination initialisée à zéro
		$pagination = 0;
	}
	else
	{
		$pagination = $_GET['picture'];
	}

$path= 'images';//répertoire qui sera scanné
$rephome=opendir($path);

//Compteur
$i = 0;

while ($file = readdir($rephome))
{
	/* Je n'ai pas réussi a utiliser cette partie de code :'(

  • echo count($file)."<br><br>";
  • echo "Je suis le first file ".$file."<br><br>";
  • if ($file == '..' && $file =='.') { print("Il n'y a pas de fichiers dans ce répertoire<br>"); }
  • /
if($file != '..' && $file !='.' && $file !='') { $tmp = explode('.', $file); $ext = strtolower(array_pop($tmp)); if ($ext == 'gif' || $ext == 'jpg' || $ext == 'png') { //Je stocke dans mon tableau le nom avec l'extension de mon fichier à la position i. $AllPicturesName[$i] = $tmp[0]; $AllPicturesTaille[$i] = (round(filesize($path.'/'.$file)/1024)); $AllPicturesPath[$i] = $path ."/". $file; //echo $i."<br>"; $i++; //j'incrémente mon compteur } } } closedir($rephome) ?> <br><br><br> <table width="600" border="1"> <? $query_select_temp = mysql_query("SELECT * FROM photos ORDER BY PNOM LIMIT $pagination, 1"); while ($record = mysql_fetch_array($query_select_temp)) { echo "<tr> <td colspan=\\"3\\" align=\\"center\\"><a href=\\"#\\" target=\\"_blank\\"><img border=\\"0\\" src=".$record['PCHEMIN']." height=82 width=110></a></td> </tr> <tr> <td colspan=\\"3\\" align=\\"center\\">".$record['PNOM']."</td> </tr> <tr> <td colspan=\\"3\\" align=\\"left\\"><b>Taille</b> : ".$record['PPOIDS']." ko</td> </tr> <tr> <td colspan=\\"3\\" align=\\"left\\"><b>Path</b> : ".$record['PCHEMIN']."</td> </tr>"; ?> <tr> <td align="left"><a href=\\"#\\"> <?php //On fait une requete pour avoir le nombre total de lignes dans la table $query_select_id = "select count(ID) from photos"; $query_select_id_temp = mysql_query($query_select_id); $total = mysql_result($query_select_id_temp,0); //Si $pagination n'est pas à 0, c'est qu'on peut revenir en arriere if($pagination!=0) { echo "<a href=\\"?picture=".($pagination-1)."\\">Prev</a>"; } ?> </a> </td> <td align="center">Photo <? echo $pagination+1 . " / " . $total; ?></td> <td align="right"><a href="#"> <? //Si nbr total de lignes dans la table - $pagination est supérieur à 1, //c'est qu'il existe au moins 1 ligne supplémentaire dans la table if ((mysql_result($query_select_id_temp, 0, 0) - $pagination) > 1) { echo "<a href=\\"?picture=".($pagination+1)."\\">Next</a>"; } ?> </a> </td> </tr> <!-- <tr> <td align="left"><input type="button" name="but1" value="Modification"></td> <td>&nbsp;</td> <td align="right"><input type="button" name="but2" value="Supprimer"></td> </tr> --> <? } ?> </table><br> <? //$query_update = "UPDATE photos SET PNOM='". ."', PPOIDS='". ."' WHERE ID='". ."'"; //$query_update_temp = mysql_query($query_update); ?> <?php //Cette partie de code est a retirer en commentaire si vous voulez scanner toutes les images de votre dossier puis les insérer dans votre table photo. /*for ($i = 0; $i < sizeof($AllPicturesName); $i++) { $query_insert = "INSERT INTO photos(PNOM,PTAILLE,PCHEMIN) VALUES ('$AllPicturesName[$i]',$AllPicturesTaille[$i], '$AllPicturesPath[$i]')"; $query_insert_temp = mysql_query($query_insert) or die ("Requête incorrecte : ". mysql_error()); //printf ("Nombres de lignes insérées : %d\\n", mysql_affected_rows()); }
  • /
?> <?php mysql_close(); ?> </body> </html>

Conclusion :


Je le mettrai de temps en temps à jour. ;)

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.