Page 1 sur 1

Afficher/supprimer le contenu d'une bdd en fonction d'un id

Posté : 19 mars 2011, 13:35
par ocre_rouge
Bonjour,

comment feriez-vous pour afficher/supprimer le contenu d'une bdd en fonction d'un id précis ?
J'imagine que ce doit être quelque chose comme ça :
$bdd->query("SELECT titre, contenu FROM news_utilisateur WHERE id ="$donnees['id'];
Ou
$bdd->query("DELET titre, contenu,id FROM news_utilisateur WHERE id ="$donnees['id'];
Suite à des conseils obtenu sur des forum, le code en est arrivé là :
$reponse = $bdd->query("SELECT titre, contenu FROM news_utilisateur WHERE id =".$donnees['id']." " );
ou
$reponse = $bdd->query("DELETE FROM news_utilisateur WHERE id =".$donnees['id']." " );

Mais dans les deux cas, le serveur renvoie :
( ! ) Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1' in C:\wamp\www\Pages\esphp.php on line 37
( ! ) PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 in C:\wamp\www\Pages\esphp.php on line 37

Du coup, je suis totalement perdu face à ce qui ne doit être qu'un simple manque de connaissance en matière de PhP.
Merci à vous :)

Re: Afficher/supprimer le contenu d'une bdd en fonction d'un id

Posté : 20 mars 2011, 11:45
par moogli
Salut,


A tu afficher les requetes avant que les envoyer au sgbd ?
Un peu de lecture pour apprend a comprend les messages de pdo http://www.siteduzero.com/tutoriel-3-33 ... entes.html

Utilise un bloc try catch avec pdo afin de capture correctementes
Erreurs.

@+

Re: Afficher/supprimer le contenu d'une bdd en fonction d'un id

Posté : 21 mars 2011, 11:22
par ocre_rouge
Merci :)
Je viens de tenter d'insérer un bloc try catch, mais sans y parvenir.
Voici le code en intégralité :
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="ISO-8859-1">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Mise En Page</title>
<link href="../CSS/ess-css.css" rel="stylesheet" type="text/css" />
</head>
<body>
	<div class="entete"> 
		<a href="../refonte.html">Bonjour</a> 
	</div>
	<div class="cadre">
		<div class="colonne-1">
			<?php
				echo 'Sélectionnez l\'actualité que vous souhaitez afficher : ';
				$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
				$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '', $pdo_options);
				$reponse = $bdd->query('SELECT titre, contenu, id FROM news_utilisateur ORDER BY ID DESC LIMIT 0, 10');
				echo '<form method="post" action="../Pages/esphp.php">';
				echo '<SELECT NAME="Actu">';
				echo '<OPTION>Selection</OPTION>';
				while ($donnees = $reponse->fetch())
				{
				echo '<OPTION value=' . $donnees['id'] . '>' . $donnees['titre'];
				echo '</OPTION>';
				}
				echo '</SELECT>';
				echo '<br /> <input type="submit" name="submit" value="selection">';
				echo '</form>';
			?>
		</div>
		<div class="colonne-2">
			<?php
				if (isset($_POST['Actu']) AND !empty($_POST['Actu']))
				{	
					$reponse = $bdd->query("DELETE FROM news_utilisateur WHERE id =".$donnees['id']." " );											
					echo 'test';					
				}
			unset($_POST['Actu']);
			try
			{
				$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
			}
				catch (Exception $e)
			{
				die('Erreur : ' . $e->getMessage());
			}
			?>
		</div>
	</div>
		<div class="enbas"> 
	au revoir 
	</div>
</body>
</html>

Re: Afficher/supprimer le contenu d'une bdd en fonction d'un id

Posté : 21 mars 2011, 14:05
par xTG
Continue de lire le cours donné par moogli et tu comprendras... Évidement si on s'arrête dès qu'on trouve le terme qui nous intéresse sans avoir les explications on ne s'en sort pas.

Re: Afficher/supprimer le contenu d'une bdd en fonction d'un id

Posté : 21 mars 2011, 19:37
par ocre_rouge
C'est noté, merci.