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

Eléphanteau du PHP | 23 Messages

19 mars 2011, 13:35

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 :)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

20 mars 2011, 11:45

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.

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 23 Messages

21 mars 2011, 11:22

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>

ViPHP
xTG
ViPHP | 7331 Messages

21 mars 2011, 14:05

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.

Eléphanteau du PHP | 23 Messages

21 mars 2011, 19:37

C'est noté, merci.