Page 1 sur 1

Modification

Posté : 25 mars 2014, 21:54
par romuald
Bonjours tout le monde ,

J'essaie de modifier un texte depuis un formulaire php.
J'utilise l'id pour qu'il modifie le bon texte mais le souci est, que que je fais ça :
$id=$_POST['id'];
	$req = $bdd->prepare("UPDATE article SET titre=:titre, article=:article WHERE id = 87");
$req->execute(array( 
			'titre' => $_POST['titre'],
			'article' => $_POST['article'],
			));	

J'écris l'id du texte il ce change sans problème mais que je souhaite le faire sans changer manuellement l'id:
$id=$_POST['id'];
	$req = $bdd->prepare("UPDATE article SET titre=:titre, article=:article WHERE id =.$id");
$req->execute(array( 
			'titre' => $_POST['titre'],
			'article' => $_POST['article'],
			));			
Impossible !!! En sachant que l'id est bien reçu après vérification.

Voici le formulaire :
<form action="modif.php" method="post" >
      <p>
        <label for="titre">Titre</label>
        :<br>
        <input name="titre" id="titre" value="<?php echo $article0s['titre'];?>"/>
        <br>
        <label for="article">Texte</label>
        :<br>
        <textarea  type="text" name="article" id="article"><?php echo $article0s['article'];?></textarea>
        
        <br>
        <input type="hidden" name="id" value="'.$articles0s['id'].'"/>
        <input type="submit" value="Envoyer" />
      </p>
    </form>
Le text ne ce modifie pas
Merci de bien vouloir m'aider

Re: Modification

Posté : 26 mars 2014, 00:00
par moogli
Salut,


Ta requête se vautre parce qu'elle n'est pas syntaxiquement correcte.

Il faut que tu bind aussi l'id (comme pour le reste).
Attention au type tu va faire une ânerie sinon.
Pour cela utilise la méthode bindValue()


@+

Re: Modification

Posté : 26 mars 2014, 10:38
par romuald
comme ça ?
if (!isset($_POST['titre'])) {$_POST['titre'] !='' ; }
  if (!isset($_POST['article'])) {$_POST['article'] !='' ; }
if ($_POST['id'] !='') {
   
   $req = $bdd->prepare("UPDATE article SET titre=:titre, article=:article WHERE id =:id");
	        $req->bindValue(':titre', $_POST['titre'], PDO::PARAM_STR);
			$req->bindValue(':article', $_POST['article'], PDO::PARAM_STR);
			$req->bindValue(':id', $_POST['id'], PDO::PARAM_INT);
			$req->execute();	
        $req->closeCursor();
Parcque la ça marche toujours pas