Modifier base de données

superwish -  
 Utilisateur anonyme -
Bonjour,
Je suis en train d'apporter des nouvelles modifications à un site web et là ça fait 1 mois que je bloque.
En fait, j'ai des évènements à gérer. Ces évènements sont saisis dans un formulaire qui les envoie dans une base de données MySQL. J'ai créer un bouton pour pouvoir les supprimer. Tout cela marche. Ensuite j'ai créer un bouton Modifier et là ça ne marche pas. C'est exactement le même formulaire que pour ajouter. Le code qui doit modifier l'évènement sélectionné :

<html>
<head><title>Évènement modifié</title></head>
<body>
<?php
include('connexion.php');
foreach ($arr as $valeur){
$date2 = $_POST['$date2'];
$lieu2 = $_POST['$lieu2'];
$titre2 = $_POST['$titre2'];
$descriptif2 = $_POST['$descriptif2'];

$sql="UPDATE evenements2 SET jour='".$date2."', lieu='".$lieu2."', titre='".$titre2."', descriptif='".$descriptif2."' WHERE id='$valeur'";
$req = mysql_query ($sql) or die ('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
}
mysql_close();
?>
<b><u>VOTRE ÉVÈNEMENT A BIEN ÉTÉ MODIFIÉ !</u></b><br>
<p><a href="mesevenements.php">Retour aux évènements</a></p>
</body>
</html>

Merci pour votre aide.

2 réponses

  1. Utilisateur anonyme
     
    <?php 
    if (sizeof($_POST) >0) { 
    include('connexion.php'); 
    foreach ($arr as $valeur){ 
    $date2 = $_POST['$date2']; 
    $lieu2 = $_POST['$lieu2']; 
    $titre2 = $_POST['$titre2']; 
    $descriptif2 = $_POST['$descriptif2']; 
    
    $sql="UPDATE evenements2 SET jour='".$date2."', lieu='".$lieu2."', titre='".$titre2."', descriptif='".$descriptif2."' WHERE id='$valeur'"; 
    $req = mysql_query ($sql) or die ('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
    } 
    } 
    mysql_close(); 
    ?><html> 
    <head><title>Évènement modifié</title></head> 
    <body> 
    
    <b><u>VOTRE ÉVÈNEMENT A BIEN ÉTÉ MODIFIÉ !</u></b><br> 
    <p><a href="mesevenements.php">Retour aux évènements</a></p> 
    </body> 
    </html> 
    0
    1. superwish
       
      Ce code fait pareil que le mien : aucune modification :(
      Merci quand même d'avoir cherché.
      0
    2. Utilisateur anonyme
       
      Est-ce que ton bouton fait un post ou c'est un lien ? Et quel est le nom de la session qui contient l'id ?
      0
    3. superwish
       
      Le bouton fait un POST.
      L'id est un champ de la table évènements2 dans la base de données.
      Voilà le code de mon formulaire :

      <html>
      <head><title>Modification d'un évènement</title></head>
      <body>
      <p><font size="5px" color="red">MODIFICATION D'ÉVÈNEMENT</font></p>
      <?php
      $arr=array($_POST['erase']);
      if (!isset($_POST['erase']))
      {
      echo
      ?>
      <b><u>VOUS N'AVEZ SÉLECTIONNÉ AUCUN ÉVÈNEMENT</u></b>
      <p><a href="mesevenements.php">Retour aux évènements</a></p>
      <?php;
      }
      else
      {
      foreach ($arr as $valeur) {
      include("connexion.php");
      $sql = "SELECT jour, lieu, titre, descriptif FROM evenements2 WHERE id='$valeur'";
      $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());}
      while ($data = mysql_fetch_array ($req)) {

      echo "<form method='post' action='mod.php'>
      <table border=0>
      <tr>
      <td>"; ?>
      Date : <?php
      echo "<input type='text' name='$date2' value='".$data['jour']."'>"; ?> (aaaa-mm-jj) <br><br>
      Lieu : <?php
      echo "<input type='text' name='$lieu2' value='".$data['lieu']."'>"; ?> <br><br>
      Titre : <?php
      echo "<input type='text' name='$titre2' value='".$data['titre']."'>";?> <br><br>
      Descriptif : <br><?php
      echo "<textarea name='$descriptif2' value=>".$data['descriptif']."</textarea>";?> <br><br>
      Image de fond : <?php
      foreach ($arr as $valeur) {
      $sql2="SELECT image FROM img";
      $req2=mysql_query($sql2) or die ('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());}
      while ($data2 = mysql_fetch_array ($req2)) {
      echo "<select name='$image2'>";
      while ($row=mysql_fetch_array($req2))
      {
      echo"<option>'".$data2['image']."'</option>";
      }
      echo "</td>
      </tr>
      </table>
      <input type='submit' value='Modifier'>
      <input type='reset' value='Annuler'>
      </form>"
      ?>
      <?php
      } } }
      ?>
      </body>
      </html>
      0
  2. Utilisateur anonyme
     
    Sinon, voici une solution avec un bon code bien structuré ! :

    <?php
    session_start();
    	if (sizeof($_POST) > 0) {
    		$id = $_SESSION['id'];
    			$bdd = ''; // Le nom de ta base de donnée
    			$host = ''; // Ton localhost
    			$user = ''; //Ton login de connexion mysql
    			$mdp = ''; //Ton mot de passe mysql
    			$conn = mysql_connect($host, $user, $mdp);
    			mysql_select_db($bdd, $conn);
    			
    			$upd = "UPDATE evenements2 SET jour='".$date2."', lieu='".$lieu2."', titre='".$titre2."', descriptif='".$descriptif2."' WHERE id='".$valeur."'";
    			$query = mysql_query($upd) or die (mysql_error());
    			
    			if ($query == 'true') {
    				echo '<html> 
    <head><title>Évènement modifié</title></head> 
    <body> 
    
    <b><u>VOTRE ÉVÈNEMENT A BIEN ÉTÉ MODIFIÉ !</u></b><br> 
    <p><a href="mesevenements.php">Retour aux évènements</a></p> 
    </body> 
    </html> ';
    			}
    			mysql_close();
    			exit();
    	}
    ?>
    0
    1. superwish
       
      Heu désolé mais ça ne marche pas non plus, quand je clique sur Modifier, j'ai une page blanche qui apparait et aucune modification n'est apportée.
      0
    2. Utilisateur anonyme
       
      Il faut que le bouton se trouve dans un <form method="post"> !
      0
    3. Utilisateur anonyme
       
      Autre petite erreur de ma part ! Voici le code correct :
      <?php
      session_start();
      	if (sizeof($_POST) > 0) {
      		$id = $_SESSION['id'];
      			$bdd = ''; // Le nom de ta base de donnée
      			$host = ''; // Ton localhost
      			$user = ''; //Ton login de connexion mysql
      			$mdp = ''; //Ton mot de passe mysql
      			$conn = mysql_connect($host, $user, $mdp);
      			mysql_select_db($bdd, $conn);
      			
      			$upd = "UPDATE evenements2 SET jour='".$date2."', lieu='".$lieu2."', titre='".$titre2."', descriptif='".$descriptif2."' WHERE id='".$id."'";
      			$query = mysql_query($upd) or die (mysql_error());
      			
      			if ($query == 'true') {
      				echo '<html> 
      <head><title>Évènement modifié</title></head> 
      <body> 
      
      <b><u>VOTRE ÉVÈNEMENT A BIEN ÉTÉ MODIFIÉ !</u></b><br> 
      <p><a href="mesevenements.php">Retour aux évènements</a></p> 
      </body> 
      </html> ';
      			}
      			mysql_close();
      			exit();
      	}
      ?>
      0
    4. superwish
       
      Merci, j'essayerai le code demain.
      Bonne nuit.
      0
    5. superwish
       
      Le code ne fonctionne toujours pas mais le fait de remplacer $valeur par $id ne me semble pas nécessaire puisque $valeur est déjà une variable qui récupère une valeur. C'est la seule différence que j'ai trouver entre les 2 codes.
      Que veut dire cette ligne : if (sizeof($_POST) > 0) { ?
      0