Problème avec "update"

Soi-mEme
Invité n'ayant pas de compte PHPfrance

14 août 2009, 21:49

Bonjour,

Voilà j'ai un petit soucis assez fâcheux.

J'ai créé un système afin de permettre l'ajout, le visionnement et l'édition de guide.

L'ajout et le visionnement fonctionnent parfaitement. Le problème vient de l'édition.

À la première édition de chaque nouvel ordinateur de chaque guide, tout se remet à " ", je perds donc tout le travail.

J'aimerais donc savoir ce qui cloche dans mon code et comment enlever ce fâcheux problème :
<?php

//Maintenant on se connecte à la base de données
include("../includes/identifiants.php");
mysql_connect($adresse, $nom, $motdepasse);
mysql_select_db($database);
 
//On récupère la valeur de t
$quete_id = $_GET['t'];

$requete = mysql_query('
SELECT titre_anglais, titre_francais, difficulte, longueur, qp, objets_requis, quetes_requises, niveaux_requis, monstre, commencement, contenu, recompense, auteur
FROM quetes_free
WHERE quete_id ="'.$quete_id.'"')
or die(mysql_error());

if (mysql_num_rows($requete) < 1)
{
        echo'<p>Lien invalide</p>';
}
else
{

		
	
$auteur = htmlspecialchars($_POST['auteur'], ENT_QUOTES);
	
$requete2 = mysql_query('
SELECT membre_id, membre_pseudo, membre_rang
FROM forum_membres
WHERE membre_pseudo ="'.$data[auteur].'"')
or die(mysql_error());

$data2 = mysql_fetch_assoc($requete2);

$requete3 = mysql_query('
SELECT membre_id, membre_pseudo, membre_rang
FROM forum_membres
WHERE membre_id ="'.$_SESSION['id'].'"')
or die(mysql_error());

$data3 = mysql_fetch_assoc($requete3);

if (($data3[membre_rang] >= 3) OR ($_SESSION['id'] == $data2['membre_id']))
{
}
else
{
exit(include("../forum/interdit.php"));
}


//On parse le message
$message = htmlspecialchars($_POST['message'], ENT_QUOTES);
$contenu = nl2br($message);

$titre_anglais = htmlspecialchars($_POST['titre_anglais'], ENT_QUOTES);
$titre_francais = htmlspecialchars($_POST['titre_francais'], ENT_QUOTES);
$difficulte = htmlspecialchars($_POST['difficulte'], ENT_QUOTES);
$longueur = htmlspecialchars($_POST['longueur'], ENT_QUOTES);
$qp = htmlspecialchars($_POST['qp'], ENT_QUOTES);
$objets_requis = htmlspecialchars($_POST['objets_requis'], ENT_QUOTES);
$quetes_requises = htmlspecialchars($_POST['quetes_requises'], ENT_QUOTES);
$niveaux_requis = htmlspecialchars($_POST['niveaux_requis'], ENT_QUOTES);
$monstre = htmlspecialchars($_POST['monstre'], ENT_QUOTES);
$commencement = htmlspecialchars($_POST['commencement'], ENT_QUOTES);
$recompense = htmlspecialchars($_POST['recompense'], ENT_QUOTES);
$auteur = htmlspecialchars($_POST['auteur'], ENT_QUOTES);

mysql_query("UPDATE quetes_free SET titre_anglais='$titre_anglais', titre_francais='$titre_francais', difficulte='$difficulte', 
longueur='$longueur', qp='$qp', objets_requis='$objets_requis', quetes_requises='$quetes_requises', 
niveaux_requis='$niveaux_requis', monstre='$monstre', commencement='$commencement', contenu='$contenu', recompense='$recompense', 
auteur='$auteur' WHERE quete_id='$quete_id'") or die(mysql_error());


$titre_francais = stripslashes($titre_francais);
$titre_anglais = stripslashes($titre_anglais);

$url = $titre_francais;
$url = str_replace(" ","_",$url);

echo'Voir le Guide : <a href="quete.php?t='.$url.'">'.$titre_francais.'</a> / <a href="quete.php?t='.$url.'">'.$titre_anglais.'</a>.</p>';}
?>
J'ai également essayé d'isoler chaque update, et le problème reste le même. Même si je n'en laisse qu'un.

S'agirait-il d'un problème de "phpmyadmin" ?

===

Est-ce quelque chose que j'ai oublié, ou quelque chose que je fais de mal ?
Merci,

ViPHP
fab
ViPHP | 2657 Messages

15 août 2009, 22:20

Premiè!re chose qui me vient à la tête tu es sur que ton formulaire est en méthode POST ?

Que te donne un
<?php print_r($_POST);
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Soi-mEme
Invité n'ayant pas de compte PHPfrance

16 août 2009, 18:16

J'ai oublier de précisez :

"À la première édition de chaque nouvel ordinateur de chaque guide, tout se remet à " ", je perds donc tout le travail."

Et les autres éditions par la suite du même guide ne bug pas...

---

Donc, je ne crois pas que ce soit à cause des "post"

Avatar du membre
ViPHP
ViPHP | 3008 Messages

17 août 2009, 15:29

Un echo de
UPDATE quetes_free SET titre_anglais='$titre_anglais', titre_francais='$titre_francais', difficulte='$difficulte',
longueur='$longueur', qp='$qp', objets_requis='$objets_requis', quetes_requises='$quetes_requises',
niveaux_requis='$niveaux_requis', monstre='$monstre', commencement='$commencement', contenu='$contenu', recompense='$recompense',
auteur='$auteur' WHERE quete_id='$quete_id'
te donne quoi ?

Invité
Invité n'ayant pas de compte PHPfrance

17 août 2009, 22:43

Merci pour votre intérêt à mon problème...

Je vais vous mettre le lien vers le topic de ma question sur le siteduzero, ils n'ont pas trouvés le problème, ça évitera de répéter les même tentatives de solution :D

http://www.siteduzero.com/forum-83-4151 ... pdate.html

Soi-mEme
Invité n'ayant pas de compte PHPfrance

17 août 2009, 22:46


Avatar du membre
ViPHP
ViPHP | 3008 Messages

18 août 2009, 09:01

UPDATE quetes_free SET titre_anglais='dafafsd', titre_francais='asdfasf', difficulte='difficile', longueur='moyenne', qp='2', objets_requis='dsaads', quetes_requises='adsada', niveaux_requis='sdads', monstre='asdada', commencement='dadsada', contenu='safasafa', recompense='sdada', auteur='sad' WHERE quete_id='19'
Si tu lances cette requête sous phpmyadmin, quelle est l'erreur retournée ?

qp et quete_id étant des entiers, ne met pas de quote.
mysql_query("UPDATE quetes_free SET titre_anglais='".$titre_anglais."', titre_francais='".$titre_francais."', difficulte='".$difficulte."',
longueur='".$longueur."', qp=".$qp.", objets_requis='".$objets_requis."', quetes_requises='".$quetes_requises."',
niveaux_requis='".$niveaux_requis."', monstre='".$monstre."', commencement='".$commencement."', contenu='".$contenu."', recompense='".$recompense."',
auteur='".$auteur."' WHERE quete_id=".$quete_id) or die(mysql_error());

Soi-mEme
Invité n'ayant pas de compte PHPfrance

18 août 2009, 17:19

Aucune erreur n'est retournée, tout fonctionne parfaitement...

Soi-mEme
Invité n'ayant pas de compte PHPfrance

18 août 2009, 17:40

Wow, merci, la deuxième solution semble pour le moment fonctionner !!!

Avatar du membre
ViPHP
ViPHP | 3008 Messages

18 août 2009, 19:15

N'oublie pas le résolu ;)