begin process at 2012 02 10 23:56:11
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > GALLERIE PHOTO ET BASE DE DONNÉES

GALLERIE PHOTO ET BASE DE DONNÉES


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Niveau :Initié Date de création :03/01/2004 Vu :9 604

Auteur : danuz

Ecrire un message privé
Site perso
Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

 Description

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

  • <?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>
<?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. ;)


 Sources de la même categorie

Source avec Zip Source avec une capture CAMEMBERT BD par dardelphi
Source avec une capture AMÉLIORATION : CAMEMBERT par asphator
GESTION DE COULEUR par manuche
Source avec Zip NAVIGATOR (+CSSDETECTOR) par xXVoxPopuliXx
COMMENT, AVEC GD, DESSINER UN RECTANGLE TRANSPARENT PLEIN AV... par Rainbow

Commentaires et avis

Commentaire de webdeb le 04/01/2004 13:49:56

C'est bien de mettre des sources mais ce qui serait encore mieux, ce serait que tu mettes un lien vers une démo !

La on verrait encore mieux le résultat de ton script !

++ Sinon ca à l'air sympa comme source ! C'est très recherché !

Commentaire de danuz le 05/01/2004 02:16:18

Oui, désolé pour le site, j'avai completement oublié.
voici ci dessous ce que ça donne un peu sur le web. A vous de l'optimiser :)

http://blaxix.free.fr/danuz/shower.php

Commentaire de nico606 le 06/04/2004 18:23:09

vachement encouragent ta demo (elle marche pa)

Commentaire de kipetrovitchy le 02/12/2004 17:30:24

Soyons indulgents... L'explication commence par :

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


no comment !

Commentaire de barbaralille le 22/08/2006 18:21:14

Cela m'interesse aussi mais ta demo ne marche pas

Commentaire de aikidomi le 18/10/2006 21:42:47

Non c'est non
trops d'erreurs surtout à partir de la ligne 71

Commentaire de rbiba le 24/11/2008 10:27:57

ou est la base des donnees

Commentaire de ucred05 le 23/10/2009 18:20:59

Bonsoir à tous! la demo ne marche pas. merci

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,699 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales