Probleme requete sql en php

cs_davidmv Messages postés 3 Date d'inscription lundi 13 février 2012 Statut Membre Dernière intervention 23 mai 2012 - 22 mai 2012 à 18:29
abdoulax Messages postés 875 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 22 juin 2012 - 23 mai 2012 à 11:57
Bonjour à tous,
Je vous explique mon problème :
Le code ci-dessous doit update des tarifs à une certaine id :
Le problème est pour une id='2768', il va update les id '27681' etc, tout ce qui commence par 2768.
Le champ id est dans ma table est en int (10) NOT NULL auto_increment.
Si vous-avez déjà rencontré ce problème ou une erreur de code vous parait suspect merci de votre aide.

function updatePrix2($idprix,$date1,$date2,$prix,$remise,$prixnetproprio,$cinqpc,$prixbrutproprio,$menage,$marge,$gestion_deduire,$reduc_proprio,$gestion_suppl)
{
$db = new DbMysql(); //creation d'une instance de la classe DbMysql
  if($db->connect() == 0) die($db->Error); //connextion � la base
  $sql="update prix set dated='".$date1."',datef='".$date2."',prix='".$prix."',remise='".$remise."',prix_net_proprio='".$prixnetproprio."',5pourcent='".$cinqpc."',prix_brut_proprio='".$prixbrutproprio."',menage='".$menage."',marge='".$marge."',gestion_deduire='".$gestion_deduire."',reduc_proprio='".$reduc_proprio."',gestion_suppl='".$gestion_suppl."' where idprix='$idprix'";
   if($db->query($sql) == 0)die($db->Error); 
   $db->free();
  $db->close();
}

3 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
22 mai 2012 à 18:58
Bonjour,

Si ton ID est numérique, alors pourquoi mettre des ' ?
'$idprix'

Sinon, dans ton cas, afin de faciliter la lecture de ta requête, regardes la fonction sprintf.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
cs_davidmv Messages postés 3 Date d'inscription lundi 13 février 2012 Statut Membre Dernière intervention 23 mai 2012
23 mai 2012 à 09:14
Merci pour la réponse je vais enlever les quotes en effet inutile pour un entier, et je vais me pencher sur les sprintf
0
abdoulax Messages postés 875 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 22 juin 2012 1
23 mai 2012 à 11:57
Les quotes sur un integer ne pose aucun problème, c'est même souvent utilisé dans les framework... C'est bisard car ton code semble bon. Tu devrais afficher ta requête et l'executer manuellement avec ton client mysql. Aussi essaie de faire un select * from prix where idprix='2768'; ....
0
Rejoignez-nous