Requete ne s'excute pas

Résolu
sws2007 Messages postés 79 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 19 janvier 2009 - 25 août 2008 à 19:01
jreaux62 Messages postés 195 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 24 octobre 2011 - 27 août 2008 à 13:11
    bonjour tout le monde

j'ai fais  une requette d'update elle ne s'excute pas je vois l'erreur ou aidez moi svp
<?php
include ('connexion.php');
$id_agence=intval($_GET['id']);

$update=$db->prepare('update client set`etat`=\'suspendu\',`paiement`=\'non payé\',`act_desact`=\'0\' where `id_client`=$id_agence');

$update->execute();

header("location:activ_desactiv.php");
mysql_close();
?> 

5 réponses

sws2007 Messages postés 79 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 19 janvier 2009
26 août 2008 à 09:39
    merci yoman pour ta réponse
c'est bon j'ai deja régler le problème voici se que j'ai fais :
$update=$db->prepare("update client set etat='suspendu',paiement='non payé',act_desact='0' where id_client='$id_agence'");
et l'update s'execute normalement
3
yoman64 Messages postés 962 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 2 août 2010 2
26 août 2008 à 03:15
Les strings entre simples quotes ne sont pas interpretés.

$update= $db->prepare('update client
set`etat`=\'suspendu\',`paiement`=\'non payé\',`act_desact`=\'0\' where
`id_client`=$id_agence' );

essais:
$update =$db->prepare('update client
set`etat`=\'suspendu\',`paiement`=\'non payé\',`act_desact`=\'0\' where
`id_client`=' . $id_agence);
-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  
0
yoman64 Messages postés 962 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 2 août 2010 2
26 août 2008 à 09:49
Salut,

Ça revient au même sauf que ma requête est syntaxiquement plus correct autant au niveau SQL que php:
En php toujours préférer les simples quotes lorsque possible.
En SQL (comme dans la plupart des langages) quand on compare des chiffres, on n'entoure pas la valeur de quotes '$id_agence'
En SQL on préfère entourer les noms des champs par des backticks (`) (comme dans ta première requête).

Pas la peine de me dire "ça fonctionne quand même alors ça change rien". C'est vrai, je te dis juste qu'il y a une bonne et une mauvaise façon de faire

Enfin, l'important c'est que ça fonctionne
-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org  
0
sws2007 Messages postés 79 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 19 janvier 2009
26 août 2008 à 10:23
    mais désolé lorsque j'ai essayé le syntaxe avec lequel t'as écris la requette n'a pas fais l'update alors c'est faux du coté php
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jreaux62 Messages postés 195 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 24 octobre 2011 32
27 août 2008 à 13:11
La sybtaxe de yoman64 est bonne, sauf qu'il a considéré (logiquement) que "id_client" était NUMERIQUE.

Or, il semble que tu l'aies défini (dans ta base) en TEXTE.
Idem pour "act_desact".
0
Rejoignez-nous