Rechercher : dans
Par :

Php+sql:requete update

Dernière réponse le 15 fév 2008 à 17:46:30 G4uthier, le 15 fév 2008 à 16:59:51 
 Signaler ce message aux modérateurs

Bonjour,
voila mon code, ma requête update ne fonctionne pas : il doit y avoir une erreur avec les guillemets mais je trouve pas. :'(


voici mon code :

if(isset($_GET['modif'])){
$id_news_a_modif=$_GET['modif'];
$requete = mysql_query("SELECT * FROM news WHERE id='$id_news_a_modif'");// on recupère la news pour l 'afficher dans le formulaire
$enregistrement=mysql_fetch_array($requete);
$titre=$enregistrement['titre'];
$contenu=$enregistrement['contenu'];


if(isset($_POST['modifier'])){
$titre=$_POST['titre'];
$contenu=$_POST['contenu'];
//on met à jour la news dans la table
$modification=mysql_query("UPDATE news SET titre='$titre', contenu='$contenu' WHERE id='$id_news_a_modif'");



}
// ce formulaire sert à la modification
echo"<form method='post' action='{$_SERVER['PHP_SELF']}'>
<h2>Ajout d'une news</h2>
<em>entrez le titre de votre news: </em><input type='text' name='titre' size='50' value=$titre><br><br>
<em>entrez le contenu de votre news: </em><p><textarea name='contenu' cols='80' rows='16'>";
echo $contenu;//on affiche le contenu à modifier
echo"
</textarea></p>
<input type='submit' class='button' name='modifier' value='Modifier la news'>
</form>";


merci :)

Configuration: Windows XP
Firefox 2.0.0.12

Meilleures réponses pour « php+sql:requete update » dans :
Le langage SQL VoirQu'appelle-t-on SQL? SQL (Structured Query Language, traduisez Langage de requêtes structuré) est un langage de définition de données (LDD, ou en anglais DDL Data Definition Language), un langage de manipulation de données (LMD, ou en anglais DML,...
SQL - Contraintes d'intégrité VoirExpression de contraintes d'intégrité Une contrainte d'intégrité est une clause permettant de contraindre la modification de tables, faite par l'intermédiaire de requêtes d'utilisateurs, afin que les données saisies dans la base soient...
SQL - Commande SELECT VoirLe langage de manipulation de données Le SQL est à la fois un langage de manipulation de données et un langage de définition de données. Toutefois, la définition de données est l'oeuvre de l'administrateur de la base de données, c'est pourquoi la...

1

ashelia, le 15 fév 2008 à 17:24:05
  • +1

Essaie :

$modification=mysql_query('UPDATE news SET titre=" ' .$titre.'", contenu=" '.$contenu.' " WHERE id=" '.$id_news_a_modif.' " ');

Répondre à ashelia

2

G4uthier, le 15 fév 2008 à 17:32:16

Oui je crosi que c'est ca mais c'est mon algo qui doit pas fonctionner mon second isset n'est jamais activé je crois.
Quelqu un a une solution?

Répondre à G4uthier

3

ashelia, le 15 fév 2008 à 17:34:10

If(isset($_GET['modif'])) {

c'est volontaire de ne pas fermer l'acolade?

Répondre à ashelia

4

G4uthier, le 15 fév 2008 à 17:35:50

Oui c est un bout du code voici le code complet:

<?php
include("configuration_sql.php");
// on regarde si l'on veut modifier la news(grace à l'URL)
if(isset($_GET['modif'])){
$id_news_a_modif=$_GET['modif'];
$requete = mysql_query("SELECT * FROM news WHERE id='$id_news_a_modif'");// on recupère la news pour l 'afficher dans le formulaire
$enregistrement=mysql_fetch_array($requete);
$titre=$enregistrement['titre'];
$contenu=$enregistrement['contenu'];


if(isset($_POST['modifier'])){
echo"dzjsbjclkscnsnvjknwj";
$titre=$_POST['titre'];
$contenu=$_POST['contenu'];
echo $contenu;
//on met à jour la news dans la table
$modification=mysql_query('UPDATE news SET titre=" ' .$titre.'", contenu=" '.$contenu.' " WHERE id=" '.$id_news_a_modif.' " ');
}

// ce formulaire sert à la modification
echo"<form method='post' action='{$_SERVER['PHP_SELF']}'>
<h2>Ajout d'une news</h2>
<em>entrez le titre de votre news: </em><input type='text' name='titre' size='50' value=$titre><br><br>
<em>entrez le contenu de votre news: </em><p><textarea name='contenu' cols='80' rows='16'>";
echo $contenu;//on affiche le contenu à modifier
echo"
</textarea></p>
<input type='submit' class='button' name='modifier' value='Modifier la news'>
</form>";


echo"<a href=zone_admin.php>Retour au menu administration</a>";

}else{
//sinon on veut l'ajouter
if(isset($_POST['ajout'])){
$date=time();
$titre=$_POST['titre'];
$contenu=$_POST['contenu'];
$requete = mysql_query("insert into news values('','". $titre . "','". $contenu . "','" . $date . "')");


}
// ce formulaire sert à l'ajout
echo"<form method='post' action='{$_SERVER['PHP_SELF']}'>
<h2>Ajout d'une news</h2>
<em>entrez le titre de votre news: </em><input type='text' name='titre' size='50'><br><br>
<em>entrez le contenu de votre news: </em><p><textarea name='contenu' cols='80' rows='16'></textarea></p>
<input type='submit' class='button' name='ajout' value='Ajouter la news'>
</form>";

echo"<a href=zone_admin.php>Retour au menu administration</a>";
}
?>

Répondre à G4uthier

5

ashelia, le 15 fév 2008 à 17:41:20

Essaies ca :
<?php
include("configuration_sql.php");
// on regarde si l'on veut modifier la news(grace à l'URL)
if(isset($_GET['modif']))
{
$id_news_a_modif=$_GET['modif'];
$requete = mysql_query('SELECT * FROM news WHERE id="'.$id_news_a_modif.'"');// on recupère la news pour l 'afficher dans le formulaire
$enregistrement=mysql_fetch_array($requete);
$titre=$enregistrement['titre'];
$contenu=$enregistrement['contenu'];


if(isset($_POST['modifier'])){
echo"dzjsbjclkscnsnvjknwj";
$titre=$_POST['titre'];
$contenu=$_POST['contenu'];
echo $contenu;
//on met à jour la news dans la table
$modification=mysql_query('UPDATE news SET titre="'.$titre.'", contenu="'.$contenu.'" WHERE id="'.$id_news_a_modif.'"');
}

// ce formulaire sert à la modification
echo"<form method='post' action='{$_SERVER['PHP_SELF']}'>
<h2>Ajout d'une news</h2>
<em>entrez le titre de votre news: </em><input type='text' name='titre' size='50' value=$titre><br><br>
<em>entrez le contenu de votre news: </em><p><textarea name='contenu' cols='80' rows='16'>";
echo $contenu;//on affiche le contenu à modifier
echo"
</textarea></p>
<input type='submit' class='button' name='modifier' value='Modifier la news'>
</form>";


echo"<a href=zone_admin.php>Retour au menu administration</a>";

}
else
{
//sinon on veut l'ajouter
$date=time();
$titre=$_POST['titre'];
$contenu=$_POST['contenu'];
$requete = mysql_query("insert into news values('','". $titre . "','". $contenu . "','" . $date . "')");

// ce formulaire sert à l'ajout
echo"<form method='post' action='{$_SERVER['PHP_SELF']}'>
<h2>Ajout d'une news</h2>
<em>entrez le titre de votre news: </em><input type='text' name='titre' size='50'><br><br>
<em>entrez le contenu de votre news: </em><p><textarea name='contenu' cols='80' rows='16'></textarea></p>
<input type='submit' class='button' name='ajout' value='Ajouter la news'>
</form>";

echo"<a href=zone_admin.php>Retour au menu administration</a>";
}
?>

Répondre à ashelia

6

le père, le 15 fév 2008 à 17:42:26

Bonjour

Ton second isset n'est pas activé parcequ'il est à l'intérieur du premier : il te manque une }

Tes guillemets sonts corrects SAUF que comme 99% des gens tu ne protèges pas tes champs contres les apostrophes. Les gens ont le droit de mettre de ' et des " dans tes news, et là ta requête échouera à coup sûr :

$modification=mysql_query("UPDATE news SET titre=''.mysql_real_escape_string($titre)."', contenu='".mysql_real_escape_string($contenu)."' WHERE id='".mysql_real_escape_string($id_news_a_modif)."'");

Répondre à le père

7

ashelia, le 15 fév 2008 à 17:43:59

Normalement j'ai modifié le problème de l'accolade...
Il ne te reste plus qu'à suivre les conseils du père ;)
a+

Répondre à ashelia

8

 G4uthier, le 15 fév 2008 à 17:46:30

Je vais regardé ca demain à tête reposé merci pour vos conseils . j'arrete pour ce soir

Répondre à G4uthier