IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

probleme upload et update


Sujet :

PHP & Base de données

  1. #1
    Membre actif
    Inscrit en
    Août 2008
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 57
    Par défaut probleme upload et update
    Salut tout le monde .
    Je suis actuellement en train de créer un site avec une partie administration ou on peut ajouter des données dans une base ainsi qu'une photo.
    L'ajout fonctionne bien, l'upload aussi sauf que pour valider mon formulaire, je suis obligé d'uploader une photo sinon j'ai une erreur. Je voudrai donc rendre l'upload facultatif.

    Autre problème, quand je fais une modification d'un article, au lieu de me faire un update de la base, il me fait un insert.

    Je vous met mes différents codes.

    Pour la partie upload d'image, c'est un pote qui me l'a faite donc je sais pas comment le rendre facultatif.

    Merci d'avance

    index_occasion.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    <div id="back-office">
    			<h2><a href="occasion_modif.php">Ajouter un moteur occasion</a></h2>
    			<?php 
    				include ("../connexion.php");
     
    				if (isset($_GET['supprimer_occasion'])) // Si on demande de supprimer un article
    				{
        				// Alors on supprime l'aticle 
        				// On protège la variable "id_occasion"
        				$_GET['supprimer_occasion'] = addslashes($_GET['supprimer_occasion']);
        				mysql_query('DELETE FROM occasion WHERE id=\'' . $_GET['supprimer_occasion'] . '\'');
    				}
    			?>
     
    			<table>
    				<tr class="title">
    					<th>Modifier</th>
    					<th>Supprimer</th>
    					<th>Marque</th>
    					<th>Modèle</th>
    					<th>Prix</th>
    					<th>Date</th>
    				</tr>
    				<?php
    					$retour = mysql_query('SELECT * FROM occasion ORDER BY id DESC');
    					while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les articles
    					{
    						echo '<tr>';
    						echo '<td><a href="occasion_modif.php?marque='.$donnees['marque'].'&modele='.$donnees['modele'].'&cv='.$donnees['cv'].'&trs='.$donnees['trs'].'&ir='.$donnees['ir'].'&travaux='.$donnees['travaux'].'&fichier='.$donnees['fichier'].'&prix='.$donnees['prix'].'">modifier</a></td>';
    						echo '<td><a href="index_occasion.php?supprimer_occasion=' . $donnees['id'] . '">Supprimer</a></td>';
    						echo '<td>'.stripslashes($donnees['marque']).'</td>';
    						echo '<td>'.stripslashes($donnees['modele']).'</td>';
    						echo '<td>'.number_format($donnees['prix'],0, '.', ' ').'?</td>';
    						echo '<td>'.date('d/m/Y', $donnees['timestamp']).'</td>';
    						echo '</tr>';
    					} // Fin de la boucle qui liste les articles
    				?>
    			</table>
    		</div>
    	</div>
    occasion_modif.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    <h3><a href="index_occasion.php">Retour à la liste des moteurs occasions</a></h3>
    			<?php 
    				include ("../connexion.php");
     
    			?>
    			<form action="occasion_upload.php" method="post" ENCTYPE="multipart/form-data">
    				<LABEL for="marque">Marque : </LABEL>
    					<input type="text" size="30" name="marque" value="<?php echo $_GET['marque']; ?>" /><br/>
    				<LABEL for="modele">Modele : </LABEL>
    					<input type="text" size="30" name="modele" value="<?php echo $_GET['modele']; ?>" /><br/>
    				<LABEL for="cv">CV : </LABEL>
    					<input type="number" size="10" name="cv" value="<?php echo $_GET['cv']; ?>" /><br/>
    				<LABEL for="tours">Tours/min : </LABEL>
    					<input type="number" size="10" name="trs" value="<?php echo $_GET['trs']; ?>" /><br/>
    				<LABEL for="ir">Inverseur/reducteur : </LABEL>
    					<select name="ir">'; 
    						<option value="avec">Avec</option>
    						<option value="sans">Sans</option>
    					</select><br/>
     
    					<input type="textarea" id="FCKeditor1" name="travaux" style="display:none" value="<?php echo $travaux; ?>" />
    					<input type="hidden" id="FCKeditor1___Config" value="<?php echo $travaux; ?>" style="display:none" />
    					<iframe id="FCKeditor1___Frame" src="fckeditor/editor/fckeditor.html?InstanceName=FCKeditor1&amp;Toolbar=Default" width="80%" height="400" frameborder="0" scrolling="no"></iframe><br/>
    				<LABEL for="prix">Prix : </LABEL>
    					<input type="number" size="10" name="prix" value="<?php echo $prix; ?>" /><br/>
    				<LABEL for="photos">Photos : </LABEL>
    					<input type="hidden" name="MAX_FILE_SIZE" VALUE="10000000">
    					<input type="file" name="filename"><br/>
    				<input type="submit" value="uploader">
    			</form>
    		</div>
    occasion_upload.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
     
    <h3><a href="index_occasion.php">Retour à la liste des moteurs occasions</a></h3>
    			<?php 
    				include ("../connexion.php");
     
    			## Recuperation des variables du formulaire #############################################
    			$marque = $_REQUEST['marque'];
    			$modele = $_REQUEST['modele'];
    			$tours = $_REQUEST['trs'];
    			$cv = $_REQUEST['cv'];
    			$ir = $_REQUEST['ir'];
    			$travaux = $_REQUEST['travaux'];
    			$fichier = $_REQUEST['fichier'];
    			$prix = $_REQUEST['prix'];
    			#######################################################################
     
    			//-----------------------------------------------------
    			// Vérification 1 : ajoutez nvx article
    			//-----------------------------------------------------
    			if (isset($_POST['marque']) OR isset($_POST['modele']) OR isset($_POST['cv']) OR isset($_POST['trs']) OR isset($_POST['ir']) OR isset($_POST['travaux']) OR isset($_POST['prix']))
    			{						
     
    				// definition d'un identifiant unique en fonction de la date du jour au format JJMMAAHHMMSS
    				$date = date('dmyHis', mktime(date('H'),date('i'),date('s'),date('m'),date('d'),date('Y')));
     
    				$dossier = 'img_upload/'; // dossier dans lequel on importe l'image
    				$fichier = basename($_FILES['filename']['name']); //recuperation du nom du fichier
    				$taille_maxi = 10000000; //definition taille maxi en octets :  ici 10 000 000 = 10Mo
    				$taille = filesize($_FILES['filename']['tmp_name']); // recuperation de la taille du fichier
    				$extensions = array('.jpg', '.png', '.jpeg', '.gif'); // parametrage des extensions autorisées
    				$extension = strrchr($_FILES['filename']['name'],'.'); // onrécupere l'extension
     
    				if(!in_array($extension, $extensions)){
    					$erreur = 'Vous devez uploader un fichier de type image(jpg, jpeg, png, gif).'; 				}
    				if($taille>$taille_maxi){
    					$erreur = 'Le fichier est trop gros'; //affiche ce texte si le fichier depasse la taille (en poids) autorisés
    				}
    				if(!isset($erreur)){
    					$fichier = strtr($fichier,
    							'ÀÄÂçÊÈËÎÏÌÔÖÒÛÜÙÔÖÒâäàêëèûüùîìïôòöÿ', //caractere a remplacer
    							'AAAcEEEIIIOOOUUUoooaaaeeeuuuiiioooy'); // caractere qui les remplace, inscrit que dans le meme ordre qu'il doivent remplacer
    					$fichier = preg_replace('/([^.a-z0-9]+)/i','-',$fichier); // on remplace tous les caractere bizarre
     
    					if(file_exists('img_upload/'.$fichier)){
    						echo 'L\'upload a deja ete effectué, vous ne pouvez pas réimporter aujourd\'hui.<br/>'; // verifie si un fichier du meme nom existe
    						echo 'Si ce n\'est pas le cas vous devez changer le nom de votre fichier.<br/>';
     
    					}else{
    						if(move_uploaded_file($_FILES['filename']['tmp_name'],$dossier . $fichier)){
     
    						//rename('img_upload/'.$fichier, 'img_upload/'.$date.$extension); // possibilité de renomer le fichier
     
    						echo 'Upload effectué avec succes.<br/>';
     
    						## Affichage du contenu du formulaire ##################################"
    						echo '<br/><br/>';
    						echo 'Le contenu du formulaire est le suivant : <br/>';
    						echo 'Marque : '.$marque.'<br/>';
    						echo 'Modele : '.$modele.'<br/>';
    						echo 'Cv : '.$cv.'<br/>';
    						echo 'Inverseur/reducteur : '.$ir.'<br/>';
    						echo 'Tours/min : '.$tours.'<br/>';
    						echo 'Prix : '.$prix.'<br/>';
    						echo 'L\'image que vous avez choisi est la suivante : <br/>';
    						echo '<img src="img_upload/'.$fichier.'">';
    						###########################################################
    						}else{
    							echo 'Echec de l\'upload.<br/>';
    						}
    					}
    				}else{
    					echo $erreur;
    				}
     
    				$marque = addslashes($_POST['marque']);
        			$modele = addslashes($_POST['modele']);
        			$cv = addslashes($_POST['cv']);
        			$trs = addslashes($_POST['trs']);
        			$ir = addslashes($_POST['ir']);
        			$travaux = addslashes($_POST['travaux']);
        			$prix = addslashes($_POST['prix']);
     
        			 // On vérifie si c'est une modification d'article ou pas
        			if ($_POST['id_occasion'] == 0){
     
        				// definition de la date et heure courante grace au timestamp unix
        				$current_time = date("d/m/Y H:i:s", mktime(date("H"),date("i"),date("s"),date("m"),date("d"),date("Y")));
     
            			// Ce n'est pas une modification, on crée une nouvelle entrée dans la table
            			$sql_insert = "INSERT INTO occasion VALUES('','$marque', '$modele', '$cv', '$trs', '$ir', '$travaux', '$fichier', '$prix', '$current_time')";
            			$result_insert = mysql_query($sql_insert);
        			}else{
            			// On protège la variable "id_occasion" 
            			$posted_id = addslashes($_POST['id_occasion']);
            			// C'est une modification, on met juste à jour les champs
            			$sql_update = "UPDATE occasion SET marque='$marque', modele='$modele', cv='$cv', trs='$trs', ir='$ir', travaux='$travaux', fichier='$fichier', prix='$prix' WHERE id='$posted_id'";
            			$result_update = mysql_query($sql_update);
        			}
    			}else{
    				echo 'Vous n\'avez pas remplit tous les champs, veuillez les remplir';
    			}
    			?>
    		</div>

  2. #2
    Membre chevronné
    Avatar de FMaz
    Inscrit en
    Mars 2005
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 643
    Par défaut
    Bon,

    Commencont par le détail pas rapport:
    Pourquoi le '; ?

    Ensuite, tu fais le test suivant pour vérifier s'il faut modifier ou ajouter:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     // On vérifie si c'est une modification d'article ou pas
        			if ($_POST['id_occasion'] == 0){
    Or, si je regarde ton formulaire, à moins d'être aveugle, je ne vois pas de champ id_occasion. Donc tu devrais plutot faire une vérification à savoir si le champs existe ou non. Et pas s'il vaux zéro: il ne vaut PAS zéro, puisqu'il n'existe pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     // On vérifie si c'est une modification d'article ou pas
        			if (!isset($_POST['id_occasion'])){
    Ensuite, pour ton champs d'upload d'image, il te suffit de, par exemple, faire deux champs radio "bidon" qui activent ou désactivent le champ d'upload:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <LABEL for="photos">Photos : </LABEL>
    <br />
    <input type="radio" name="photo" value="true" onclick="document.getElementById('photoUpload').style.display='none';" checked="checked" /> Non
    <input type="radio" name="photo" value="false" onclick="document.getElementById('photoUpload').style.display='block';" /> Oui
     
    <div id="photoUpload">
    	<input type="hidden" name="MAX_FILE_SIZE" VALUE="10000000">
    	<input type="file" name="filename"><br/>
    </div>
    Je *crois* que le fait de retirer le div photoUpload du flux de la page (display = none) va envoyer le formulaire sans les champs contenu dans ce div. Une piste à tester.

Discussions similaires

  1. Probleme avec requete UPDATE sur ACCESS
    Par Chromatic dans le forum VBA Access
    Réponses: 2
    Dernier message: 05/01/2006, 10h03
  2. [Upload] Probleme Upload de fichier
    Par GTJuanpablo dans le forum Langage
    Réponses: 2
    Dernier message: 14/12/2005, 22h52
  3. Probleme de requete UPDATE pour modifier de champs ds DBGRID
    Par cmoimeme dans le forum Bases de données
    Réponses: 26
    Dernier message: 06/12/2005, 12h56
  4. [Upload] Probleme upload images
    Par yveslens dans le forum Langage
    Réponses: 6
    Dernier message: 22/08/2005, 09h42
  5. Probleme avec l'update
    Par belabyad dans le forum ASP
    Réponses: 8
    Dernier message: 02/05/2005, 10h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo