Upload image php

Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 - 9 janv. 2009 à 09:40
 irem -
Bonjour,
Je suis actuellement en train de créer une rubrique de photos... C'est à dire que je peux créer une rubrique et mettre plusieurs photos dans une rubrique. Le souci c'est que je peux mettre qu'une photo par rubrique. Ca fait plusieurs jours que je m'acharne mais rien y fait
Je vous donne un bout du code :

	<?php
	include ('connection.php');
	include ('index.php');
	$req = ("SELECT NomRubrique FROM rubri order by NomRubrique asc");
	$result = mysql_query($req);
	?>
	<select name="choix">
	<?php
	while ($donnees = mysql_fetch_array($result))
					{
						echo "<option value = '$donnees[NumeroRubrique]'>" .$donnees['NomRubrique'] . "</option>";
					}
	$test = $_POST['choix'];

	?>
	</select>
	<?php
	//echo'<form action="ajout-image.php" method="post">
		//	<input name="txt_nom" type="text" value="'.$test.'">
			
		//</form>';
	
	 	
		//$nomrubrique=$_POST['txt_nom'];	
?>
		<form enctype="multipart/form-data" action="ajout-image.php" method="post"> 
        Chemin de l'image : <input name="fichier" type="file" /><br /><br />
          Titre de l'image : <input name="titre" type="text" size="20" /><br /><br />
            Commentaire de l'image : <textarea name="commentaire_photo" cols="20" rows="7">
            </textarea><br /><br />
            <input name="txt_nom" type="text" value="<?php echo $test; ?>" />
            <input name="ajout" type="hidden" value="3">
            <input type="submit" value="Ajouter l'image" />
        </form>
		
<?php
	$test = $_POST['txt_nom'];
	if ($_POST['ajout'] == 3)
	{
		$titre_photo=$_POST['titre'];
		$commentaire_photo=$_POST['commentaire_photo'];
		$nom_rubr=$test;
		$req=mysql_query("SELECT NumeroRubrique FROM rubri WHERE NomRubrique='".$nom_rubr."';");
		//$num_ope=mysql_result($req, 0);
		while ($ligne = mysql_fetch_array($req) )
		$num_rubr=$ligne[0];
			
		
		$target     = 'photos/reduites/';  // Repertoire cible 
		$extension  = 'jpg';      // Extension du fichier sans le . 
		$max_size   = 100000;     // Taille max en octets du fichier 
		$width_max  = 300;        // Largeur max de l'image en pixels 
		$height_max = 300;        // Hauteur max de l'image en pixels 
			
		//--------------------------------------------- 
		//  DEFINITION DES VARIABLES LIEES AU FICHIER 
		//--------------------------------------------- 
			
		$nom_file   = $_FILES['fichier']['name']; 
		$taille     = $_FILES['fichier']['size']; 
		$tmp        = $_FILES['fichier']['tmp_name']; 
			
		//---------------------- 
		//  SCRIPT D'UPLOAD 
		//----------------------  
		if(!empty($_FILES['fichier']['name'])) 
			{ 				
				// On vérifie l'extension du fichier 
				if(substr($nom_file, -3) == $extension) 
				{ 
					// On récupère les dimensions du fichier 
					$infos_img = getimagesize($_FILES['fichier']['tmp_name']); 
						 
					// On vérifie les dimensions et taille de l'image 
					if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($_FILES['fichier']['size'] <= $max_size)) 
					{
						$count=mysql_query("SELECT COUNT(NumeroImage) FROM imagereduite;");
						$nb_photos=mysql_result($count, 0);
						$nb_photos=$nb_photos+1;
						// Si c'est OK, on teste l'upload 
						$photo = 'photos_'.$nb_photos.'.jpg';
							if(move_uploaded_file($_FILES['fichier']['tmp_name'],$target . $photo  ) ) 
							{  
								mysql_query ("INSERT INTO imagereduite SET LienImage='".$photo."', NomImage='" .$titre_photo ."', CommentaireImage='".$commentaire_photo."' ,NumeroRubrique=".$test.";");
								echo ("INSERT INTO imagereduite SET LienImage='".$photo."', NomImage='" .$titre_photo ."', CommentaireImage='".$commentaire_photo."' ,NumeroRubrique=".$test.";");
								// Si upload OK alors on affiche le message de réussite 
								echo '<b>Image uploadée avec succès !</b>'; 
								echo '<hr />'; 
								echo '<b>Fichier :</b> ', $photo, '<br />'; 
								echo '<b>Taille :</b> ', $_FILES['fichier']['size'], ' Octets<br />'; 
								echo '<b>Largeur :</b> ', $infos_img[0], ' px<br />'; 
								echo '<b>Hauteur :</b> ', $infos_img[1], ' px<br />'; 
								echo '<hr />'; 
								echo '<br /><br />';
								
								echo '<form enctype="multipart/form-data" action="ajout-image.php" method="post"> 
        Chemin de l\'image : <input name="fichier" type="file" /><br /><br />
          Titre de l\'image : <input name="titre" type="text" size="20" /><br /><br />
            Description de l\'image : <textarea name="commentaire_photo" cols="20" rows="7">
            </textarea><br /><br />
			            <input name="txt_nom" type="hidden" value="'.$nom_rubr.'" />
            <input name="ajout" type="hidden" value="4">
            <input type="submit" value="Ajouter l\'image" />
        </form>';
							} 
							else 
							{ 
								// Sinon on affiche une erreur système 
								echo '<b>Problème lors de l\'upload !</b><br /><br /><b>', $_FILES['fichier']['error'], '</b><br /><br />';
							} 
						} 
						else 
						{ 
							// Sinon on affiche une erreur pour les dimensions et taille de l'image 
							echo '<b>Problème dans les dimensions ou taille de l\'image !</b><br /><br />'; 
						} 
					} 
					else 
					{ 
						// Sinon on affiche une erreur pour l'extension 
						echo '<b>Votre image ne comporte pas l\'extension .jpg !</b><br /><br />'; 
					} 
				} 
				else 
				{ 
					// Sinon on affiche une erreur pour le champ vide 
					echo '<b>Le champ du formulaire est vide !</b><br /><br />'; 
				} 
	}
A voir également:

1 réponse

Bonjour,

Pour moi le problème vient de la ligne :
SELECT COUNT(NumeroImage) FROM imagereduite

En effet, NumeroImage qu'est ce que c'est? Tu ne l'utilises nulle part ailleurs, donc deux possibilités, soit c'est un champ autoincrement dans ta base, et dans ce cas utilise plutot un count(*), soit c'est autre chose et là, je ne vois pas, ton image sera toujours numerotée photo1...

Cordialement

Rémi
0