Qu'est-ce qui ne va pas dans la syntaxe de cet UPDATE ?

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


Meeuuuhhh
WRInaute accro
WRInaute accro
 
Messages: 1797
Inscription: Lun Jan 08, 2007 21:48

Qu'est-ce qui ne va pas dans la syntaxe de cet UPDATE ?

Message le Dim Jan 28, 2007 21:08

Bonjour,

Je ne sais pas à l'avance quel champ je dois updater.
Donc je fais ça :
Code: Tout sélectionner
$update="
  UPDATE 
  `annuaire`
  SET
  '".$paysAncien."'='".$paysAncien."'+1 ";
  mysql_query($update);


Ca n'update pas. Donc ça vient des variables dans le set.

Quelle est la bonne syntaxe, s'il vous plait ?

honolulu
WRInaute passionné
WRInaute passionné
 
Messages: 665
Inscription: Mar Nov 08, 2005 12:03

Message le Dim Jan 28, 2007 21:20

peut-être parce que tu ne spécifies pas quel annuaire doit être updaté..

Code: Tout sélectionner
$update="
  UPDATE 
  `annuaire`
  SET
  '".$paysAncien."'='".$paysAncien."'+1 " where id_annuaire = 'id annuaire' ";
  mysql_query($update);


tom_pascal
WRInaute impliqué
WRInaute impliqué
 
Messages: 278
Inscription: Lun Nov 17, 2003 13:58

Message le Dim Jan 28, 2007 21:21

Bonsoir, quel est le message d'erreur ?

Tu n'as pas de clause WHERE à appliquer ?

Il ne faut pas de quote simple autour du nom du champ à incrémenter dans la requête SQL :

Code: Tout sélectionner
$update="
  UPDATE
  `annuaire`
  SET
  ".$paysAncien."=".$paysAncien."+1 ";
  mysql_query($update);


Meeuuuhhh
WRInaute accro
WRInaute accro
 
Messages: 1797
Inscription: Lun Jan 08, 2007 21:48

Message le Dim Jan 28, 2007 22:15

Non alors, ça ne doit pas bon comme syntaxe, parce que j'ai tout vérifié, j'ai affiché $paysAncien et j'ai rajouté le WHERE que j'avais omis et ça ne fonctionne pas.

Etes vous certains que l'on peut utiliser des variables comme ça dans une requête SQL ?

Didier_S
WRInaute passionné
WRInaute passionné
 
Messages: 563
Inscription: Mar Aoû 24, 2004 22:25

Message le Dim Jan 28, 2007 22:17

$paysancien doit être le nom d'un champ de la table :
update nom_table set champ = champ + 1

=> en php :

$sql = "update nom_table set $champ = $champ + 1";


Meeuuuhhh
WRInaute accro
WRInaute accro
 
Messages: 1797
Inscription: Lun Jan 08, 2007 21:48

Message le Dim Jan 28, 2007 23:16

Je ne comprend pas ta réponse Didier_S.
$paysAncien est en effet le nom du champs à updater. Tu me suggères quoi ? D'enlever les ' ".." ' ?


Voilà le dernier code testé, au complet :

Code: Tout sélectionner
  if($specialiteAancienne==0)
  {$update="
  UPDATE 
  `categorieAnnuaire`
  SET
  '".$paysAncien."'='".$paysAncien."'+1
  WHERE rang='".$sA."'";
  mysql_query($update);

//on vérifie si l'instruction est bien effectuée et si les données sont correctes :
  echo' '.$paysAncien.' -'.$sA.' ;
  }


Donc là, le test en bas est effectué et les données sont correctes. Mais la requête n'update pas.

Didier_S
WRInaute passionné
WRInaute passionné
 
Messages: 563
Inscription: Mar Aoû 24, 2004 22:25

Message le Dim Jan 28, 2007 23:45

ok, la variable $paysancien contient bien le nom du champ, essayes
Code: Tout sélectionner
$update="
  UPDATE
  `categorieAnnuaire`
  SET
  `".$paysAncien."`=`".$paysAncien."`+1
  WHERE rang='".$sA."'";
  mysql_query($update);

note que dans ce cas, ta requete est entourée de double-quotes, donc tu peux écrire plus simplement :
Code: Tout sélectionner
$update="
  UPDATE
  `categorieAnnuaire`
  SET
  `$paysAncien`=`$paysAncien`+1
  WHERE rang='$sA'";
  mysql_query($update);

avant ton mysql_query, fais
Code: Tout sélectionner
echo $update;
(pour voir si ta requete est bien formée, et
Code: Tout sélectionner
echo mysql_error();
(après mysql_query) pour voir si l'exécution de la requete a retourné des erreurs.


Meeuuuhhh
WRInaute accro
WRInaute accro
 
Messages: 1797
Inscription: Lun Jan 08, 2007 21:48

Message le Lun Jan 29, 2007 0:24

Ok, ça fonctionne, j'ai donc fait comme ça :
Code: Tout sélectionner
SET
`".$paysAncien."`='".$paysAncien."'+1



Merci beaucoup Didier_S :D

Didier_S
WRInaute passionné
WRInaute passionné
 
Messages: 563
Inscription: Mar Aoû 24, 2004 22:25

Message le Lun Jan 29, 2007 0:35

de rien ma [strike]poule[/strike] vache

(:( pas de strike sous phpBB ?)


Meeuuuhhh
WRInaute accro
WRInaute accro
 
Messages: 1797
Inscription: Lun Jan 08, 2007 21:48

Message le Lun Jan 29, 2007 16:06

Non en fait ça ne fonctionne pas. Je viens de me rendre compte du bug :

Ca n'incrémente ou ne décrémente pas le compteur.

Ca update et ça marque 1.

Si il y avait 3, ça ne marque pas 4, mais 1.

Quand je veux décrémenter, si j'avais 3 ça ne marque pas 2 mais -1.

DomicilePC
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 210
Inscription: Lun Jan 17, 2005 15:50

Message le Lun Jan 29, 2007 16:12

En mettant des guillemets sur $paysAncien (du coté droit) tu rend une valeur qui n'est pas numérique, à laquelle tu ajoutes ou retires 1.
Essaies en les enlevant, ou en mettant des ` à la place si ça ne marche pas


Meeuuuhhh
WRInaute accro
WRInaute accro
 
Messages: 1797
Inscription: Lun Jan 08, 2007 21:48

Message le Lun Jan 29, 2007 16:35

Justement, je viens de faire ça du côté droit :

`".$paysAncien."`

mais ç'est pareil.

DomicilePC
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 210
Inscription: Lun Jan 17, 2005 15:50

Message le Lun Jan 29, 2007 16:41

essaies sans, et si ça ne marche pas, ben je vois pas pour le moment

silef
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 228
Inscription: Ven Jan 13, 2006 14:53

Message le Lun Jan 29, 2007 17:26

Code: Tout sélectionner
SET
`".$paysAncien."`='".($paysAncien + 1)."'


Meeuuuhhh
WRInaute accro
WRInaute accro
 
Messages: 1797
Inscription: Lun Jan 08, 2007 21:48

Message le Lun Jan 29, 2007 17:26

Sans quoi, exactement ?

J'ai essayé ça aussi : `".($paysAncien+1)."`mais ça ne fonctionne pas non plus, ça n'update plus rien.

Qu'est-ce qui ne va pas dans la syntaxe de cet UPDATE ?

Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités