Problème avec mon UPDATE

Répondre
creeks
le 22/06/2011 à 16:23
creeks
Bonjour,
Je voudrais faire l'UPDATE d'un texte présent dans une de mes tables, mais je ni arrive pas smiley. Pourriez vous m'aider ?
Voilà mon code :

<?php
session_start();
include '../../utils/connexion_bdd.php';

$id_page = $_GET['idpage'];
$requete = "SELECT titre,contenu1 FROM site_pages_t WHERE id = '$id_page'" or die ('Erreur '.$requete.' '.mysql_error());
$resultat = mysql_query($requete);

$ligne = mysql_fetch_assoc($resultat);
echo $ligne["titre"];
echo '</br>';
echo $ligne["contenu1"];

/****************************** MODIFICATION DU TEXTE *********************************************/
$login = $_SESSION['login'];
$sql = "SELECT droits FROM membre WHERE login = '$login'";
$req = mysql_query($sql) or die ('Erreur SQL'.$sql.'<br/>'. mysql_error());
$data = mysql_fetch_array($req);
mysql_free_result($req);

// on teste si l'admin a soumis le formulaire
if (isset($_POST['modif_text']) && $_POST['modif_text'] == 'Modifier') {
// on teste la déclaration de nos variables
if (!isset($_POST['modif_text'])) {
$erreur = 'La variable nécessaire au script n\'est pas définie.';
}
// si tout ok = mise a jour dans la base
$sql = 'UPDATE site_pages_t SET contenu1 = '.$_POST['modif_text'].' WHERE id = '.$id_page.'';

mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
//mysql_close();

// renvoi vers la Gestion de l'abcdaire
echo '<script language="Javascript">
<!--
document.location.replace("index.php?idpage=419&lettre=A");
// -->
</script>';
// on termine le script
exit();
}

if($data['droits'] == 1){
echo '<form action="GestionTexte.php" method="post">';
echo '<br /><br />';
echo '<strong><u> Modification de l\'espace texte </u>:</strong><br />';
echo '<textarea class="text_modif" name="modif_text" cols="80" rows="10">'.$ligne["contenu1"].'</textarea>';
echo '<br /><input type="submit" name="modif" value="Modifier">';
echo '</form>';
}
?>
CreEks
LupusMic
le 23/06/2011 à 13:24
LupusMic
Pourras-tu ajouter la balise code autour de ton code la prochaine fois que tu demande de l'aide ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 23/06/2011 à 13:28
LupusMic
<?php
$sql = sprintf('UPDATE site_pages_t SET contenu1 = \'%s\' WHERE id = %s', mysql_real_escape_string($_POST['modif_text']), mysql_real_escape_string($id_page)) ;


Il manquait les quotes autour de la valeur à insérer. Si pour un nombre ce n'est pas grave, pour une chaîne c'est indispensable.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
creeks
le 23/06/2011 à 14:08
creeks
merci beaucoup (dsl d'avoir oublié la balise code)? Je vais regardé ça tout de suite ^^
Encore merci :)
CreEks
creeks
le 23/06/2011 à 14:12
creeks
J'ai fait comme tu m'as dit, mais le problème c'est que ça ne met rien a jour dans ma base ...
Une idée ?
CreEks
LupusMic
le 23/06/2011 à 16:08
LupusMic
Affiche la requête SQL générée et essaye de l'exécuter directement avec un client MySQL.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LA GLOBULE
le 23/06/2011 à 19:01
LA GLOBULE
Fais un echo de $sql suivi de deux choses :
- affiche nous le résultat
- copie colle la requete dans phpmyadmin ou tout autre client MySQL
creeks
le 24/06/2011 à 10:52
creeks
D'accord. Alors quand je demande d'afficher la requête généré après mon update il me dit :
SELECT droits FROM membre WHERE login = 'admin'
Ce qui veut donc dire qu'il y aurai un "conflit" car mon $sql me sert à récupérer les droits, mais aussi à l'Update de mon texte... l'erreur doit peut-être venir de là.
Le soucis c'est que quand je modifie le nom de la variable qui récupère la requete d'update il me dit qu'elle n'est pas défini ... -_-'
Votre avis ?
CreEks
Répondre
LoadingChargement en cours