Requete ne s'excute pas [Résolu]

Signaler
Messages postés
79
Date d'inscription
vendredi 27 juillet 2007
Statut
Membre
Dernière intervention
19 janvier 2009
-
Messages postés
195
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
24 octobre 2011
-
    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

Messages postés
79
Date d'inscription
vendredi 27 juillet 2007
Statut
Membre
Dernière intervention
19 janvier 2009

    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
Messages postés
962
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
2 août 2010
1
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  
Messages postés
962
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
2 août 2010
1
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  
Messages postés
79
Date d'inscription
vendredi 27 juillet 2007
Statut
Membre
Dernière intervention
19 janvier 2009

    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
Messages postés
195
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
24 octobre 2011
20
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".