cs_MrsDallara
Messages postés29Date d'inscriptionlundi 28 octobre 2002StatutMembreDernière intervention 8 août 2005
-
8 août 2005 à 18:04
cs_MrsDallara
Messages postés29Date d'inscriptionlundi 28 octobre 2002StatutMembreDernière intervention 8 août 2005
-
8 août 2005 à 18:41
Bonjour à tous, j'ai une requete SQL qui ne s'execute pas, alors que je
ne vois pas où l'erreur peut se trouver. Voici donc l'ensemble du code
qui nous mene à elle:
J'ai une page avec l'ensemble de mes news qui s'affichent, et un lien
qui conduit pour chacune d'elle à une page d'édition: pour ce faire je
récupère dans l'url le paramètre ID que j'ai passé. Voici le code (sans
la connexion à la base de donnée) de la page d'édition:
<?
$id=$_GET['id'];
// connexion à la base
// CODE DE LA CONNEXION
// requete
$sql = "SELECT pkey,date,heure,titre,content FROM news WHERE pkey=$id";
// on execute la requete
$resultat=mysql_query($sql) or die('Erreur SQL !'.$sql.'
'.mysql_error());
Là j'ai ma page avec le formulaire prérempli avec les données de la
news dont j'ai récupérer les données grace à l'ID. Si je fais une
modification, elle ne passe pas dans la base de donnée... voici la page
xmaj.php :
arnal69130
Messages postés445Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention22 mars 20072 8 août 2005 à 18:12
Tu utilises la méthode POST pour passer de la page d'édition à xmaj.php, pourtant, tu lis l'id en get : $id=$_GET['id'];
Sinon, as-tu un message d'erreur ?
Essaie de mettre
echo $sql avnt
mysql_query($sql)
pour voir le texte de la requète...
irkiouak
Messages postés68Date d'inscriptionmardi 21 novembre 2000StatutMembreDernière intervention10 octobre 2006 8 août 2005 à 18:22
Bonjour MrsDallara,
Dans ta première requete $sql = "SELECT pkey,date,heure,titre,content FROM news WHERE pkey=$id"; tout marche bien,
Dans la deuxième $sql = "UPDATE news SET date='".$date."', heure='".$heure."', titre='".$titre."', content='".$content."' WHERE pkey='$id'"; ça marche pas parceque tu as mis l'$id entre les ' ' , Mysql ne trouve pas l'ID convenable car pkey est un entier alors que '$id' est une chaine de caractère (CHAR).
Il suffir d'en enlever les quottes, remplace cette requete par :
$sql = "UPDATE news SET date='".$date."', heure='".$heure."', titre='".$titre."', content='".$content."' WHERE pkey=$id";
Si ça marche pas, vérifie de même la compatibilité des autres variables avec leurs types.
cs_MrsDallara
Messages postés29Date d'inscriptionlundi 28 octobre 2002StatutMembreDernière intervention 8 août 2005 8 août 2005 à 18:36
rectification :)
je suis arrivée à afficher la requete, et je pense que tu as raison arnal, voici ce que ca me donne:
UPDATE news SET date='06/03/05', heure='12:00', titre='/!\\ Travaux',
content='La refonte du site a commmencé, tout est plus ou moins en
travaux... retour à la normale bientot, je l\'espère! TEST' WHERE
pkey=''
donc la valeur du pkey est pas passée
comment je fais pour quelle soit au bon format ?
parce que si je récupère la valeur avec le
if(isset($_POST['kpey'])) $id=$_POST['pkey'];
else $id="erreur";
ca ne marche pas mieux il me semble, je retente quand meme au cas où
cs_MrsDallara
Messages postés29Date d'inscriptionlundi 28 octobre 2002StatutMembreDernière intervention 8 août 2005 8 août 2005 à 18:38
oué en faisant avec la récup des champs du form j'obtient une erreur:
UPDATE news SET date='06/03/05', heure='12:00', titre='/!\\ Travaux',
content='La refonte du site a commmencé, tout est plus ou moins en
travaux... retour à la normale bientot, je l\'espère! TETS' WHERE
pkey='erreur'