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.

A voir également:

2 réponses

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
superwish
 
Ce code fait pareil que le mien : aucune modification :(
Merci quand même d'avoir cherché.
0
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
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
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
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
Utilisateur anonyme
 
Il faut que le bouton se trouve dans un <form method="post"> !
0
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
superwish
 
Merci, j'essayerai le code demain.
Bonne nuit.
0
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