Problème avec ma requête Update

Résolu/Fermé
toumax Messages postés 31 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 17 janvier 2022 - 17 janv. 2022 à 14:11
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 - 17 janv. 2022 à 19:10
Bonjour,

Depuis quelques jours je galère sur un problème d'update via un formulaire. Je m'explique, je récupère grace à la variable $_GET un id. j'ai un formulaire avec qui mettra à jour ma table avec comme condition WHERE l'id que j'ai récuperé . tout mon code me semble correcte et les var_dump effectué ne me ramène rien.
J'ai exploré d'autres topic sur le même sujet, mais pour la plupart le problème étaient situés dans la syntaxe SQL, or ma requete passe bien dans phpmyadmin.

voici le code complet de la page :
<?php
//Affichage des erreurs PHP
error_reporting(E_ALL);
//---------------------------------------------------------------------------//
//Connexion propre à la bdd
// 
//---------------------------------------------------------------------------//
try{
  $bdd = new PDO('mysql:host=localhost;dbname=dblogin' ,'root','' );
  $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
  $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
} catch(PDOException $e) {
    die('Erreur : ' . $e->getMessage());
}


function getDetail ($critere)
{
	global $bdd;
	$sql = "SELECT * FROM tampon WHERE TABLEID = :critere ";
	//var_dump($sql);
	try 	
	{
		$requete = $bdd->prepare($sql) ;
	    $requete->bindValue(':critere',$critere);
		$requete->execute();
		return $requete->fetchAll();		
	}
	
	catch(Exception $e)	
	{
		echo"Erreur";	
		exit;
	}
	
}





	// Fichier entête 
	require_once("entete.php");
	 
	
	

	// TRAITEMENT DU FORMULAIRE (si posté)
	

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen">
<link href="bootstrap/css/bootstrap-theme.min.css" rel="stylesheet" media="screen">
<script type="text/javascript" src="jquery-1.11.3-jquery.min.js"></script>
<link rel="stylesheet" href="css/style.css" type="text/css"  />
<link rel="stylesheet" href="css/Normalize.css" rel="stylesheet">
<link rel="stylesheet" href="css/css/fontawesome.min.css" type="text/css"  />
<link rel="stylesheet" href="css/css/fontawesome.css" type="text/css"  />
<title>PNRSS <?php print($userRow['user_email']); ?></title>
	
	 
</head>

<body>

<nav class="navbar navbar-default navbar-fixed-top">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
         
        </div>
		<div class="pull-left"><img src="images/logo-aigf.png"></div>
        <div id="navbar" class="navbar-collapse collapse">
          	<h3 class="text-center">
            PROGRAMME NATIONAL DE RECENSEMENT DES SITES ET STATIONS 
         	</h3>
          <ul class="nav navbar-nav navbar-right">
            
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
			  <span class="glyphicon glyphicon-user"></span> Utilisateur: <?php echo $userRow['user_email']; ?> <span class="caret"></span></a>
              <ul class="dropdown-menu">
                <li><a href="profile.php"><span class="glyphicon glyphicon-user"></span>  Profile</a></li>
                <li><a href="logout.php?logout=true"><span class="glyphicon glyphicon-log-out"></span> Déconnection</a></li>
              </ul>
            </li>
           </ul>
        </div><!--/.nav-collapse -->
      </div>
    </nav>


    <div class="clearfix"></div>
    	
    
<div class="container-fluid " style="margin-top:80px;">
	
    <div class="container mainbg">
   		<br>
		<a class="return" href="liste_equipe.php"><i class="glyphicon glyphicon-arrow-left"></i> Retour</a>
		<br>
    	<label class="h5">Vous avez selectionné la ligne N° : <?php print($_GET['id']); ?></label>
        <hr />
        
       <!-- <h3 align="center">COLLECTE DES DONNEES DU PNRSS</h3>
        <hr />
       	<br/>
		<div> -->
			<!-- Affichage du formulaire  -->					
		<div class="row col-md-10 col-md-offset-1">		
			
			<form  action="" method="post">			  	  						
			<h4> Infos du site selectionné </h4>
			<hr color="#F90408" style="background-color: darkslateblue; height:4px;" >
			 <?php  
				
				if (isset ($_GET['id'])) 
					{
					$critere = $_GET['id'];
					$listeDetaillee = getDetail($critere);
					//var_dump($critere);
					//var_dump($listeDetaillee);
					foreach($listeDetaillee as $row)
					{
						
					}
					
					} 				
			?>	
				
			  <!--Table-->
			<div class="table table-bordered table-responsive">	
			
			<table class="table table-striped w-auto">
			  <thead class="alert-info table-bordered">
					<tr>
					  <th>TABLEID</th>
					  <th>EQUIPE_TERRAIN</th>
					  <th>CLUSTER</th>
					  <th>LOCALITE</th>
					  <th>SECTEUR</th>
					  <th>LONGITUDE_Q</th>
					  <th>LATITUDE_Q</th>
					  <th>PYLONE_Q</th>
					</tr>
				  </thead>
				  <!--Table head-->

				  <!--Table body-->
				  <tbody class="text-center">
					<tr class="table-info">
					  <th scope="row"><?php echo $row['TABLEID']; ?></th>
					  <td><?php echo $row['EQUIPE_TERRAIN']; ?></td>
					  <td><?php echo $row['CLUSTER']; ?></td>
					  <td><?php echo $row['LOCALITE']; ?></td>
					  <td><?php echo $row['SECTEUR']; ?></td>
					  <td><?php echo $row['LONGITUDE_Q']; ?></td>
					  <td><?php echo $row['LATITUDE_Q']; ?></td>
					  <td><?php echo $row['PYLONE_Q']; ?></td>
					</tr>
					<tr>
				 </tbody>
				</table>
				</div>	
				<div>
				<p class="arrow"><h4> Formulaire d'insertion des données collectées </h4><i>Prenez soin de bien effectuer cette opération.</i></p></div>
				<hr color="#F90408" style="background-color: darkslateblue; height:4px;" >
			  <!--Table fin-->
			
			<?php 
				//-------------------------					    
				
				if (isset($_POST['submit'])) {		
				  $_POST['TABLEID']=$row['TABLEID'];					
				  $nom_tableID=$_POST['TABLEID'];
				  $nom_SUPPORT=$_POST['SUPPORT'];
				  $nom_HAUTEUR_SUPPORT=$_POST['HAUTEUR_SUPPORT'];
					// preparation de la requete
				  $sql="UPDATE tampon SET  SUPPORT =:SUPPORT, HAUTEUR_SUPPORT = :HAUTEUR_SUPPORT WHERE TABLEID= :TABLEID";
				  $traiter=$bdd->prepare($sql);			
				  $traiter->bindParam(':TABLEID',$nom_tableID,PDO::PARAM_STR,50);
				  $traiter->bindParam(':SUPPORT',$nom_SUPPORT,PDO::PARAM_STR,50);
				  $traiter->bindParam(':HAUTEUR_SUPPORT' ,$nom_HAUTEUR_SUPPORT, PDO::PARAM_INT);
				 // $traiter->execute(array(':TABLEID'=>$nom_tableID,':SUPPORT'=>$nom_SUPPORT,':HAUTEUR_SUPPORT' =>$nom_HAUTEUR_SUPPORT));
				  $traiter->debugDumpParams();
					//echo '<pre>', print_r($traiter->fetchAll(PDO::FETCH_ASSOC), TRUE), '</pre>';
				  var_dump($traiter);
				  
						if (isset($traiter)) {
								//echo "<div class='alert alert-success center' style='width: 90%; margin: auto;'><p>Ajout //avec sucees</p></div><br><br>
								//<meta http-equiv='refresh' content='5; url = liste_equipe.php' />
								//"; 
								//echo "$nom_SUPPORT 'et' $nom_HAUTEUR_SUPPORT" ;
						 		var_dump($traiter);
								//var_dump($_POST['TABLEID']);
							  }

							  else {
							   echo "<div class='alert alert-danger center' style='width: 90%; margin: auto;'><p>Error d'ajout</p></div><br><br>";     
							  }
							 }			 				 
				?>
			
			
			
				<div class="formelement">
				
					
					
				<label class="">TABLEID : <span style="color:red; font-weight: bold; font-family: Arial, sans-serif ;">(Ajouter une description)</span></label>
              <div class="input-group">
                  <span class="input-group-addon"><i class="glyphicon glyphicon-pencil"></i></span>
                  <input readonly  name="TABLEID" type="text" placeholder="" class="form-control validate[required]" value="<?php echo $row['TABLEID']; ?>" />
              </div><br>
					
			   <label class="">SUPPORT : <span style="color:red; font-weight: bold; font-family: Arial, sans-serif ;">(Ajouter une description)</span></label>
              <div class="input-group">
                  <span class="input-group-addon"><i class="glyphicon glyphicon-pencil"></i></span>
				  <select name="SUPPORT" class="form-control">
				  <option>Seclectionner</option>
                  <option>TERRE</option>
                  <option>MONTAGNE</option>
				  <option>BATIMENT</option>
                  </select>
              </div><br>
				
			  <label class="">HAUTEUR_SUPPORT : <span style="color:red; font-weight: bold; font-family: Arial, sans-serif ;">(Ajouter une description)</span></label>
              <div class="input-group">
                  <span class="input-group-addon"><i class="glyphicon glyphicon-pencil"></i></span>
                  <input  name="HAUTEUR_SUPPORT" type="text" placeholder="" class="form-control validate[required]" value="" />
              </div><br>
			
			   <label class="">LONGITUDE_EQ_TER : <span style="color:red; font-weight: bold; font-family: Arial, sans-serif ;">(Ajouter une description)</span></label>
              <div class="input-group">
                  <span class="input-group-addon"><i class="glyphicon glyphicon-pencil"></i></span>
                  <input name="LONGITUDE_EQ_TER" type="text" placeholder="" class="form-control validate[required]" value="" />
              </div><br>
			  
			  <label class="">LATTITUDE_EQP_TER : <span style="color:red; font-weight: bold; font-family: Arial, sans-serif ;">(Ajouter une description)</span></label>
              <div class="input-group">
                  <span class="input-group-addon"><i class="glyphicon glyphicon-pencil"></i></span>
                  <input name="LATTITUDE_EQP_TER" type="text" placeholder="" class="form-control validate[required]" value="" />
              </div><br>
				
			  <label class="">PYLONE_EQUIPE_TERRAIN : <span style="color:red; font-weight: bold; font-family: Arial, sans-serif ;">(Ajouter une description)</span></label>
              <div class="input-group">
                  <span class="input-group-addon"><i class="glyphicon glyphicon-pencil"></i></span>
                  <input  name="PYLONE_EQUIPE_TERRAIN" type="text" placeholder="" class="form-control validate[required]" value="" />
              </div><br>
				
			 <label class="">SECURITE_1 : <span style="color:red; font-weight: bold; font-family: Arial, sans-serif ;">(Ajouter une description)</span></label>
              <div class="input-group">
                  <span class="input-group-addon"><i class="glyphicon glyphicon-pencil"></i></span>
				  <select name="SECURITE_1" class="form-control">
				  <option>Seclectionner</option>
                  <option>GARDIENNAGE</option>
                  <option>BALISAGE NOCTUNE</option>
				  <option>BALISAGE</option>
                  </select>
              </div><br>
				
			<label class="">SECURITE_2 : <span style="color:red; font-weight: bold; font-family: Arial, sans-serif ;">(Ajouter une description)</span></label>
              <div class="input-group">
                  <span class="input-group-addon"><i class="glyphicon glyphicon-pencil"></i></span>
				  <select name="SECURITE_2" class="form-control">
				  <option>Seclectionner</option>
                  <option>GARDIENNAGE</option>
                  <option>BALISAGE NOCTUNE</option>
				  <option>BALISAGE</option>
                  </select>
              </div><br>
				
			 <label class="">SECURITE_3 : <span style="color:red; font-weight: bold; font-family: Arial, sans-serif ;">(Ajouter une description)</span></label>
              <div class="input-group">
                  <span class="input-group-addon"><i class="glyphicon glyphicon-pencil"></i></span>
				  <select name="SECURITE_3" class="form-control">
				  <option>Seclectionner</option>
                  <option>GARDIENNAGE</option>
                  <option>BALISAGE NOCTUNE</option>
				  <option>BALISAGE</option>
                  </select>
              </div><br>
				
			  <label class="">SECURITE_4 : <span style="color:red; font-weight: bold; font-family: Arial, sans-serif ;">(Ajouter une description)</span></label>
              <div class="input-group">
                  <span class="input-group-addon"><i class="glyphicon glyphicon-pencil"></i></span>
				  <select name="SECURITE_4" class="form-control">
				  <option>Seclectionner</option>
                  <option>GARDIENNAGE</option>
                  <option>BALISAGE NOCTUNE</option>
				  <option>BALISAGE</option>
                  </select>
              </div><br>
				
			  <label class="">SECURITE_5 : <span style="color:red; font-weight: bold; font-family: Arial, sans-serif ;">(Ajouter une description)</span></label>
              <div class="input-group">
                  <span class="input-group-addon"><i class="glyphicon glyphicon-pencil"></i></span>
				  <select name="SECURITE_5" class="form-control">
				  <option>Seclectionner</option>
                  <option>GARDIENNAGE</option>
                  <option>BALISAGE NOCTUNE</option>
				  <option>BALISAGE</option>
                  </select>
              </div><br>
			
			  <label class="">ENERGIE_1: <span style="color:red; font-weight: bold; font-family: Arial, sans-serif ;">(Ajouter une description)</span></label>
              <div class="input-group">
                  <span class="input-group-addon"><i class="glyphicon glyphicon-pencil"></i></span>
				  <select name="ENERGIE_1" class="form-control">
				  <option>Seclectionner</option>
                  <option>SOLAIRE</option>
                  <option>CIE</option>
				  <option>GROUPE ELECTROGENE</option>
                  </select>
              </div><br>
				
			  <label class="">Nbre_ENERGIE_1: <span style="color:red; font-weight: bold; font-family: Arial, sans-serif ;">(Ajouter une description)</span></label>
              <div class="input-group">
                  <span class="input-group-addon"><i class="glyphicon glyphicon-pencil"></i></span>
                  <input name="Nbre_ENERGIE_1" type="text" placeholder="" class="form-control validate[required]" value="" />
              </div><br>
				 
			  <label class="">ENERGIE_2: <span style="color:red; font-weight: bold; font-family: Arial, sans-serif ;">(Ajouter une description)</span></label>
              <div class="input-group">
                  <span class="input-group-addon"><i class="glyphicon glyphicon-pencil"></i></span>
				  <select name="ENERGIE_2" class="form-control">
				  <option>Seclectionner</option>
                  <option>SOLAIRE</option>
                  <option>CIE</option>
				  <option>GROUPE ELECTROGENE</option>
                  </select>
              </div><br>
				
			  
			   <label class="">CODE_SITE_UTILISATEUR_EMPLACEMENT1 : <span style="color:red; font-weight: bold; font-family: Arial, sans-serif ;">(Ajouter une description)</span></label>
              <div class="input-group">
                  <span class="input-group-addon"><i class="glyphicon glyphicon-pencil"></i></span>
                  <input name="CODE_SITE_UTILISATEUR_EMPLACEMENT1" type="text" placeholder="" class="form-control validate[required]" value="" />
              </div><br>
				
			  <label class="">UTILISATEUR EMPLACEMENT_1 : <span style="color:red; font-weight: bold; font-family: Arial, sans-serif ;">(Ajouter une description)</span></label>
              <div class="input-group">
                  <span class="input-group-addon"><i class="glyphicon glyphicon-pencil"></i></span>
				  <select name="UTILISATEUR EMPLACEMENT_1" class="form-control">
				  <option>Seclectionner</option>
                  <option>IHS</option>
                  <option>MTN</option>
				  <option>MOOV AFRICA</option>
				  <option>OCI</option>
				  <option>INDETERMINE</option>
                  </select>
              </div><br>
				
			   <label class="">CODE_SITE_UTILISATEUR_EMPLACEMENT_2 : <span style="color:red; font-weight: bold; font-family: Arial, sans-serif ;">(Ajouter une description)</span></label>
              <div class="input-group">
                  <span class="input-group-addon"><i class="glyphicon glyphicon-pencil"></i></span>
                  <input name="CODE_SITE_UTILISATEUR_EMPLACEMENT_2" type="text" placeholder="" class="form-control validate[required]" value="" />
              </div><br>
				
			   <label class="">UTILISATEUR_EMPLACEMENT_2 : <span style="color:red; font-weight: bold; font-family: Arial, sans-serif ;">(Ajouter une description)</span></label>
              <div class="input-group">
                  <span class="input-group-addon"><i class="glyphicon glyphicon-pencil"></i></span>
                  <input name="UTILISATEUR_EMPLACEMENT_2" type="text" placeholder="" class="form-control validate[required]" value="" />
              </div><br>
				
			   <label class="">DIFFICULTES_RECOMMANDATIONS : <span style="color:red; font-weight: bold; font-family: Arial, sans-serif ;">(Ajouter une description)</span></label>
              <div class="input-group">
                  <span class="input-group-addon"><i class="glyphicon glyphicon-pencil"></i></span>
				  <textarea name="DIFFICULTES_RECOMMANDATIONS" type="text" placeholder="" class="form-control validate[required]" value=""></textarea>                  
              </div><br>
				
			   <label class="">VALIDER : <span style="color:red; font-weight: bold; font-family: Arial, sans-serif ;">(Ajouter une description)</span></label>
              <div class="input-group">
                  <span class="input-group-addon"><i class="glyphicon glyphicon-pencil"></i></span>
                  <select name="UTILISATEUR EMPLACEMENT_1" class="form-control">
				  <option>Seclectionner</option>
                  <option>OUI</option>
                  <option>NON</option>
				  </select>
              </div><br>
				 
			  <div class="form-group text-center">
				<div class="col">
				  <button type="submit" name="submit" class="mybtn mybtn-success btn-lg">Envoyer</button>
				  <hr id='success'>
				</div>
			  </div>
			</div>	 
			</div>
			  <!-- Bouton de validation -->	
				           
			  
			
			</form>		
	    </div>	
			
				
				
			<!-- FIN deuxième liste déroulante-->
			
			
			<!-- FIN deuxième liste déroulante-->
				
			
			
			
						
			
		<br/>
		<br/>

</div>

<script src="bootstrap/js/bootstrap.min.js"></script>

</body>
</html>


Merci pour votre éclarage ...

Configuration: Windows / Firefox 96.0
A voir également:

3 réponses

jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 718
17 janv. 2022 à 14:31
Bonjour
Commence par créer une fonction comme pour
getDetail
Et pense bien à mettre ta requête update dans un bloc try/catch
1
toumax Messages postés 31 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 17 janvier 2022
17 janv. 2022 à 15:01
Bien merci jordane45
je vais essayer cette option et je vous reviens
0
toumax Messages postés 31 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 17 janvier 2022
Modifié le 17 janv. 2022 à 16:57
bonsoir jordan45,

voici la fonction créée
function getInsertion ($nom_tableID,$nom_SUPPORT,$nom_HAUTEUR_SUPPORT){
 
 global $bdd;
 $sql = "UPDATE tampon SET  SUPPORT =:SUPPORT, HAUTEUR_SUPPORT = :HAUTEUR_SUPPORT WHERE TABLEID= :TABLEID";
 
 try 
 {
  $traiter=$bdd->prepare($sql);   
  $traiter->bindParam(':TABLEID',$nom_tableID,PDO::PARAM_STR,50);
  $traiter->bindParam(':SUPPORT',$nom_SUPPORT,PDO::PARAM_STR,50);
  $traiter->bindParam(':HAUTEUR_SUPPORT' ,$nom_HAUTEUR_SUPPORT, PDO::PARAM_INT);
  $traiter->execute();
  return $traiter;  
 }
 
 catch(Exception $e) 
 {
  echo"Erreur";
  exit;
 }
 
}


lorsque je fais appel à cette function j'ai erreur comme stipulé dans mon catch
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 718 > toumax Messages postés 31 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 17 janvier 2022
17 janv. 2022 à 19:10
Pour savoir quelle est l'erreur, il faut, dans ton catch faire :
catch(Exception $e) 
 {
  echo"Erreur "  . $e->getMessage();
  exit;
 }

Avec ça tu auras l'explication du souci.
0
toumax Messages postés 31 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 17 janvier 2022
Modifié le 17 janv. 2022 à 17:33
Enfin j'ai réussi, bon à 70% grace à l'orientation de jordan45 dans un topic similaire (https://forums.commentcamarche.net/forum/affich-31806297-requete-update-ajoute-des-entrees#answers)

function getInsertion ($nom_tableID,$nom_SUPPORT,$nom_HAUTEUR_SUPPORT){
 
 global $bdd;
 $sql = "UPDATE tampon SET  SUPPORT =:SUPPORT, HAUTEUR_SUPPORT = :HAUTEUR_SUPPORT WHERE TABLEID= :TABLEID";
 
 try 
 {  
   
  $params= array( 
                  'TABLEID' => $nom_tableID,
                  'SUPPORT' => $nom_SUPPORT,
                  'HAUTEUR_SUPPORT' => $nom_HAUTEUR_SUPPORT,
                 ); 
  print_r($params);
  $traiter=$bdd->prepare($sql); 
  $traiter->execute($params);
  return $traiter;  
 }
 
 catch(Exception $e) 
 {
  echo"Erreur";
  exit;
 }
 
}


les données vont se loger dans la bdd comme prévu. reste à tripatouiller le code pour afficher un message et faire une redirection correcte
0
toumax Messages postés 31 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 17 janvier 2022
17 janv. 2022 à 17:38
Merci à tous
0