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

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Afficher/supprimer le contenu d'une bdd en fonction d'un id

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

par ocre_rouge » 21 mars 2011, 19:37

C'est noté, merci.

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

par xTG » 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.

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

par ocre_rouge » 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>

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

par moogli » 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.

@+

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

par ocre_rouge » 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 :)