Page 1 sur 1

traitement de données mysql

Posté : 21 nov. 2013, 13:16
par macinsteph29
Bonjour,
Voilà je cherche une bonne âme pour me trouver une solution à mon problème qui je pense est super simple, mais je m'arrache le peu de cheveux qu'il me reste la dessus.
Voilà ma question :

J'ai une base de données mysql que j'ai nommé testBdd, avec une table pages avec 3 champs : id, nom, et contenu.
J'ai une page qui liste le contenu de ma base et une quatrième colonne qui contient un bouton qui m'ouvre un formulaire avec juste un champ : contenu,
et un bouton pour valider les modification.

Mon problème est de récupérer le contenu qui se trouve dans ma base de donnée, le modifier, puis valider les modifs via le submit et ma base prenne en compte les modifs.
voici le code de ma page editer.php :
<?php 



// on se connecte à notre base
$bdd = new PDO('mysql:host=localhost;dbname=testBdd', 'root', 'root');  
 



 ?>
<html>
<head>
<title>Modification du tél et de l'adresse de Benoît</title>

<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>

<div id="bodyPage" style="display: block;">




				<div id="contenu-admin">




							<h2>Gestion des pages du site</h2>

									<table>
										<tr>
											<th>id</th>
											<th>Nom</th>
											<th>Contenu</th>
											<th>modifier</th>
										</tr>

										<?php
										$reponse = $bdd->query("SELECT * FROM pages");
										while($donnees = $reponse->fetch()) {
										?>

										<tr>	
											
											<td><?php echo $donnees['id'];?></td>
											<td><?php echo $donnees['nom'];?></td>
											<td><?php echo $donnees['contenu'];?></td>
											<td><a href="index.php?page=<?php echo $donnees['id'];?>">Editer</a>
										</tr>

									<?php } $reponse->closeCursor(); ?>

									</table>		
	
							
				</div>

</div>


</body>
</html> 
voici le code de ma page index.php
<?php
if (!empty($_POST['contenu'])) {

		extract($_POST);

		$id= $_GET['page'];

		$sql ='UPDATE pages SET contenu='$contenu' WHERE id="$id"';  
 
// on exécute la requête (mysql_query) et on affiche un message au cas où la requête ne se passait pas bien (or die)
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

// on ferme la connexion à la base
mysql_close(); 


		$success = 'La page à bien été modifié !!';

	}else{


		$error = "Erreur, il n'y a pas eu de modification!!";

	}


?>
<html>
<head>
<title>Modification du tél et de l'adresse de Benoît</title>

<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>

<?php 	if (!empty($_GET['page'])) {
			
				$id = $_GET['page'];

				$reponse = mysql_query("SELECT * FROM pages WHERE id= '$id'");
				if (mysql_num_rows($reponse)  > 0 ) {
					$donnees = mysql_fetch_assoc($reponse);
				}else{
					header('Location:editer.php');
				}
				


			}
		 ?>


<form method="POST" action="index.php?page=<?php echo $donnees['id']; ?>">

		<h2>Modifier de la page</h2>

		<p>
			<textarea type="text" id="content" name="contenu"><?php echo $donnees['contenu']; ?></textarea>
		</p>

		<p>

			<input type="submit" class="btn" value="modifié">

		</p>

</form>
</body>
</html> 
si quelqu'un peu me filer un coup de main se serais cool.
merci

Re: traitement de données mysql

Posté : 21 nov. 2013, 14:26
par franckm
C'est pas plutôt $donnees->id ?

Il y a de erreurs de syntaxe, par exemple:
$sql ='UPDATE pages SET contenu='$contenu' WHERE id="$id"';  
n'est pas bon ce serait plutôt:
$sql ="UPDATE pages SET contenu='$contenu' WHERE id=$id";  
J'ai pas regardé le reste.

Re: traitement de données mysql

Posté : 21 nov. 2013, 19:48
par Invité
re,
Est ce que tu peux si tu as le temps de contrôler mon code ?
Je trouve des tutos pour ajouter et modifier une page, mais je ne veux que modifier le contenu de cette page, pas de création.
Dès que j'essaye retravailler sans la partie ajouter rien ne marche.

ça me gonfle !!!

merci