Pb Opendir avec nom de dossier variable

Staphy -  
 Staphy -
Bonjour,

Je suis toute novice en programmation et j'aurai besoin d'un peu d'aide...

J'essaye de faire un site pour une association et de créer une galerie photo pour chaque évènement auquel elle participe.

== Le Contexte ==

J'ai créé une table:

CREATE TABLE events (
   id int(11) NOT NULL auto_increment,
   nom varchar(63) NOT NULL,
   PRIMARY KEY (id),
   KEY ID_2 (id)
);

INSERT INTO 'events' ('id', 'nom') VALUES
(1, 'Sortie du 13 Août');



Lors de l'ajout d'un nouvel évènement, un dossier portant le nom de l'évènement se créé et l'évènement est ajouté à la table:

			<?php
<!--connexion à la base-->
			mysql_connect('localhost','root', '') or die('Could not connect');
			mysql_select_db('volcans') or die('Could not select DB');
			if ($_SERVER['REQUEST_METHOD'] == 'POST') {
			 mysql_query("INSERT INTO events SET ".
	  "nom='".mysql_escape_string($_POST['nom_event'])."';");}
			?>
			<html>
			<h1>Nouvel évènement</h1>
<!--formulaire de création d'un évènement-->
			<form method="POST" action="<?php echo $_SERVER['PHP_SELF'] ?>">
        <span>Nom</span>
        <input type="text" name="nom_event" value="Sortie du jj mois 20xx"><br />
		<input type="submit" name="submit" value="Envoyer">
    </form>

<!--création du dossier portant le nom de l'événement-->
	<?php
if(isset($_POST) && !empty($_POST['nom_event'])) {
if(!empty($_POST['nom_event'])){
$nom_dossier=$_POST['nom_event'];
  extract($_POST); 
mkdir ( "images/gallery/Events/$nom_dossier" ,  0700 );
  }    
else {
  echo '</br><p>Vous avez oublié de remplir un champ.</p>';
}}


?>


== Le Problème ==

Ensuite il apparaît sur la page regroupant tous les évènements, et quand je clique sur "Sortie du 13 Août", j'aimerais afficher toutes les photos du dossier du même nom:

 <?php
  $id = ($_GET["id"]);
  $nom_dossier = mysql_query("SELECT nom FROM events WHERE id='".$id."'");
$dir="images/gallery/Events/$nom_dossier";
$dossier=opendir($dir);
while($fichier=readdir($dossier)){
$berk=array('.', '..');
if(!in_array($fichier,$berk)){
$lien=$dir.'/'.$fichier;
print '<div style="float:left;height:75px;margin-bottom:20px;">';
if(file_exists($lien)){
print '<a href="'.$lien.'" rel="lightbox">';
print '<img src="'.$lien.'" alt="" class="frameit" width="75" height="75"></a>';
}
print '</div>';
}
}
?>


Mais ça ne marche pas, il me dit:
Warning: opendir(images/gallery/Events/Resource id #4) [function.opendir]: failed to open dir: No such file or directory in C:\wamp\www\SiteVolcans\accueil\acces_photo.php on line 78

Quelqu'un saurait d'où vient mon problème et comment je dois faire pour le résoudre ?
J'ai cherché un peu partout, mais je n'ai rien trouvé qui corresponde à mon problème...

Merci Beaucoup =)
Staphy



1 réponse

Staphy
 
C'est bon ! J'ai résolu mon problème comme une grande.
Pour ceux que ça intéresserait, je me suis rendue compte que je me trompais entre la valeur "nom" et tableau contenant "nom".


Du coup j'ai fais :

  <?php
  $id = ($_GET["id"]);
<!--sélection des données où id=id de l'évènement sur lequel on a cliqué-->
<(ici une seule ligne puisque identifiant unique)>
  $r = mysql_query("SELECT * FROM events WHERE id='".$id."'");
  $nblignes = mysql_num_rows($r);
  $a = mysql_fetch_array($r);
<!--Obtention de la valeur de la donné "nom" à la première ligne (0) de $r-->
  $prod_nom =  mysql_result($r,0,"nom");
  echo'<h1> '.$a['nom'].' </h1>';
<!--Ouverture du dossier-->
$dir="images/gallery/Events/$prod_nom";
$dossier=opendir($dir)or die('Erreur de listage : le répertoire n\'existe pas');
while($fichier=readdir($dossier)){
$berk=array('.', '..');
if(!in_array($fichier,$berk)){
$lien=$dir.'/'.$fichier;
print '<div style="float:left;height:75px;margin-bottom:20px;">';
if(file_exists($lien)){
print '<a href="'.$lien.'" rel="lightbox">';
print '<img src="'.$lien.'" alt="" class="frameit" width="75" height="75"></a>';
}
print '</div>';
}
}
?>
0