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
1
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
1
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