Gallerie photo et base de données

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 708 fois - Téléchargée 29 fois

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

Ajouter un commentaire

Commentaires

Messages postés
1
Date d'inscription
mardi 3 avril 2007
Statut
Membre
Dernière intervention
23 octobre 2009

Bonsoir à tous! la demo ne marche pas. merci
Messages postés
1
Date d'inscription
mercredi 31 janvier 2007
Statut
Membre
Dernière intervention
24 novembre 2008

ou est la base des donnees
Messages postés
3
Date d'inscription
mercredi 21 octobre 2009
Statut
Membre
Dernière intervention
22 octobre 2009

Non c'est non
trops d'erreurs surtout à partir de la ligne 71
Messages postés
38
Date d'inscription
lundi 3 mai 2004
Statut
Membre
Dernière intervention
29 décembre 2010

Cela m'interesse aussi mais ta demo ne marche pas
Messages postés
85
Date d'inscription
jeudi 30 janvier 2003
Statut
Membre
Dernière intervention
20 avril 2005

Soyons indulgents... L'explication commence par :

"à l'origine, ce que j'avais voulu faire"....


no comment !
Afficher les 8 commentaires

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.