PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 06-12-2010 17:27:28

allhambra
Membre
Lieu : Pau (64)
Inscription : 10-09-2009
Messages : 75
Site Web

formulaire update photos

Bonjour les codeurs !

J'ai un souci sur les champs images d'un formulaire d'update.
Lors de la mise à jour du bien, si je ne rentre rien dans mes champs, le script efface les images enregistrées en BDD et je n'ai pas de message d'erreur.
Le formulaire :

<FORM method="POST" enctype="multipart/form-data" action="update-bien.php?id=<?php echo $id; ?>">
 
    <input type="hidden" name="posted" value="1">
    <input name="id" type="hidden" value="<?php echo $row[id] ; ?>">
<table width="80%" border="0" align="center" cellpadding="5" cellspacing="0">
 
   <tr>
      <td colspan="2" class="style10">Les visuels </td>
      </tr>
    <tr>
      <td colspan="2">
    <?php if($photo_1 || ($row[photo_1] && !$posted)) { ?><label>Photo 1 <img src="../photos/<?php echo ($row[photo_1]); ?>" width="100" /></label>
    <label><input type="file" name="photo1"></label> <p> </p>
    <p> </p>
    <p><br />
     
        <?php } else {  ?>
      </p>
    <label> Photo 1<input type="file" name="photo1"></label>  <p> </p>
    <p><br />
     
      <?php } if($photo_2 || ($row[photo_2] && !$posted)) { ?><label>Photo 2 <img src="../photos/<?php echo ($row[photo_2]); ?>" width="100" /></label>  <label>
      <input type="file" name="photo2"></label>
    <p>      
    <p>
      <p><br />
     
        <?php } else {  ?>  
        <label> Photo 2<input type="file" name="photo2">
        </label>  
      <p> </p>
    <p><br />
     
        <?php }  if($photo_3 || ($row[photo_3] && !$posted)) { ?><label>Photo 3 <img src="../photos/<?php echo ($row[photo_3]); ?>" width="100" /></label>
        <label>
        <input type="file" name="photo3"></label>        
    <p>      
    <p><br />
     
        <?php } else {  ?>
     
      <label> Photo 3<input type="file" name="photo3">
        </label>  
      <p>        
      <p><br />
          <?php } ?>
                            </td>
      </tr>

   
    <tr>
      <td height="50" colspan="2"><div align="center">
        <p>
         
        </p>
        <p>
          <input type="submit" name="Submit" value="modifier ce bien" class="wymupdate" />
        </p>
      </div></td>
    </tr>
  </table>
  </form>

le traitement :

<?php
$select2="SELECT * FROM biens WHERE id='$id' ";

  $result2 = mysql_query($select2) or die ('Erreur : '.mysql_error() );

$total2 = mysql_num_rows($result2);
// si on a récupéré un résultat on l'affiche.

if($total2) {
 while($row = mysql_fetch_array($result2)) {
if($posted)
  {
  $id=$_POST['id'];
$partenaire= $_POST['partenaire'];
   $selection= $_POST['selection'];
   $reference= $_POST['reference'];
   $categorie= $_POST['categorie'];
   $type= $_POST['type'];
   $etage= $_POST['etage'];
   $ascenseur= $_POST['ascenseur'];
   $surface_hab= $_POST['surface_hab'];
   $nbre_chambres= $_POST['nbre_chambres'];
   $surface_sejour= $_POST['surface_sejour'];
   $type_cuisine= $_POST['type_cuisine'];
   $type_chauffage= $_POST['type_chauffage'];
   $charges= $_POST['charges'];
   $prestation_1 = $_POST['prestation_1'];
   $prestation_2= $_POST['prestation_2'];
   $prestation_3= $_POST['prestation_3'];
   $cave= $_POST['cave'];
   $nbre_stat= $_POST['nbre_stat'];
   $type_stat= $_POST['type_stat'];
   $titre_annonce= $_POST['titre_annonce'];
   $annonce= $_POST['annonce'];
   $ville= $_POST['ville'];
   $prix= $_POST['prix'];
   $frais= $_POST['frais'];
 
   $vv= $_POST['vv'];

 
  $chemin = "../photos/" ;

   
    if(!empty($_FILES["photo1"]["name"]))
{
  //nom du fichier choisi:
  $nomFichier    = $_FILES["photo1"]["name"] ;
  //nom temporaire sur le serveur:
  $nomTemporaire = $_FILES["photo1"]["tmp_name"] ;
  //type du fichier choisi:
  $typeFichier   = $_FILES["photo1"]["type"] ;
  //poids en octets du fichier choisit:
  $poidsFichier  = $_FILES["photo1"]["size"] ;
  //code de l'erreur si jamais il y en a une:
  $codeErreur    = $_FILES["photo1"]["error"] ;
 

 
  if(copy($nomTemporaire, $chemin.$nomFichier))
  $msg="l'upload 1 a réussi";
   
  else
  $msg="l'upload de la photo 1 a échoué";
}
  if(!empty($_FILES["photo2"]["name"]))
{
  //nom du fichier choisi:
  $nomFichier2    = $_FILES["photo2"]["name"] ;
  //nom temporaire sur le serveur:
  $nomTemporaire = $_FILES["photo2"]["tmp_name"] ;
  //type du fichier choisi:
  $typeFichier   = $_FILES["photo2"]["type"] ;
  //poids en octets du fichier choisit:
  $poidsFichier  = $_FILES["photo2"]["size"] ;
  //code de l'erreur si jamais il y en a une:
  $codeErreur    = $_FILES["photo2"]["error"] ;
 

 
  if(copy($nomTemporaire, $chemin.$nomFichier2))
  $msg="l'upload 2 a réussi";
   
  else
  $msg="l'upload de la photo 2 a échoué";
}

if(!empty($_FILES["photo3"]["name"]))
{
  //nom du fichier choisi:
  $nomFichier3    = $_FILES["photo3"]["name"] ;
  //nom temporaire sur le serveur:
  $nomTemporaire = $_FILES["photo3"]["tmp_name"] ;
  //type du fichier choisi:
  $typeFichier   = $_FILES["photo3"]["type"] ;
  //poids en octets du fichier choisit:
  $poidsFichier  = $_FILES["photo3"]["size"] ;
  //code de l'erreur si jamais il y en a une:
  $codeErreur    = $_FILES["photo3"]["error"] ;
 

 
  if(copy($nomTemporaire, $chemin.$nomFichier3))
  $msg="l'upload 3 a réussi";
   
  else
  $msg="l'upload de la photo 3 a échoué";
   
}
if($photo_1 || ($row[photo_1] && !$posted)) { $photo_1="($row[photo_1])";}else{ $photo_1=$_POST['nomFichier']; }
if($photo_2 || ($row[photo_2] && !$posted)) { $photo_2="($row[photo_2])";} else { $photo_2=$_POST['nomFichier2']; }
if($photo_3 || ($row[photo_3] && !$posted)) { $photo_3="($row[photo_3])";} else { $photo_3=$_POST['nomFichier3']; }

 if(empty($categorie) || empty($titre_annonce) || empty($annonce)) $msg="Veuillez compléter les champs marqués d'un *";
 
   else
     {
   
      $sql="UPDATE biens
              SET partenaire='$partenaire',
        selection='$selection',
        reference='$reference',
                          categorie='$categorie',
                          type='$type',
                          etage='$etage',
         ascenseur ='$ascenseur',
         surface_hab='$surface_hab',
         nbre_chambres='$nbre_chambres',
         surface_sejour='$surface_sejour',
         type_cuisine='$type_cuisine',
         type_chauffage='$type_chauffage',
         charges='$charges',
         prestation_1='$prestation_1',
         prestation_2='$prestation_2',
         prestation_3='$prestation_3',
         cave='$cave',
         nbre_stat='$nbre_stat',
         type_stat='$type_stat',
         titre_annonce='$titre_annonce',
         annonce='$annonce',
         ville='$ville',
         prix='$prix',
         frais='$frais',
         photo_1='$nomFichier',
         photo_2='$nomFichier2',
         photo_3='$nomFichier3',
         vv='$vv'
              WHERE id='$id'"
;
 
     
       mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

 // on affiche le résultat pour le visiteur
    echo '<b>Votre bien a été modifié.</b>';
 

    mysql_close();  // on ferme la connexion
    } }}}}}

En gros je cherche à lui dire que s'il n'y à pas de post (photo1,2 ou3), on garde la valeur initiale.

un coup de main serait bienvenu

Hors ligne

#2 06-12-2010 17:43:41

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : formulaire update photos

if( empty($_POST['nomFichier']) )
{
  $photo_1=$row['photo_1'];
}else{
  $photo_1=$_POST['nomFichier'];
}

Quelque chose comme cela ne serait-il pas mieux ?
Tes conditions actuelles sont assez confuses, certains termes ne servent à rien et tu oublies des cas (le cas "d'erreur" que tu cites par exemple).

Hors ligne

#3 06-12-2010 20:48:44

allhambra
Membre
Lieu : Pau (64)
Inscription : 10-09-2009
Messages : 75
Site Web

Re : formulaire update photos

Bonsoir xTG, merci de ta réponse.
J'ai modifié comme indiqué, mais c'est toujours pareil !
Si je ne rentre qu'une photo à l'ajout du bien, lorsque je tente de rajouter les suivante via mon update, il efface la première image de la base de données.

Dois-je faire un formulaire par photos ???

Hors ligne

Pied de page des forums