pb de mis a jour sql

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : pb de mis a jour sql

Re: pb de mis a jour sql

par jojolapine » 11 janv. 2011, 15:11

Sauf qu'il y a encore un problème....
Le cast en (string) ne sert à rien ici...
Il faut par contre protéger tes variables contre les injections SQL...
Le cast est utile pour les variables de int, float, bool...
Mais pour d'autre types il faut passer par des fonctions d'échappements dédiées (mysql_real_escape_string()) par exemple...

Re: pb de mis a jour sql

par joejac » 11 janv. 2011, 15:03

Effectivement avec un peu de lecture ... et de traduction ! ça marche beaucoup mieux

et voila !
// Update les valeurs du fichier dans la base SQL   

$query="UPDATE articles 
        SET desc_courte='".(string)$data[1]."', 
        prix_public_ht = ".(double)$data[2].", 
        paa_ht = ".(double)$data[3]." 
        WHERE ref_article = '".mysql_real_escape_string($data[0])."'";
merci pour ton aide ! =D>

Re: pb de mis a jour sql

par jojolapine » 11 janv. 2011, 14:31

Et si tu essayais de comprendre ce que j'avais fait?
=> http://www.php.net/manual/en/language.t ... ypecasting

Re: pb de mis a jour sql

par joejac » 11 janv. 2011, 14:28

alors j'ai pas fait compliqué j'ai rajouté brute de fonderie les éléments que je souhaite metre à jour voici le code :
<?php

// connection à la base

mysql_connect('localhost','root','')or die("Impossible de se connecter à la base de données"); 
mysql_select_db('lmb') or die("ça marche toujours pas");

// Lecture du fichier Test.csv    "ref_article";"prix_public_ht";"prix_achat_ht"

$row = 1;
  $fp = fopen ("test.csv","r");
  while ($data = fgetcsv ($fp, 1000, ";")) 
    {
    $num = count ($data);

// Update les valeurs du fichier dans la base SQL   

$query="UPDATE articles 
        SET desc_courte=".(double)$data[1].",  
            prix_public_ht = ".(double)$data[2].",  
            paa_ht = ".(double)$data[3]." 
        WHERE ref_article = '".mysql_real_escape_string($data[0])."'";

mysql_query($query) or die("Erreur de requête : ".$query);

ECHO $data[0], " -> ", $data[1]," - ", $data[2]," - ", $data[3],"<br>";
 
$row++;
    }
ECHO "Tout le tarif est à jours";
  fclose ($fp);

mysql_close(); 

?>
et voici le CSV
"A-000000-00012";"Plafonnier 220V 13W 2700K page 136";"7.03";"4.1"
"A-000000-00013";"Plafonnier 220V 13W 6400K page 136";"7.03";"4.1"
"A-000000-00014";"Plafonnier 220V 21W 2700K page 136";"9.43";"5.5"
"A-000000-00015";"Plafonnier 220V 21W 6400K page 136";"9.43";"5.5"
"A-000000-00016";"Plafonnier page 139";"12.35";"7.2"
"A-000000-00017";"Plafonnier page 139";"9.95";"5.8"
"A-000000-00018";"Plafonnier page 141";"17.83";"10.4"

j'ai pas réussi à inséré un "printscreen" de PMA alors j'ai copié ce qui me semble utile :
Champ Type Interclassement
ref_article varchar(32) latin1_swedish_ci
ref_oem varchar(64) latin1_swedish_ci
ref_interne varchar(32) latin1_swedish_ci
lib_article varchar(250) latin1_swedish_ci
lib_ticket varchar(64) latin1_swedish_ci
desc_courte mediumblob BINARY
desc_longue mediumblob BINARY
ref_art_categ varchar(32) latin1_swedish_ci

Le script fonction il ne me renvoie pas d'erreur mais dans le champ desc_courte j'ai 0 au lieu d'un texte.

Re: pb de mis a jour sql

par stealth35 » 11 janv. 2011, 14:17

j'ai MySQL: 5.0.67
j'ai pas demandé la version de mysql :mrgreen:

Re: pb de mis a jour sql

par jojolapine » 11 janv. 2011, 14:02

... ? oO

Je vais chercher ma boule de cristal! #-o

Tu as essayé quoi comme code?
Quelle est la structure de tes données (csv+sql)? quelles sont les erreurs?

Re: pb de mis a jour sql

par joejac » 11 janv. 2011, 13:59

Re bonjour,

Petite question si je veux mettre à jours du texte ou un utre style de variable quel est la syntax

Merci d'avance

Re: pb de mis a jour sql

par joejac » 11 janv. 2011, 13:06

j'ai MySQL: 5.0.67

Re: pb de mis a jour sql

par stealth35 » 11 janv. 2011, 12:52

yes ça marche !!!!

merci, c'est super je cherche depuis 2 jours !!

Je vais étudié de près cette fonction

encore merci
t'as quelle version de PHP ?, t'as PDO mysql ? ou mysqli ?

Re: pb de mis a jour sql

par joejac » 11 janv. 2011, 12:50

yes ça marche !!!!

merci, c'est super je cherche depuis 2 jours !!

Je vais étudié de près cette fonction

encore merci

Re: pb de mis a jour sql

par jojolapine » 11 janv. 2011, 12:38

Bonjour,
Essaye ce code pour voir:
<?php

// connection à la base

mysql_connect('localhost','root','')or die("Impossible de se connecter à la base de données"); 
mysql_select_db('lmb') or die("ça marche toujours pas");

// Lecture du fichier Test.csv    "ref_article";"prix_public_ht";"prix_achat_ht"

$row = 1;
  $fp = fopen ("test.csv","r");
  while ($data = fgetcsv ($fp, 1000, ";")) 
    {
    $num = count ($data);
// Update les valeurs du fichier dans la base SQL   

$query="UPDATE articles 
            SET prix_public_ht = ".(double)$data[1]."
            WHERE ref_article = '".mysql_real_escape_string($data[0])."'";

mysql_query($query) or die("Erreur de requête : ".$query);

ECHO $data[0], " ", $data[1],"<br>";
 
$row++;
    }
  fclose ($fp);

mysql_close(); 

?>
 

Re: pb de mis a jour sql

par joejac » 11 janv. 2011, 12:29

J'ai corrigé comme ceci, au passage c'est très pratique les balises.
Maintenant il reconnait $data mais ma base reste inchangée...
<?php

// connection à la base

@mysql_connect('localhost','root','')or die("Impossible de se connecter à la base de données"); 
@mysql_select_db('lmb') or die("ça marche toujours pas");

// Lecture du fichier Test.csv    "ref_article";"prix_public_ht";"prix_achat_ht"

$row = 1;
  $fp = fopen ("test.csv","r");
  while ($data = fgetcsv ($fp, 1000, ";")) 
    {
    $num = count ($data);
// Update les valeurs du fichier dans la base SQL   

$query="UPDATE articles 
            SET prix_public_ht = $data[1]
            WHERE ref_article = $data[0]";

mysql_query($query) ;

ECHO $data[0], " ", $data[1],"<br>";
 
$row++;
    }
  fclose ($fp);

mysql_close(); 

?>

Re: pb de mis a jour sql

par jojolapine » 11 janv. 2011, 12:15

fait un echo de ta requête et tu verras ton erreur!
Et au passge utilise les balises
 pour posté du code, ça te montrera en partie tes erreurs avec la coloration syntaxique!

Re: pb de mis a jour sql

par joejac » 11 janv. 2011, 12:13

j'ai modifié comme suis :

// Update les valeurs du fichier dans la base SQL

$query='UPDATE articles
SET prix_public_ht = $data[1]
WHERE ref_article = $data[0]';

mysql_query($query) ;

mais ça marche toujours pas :cry:

Re: pb de mis a jour sql

par jojolapine » 11 janv. 2011, 11:37

J'ai cru voir un .... Ah tiens? Non en fait, il n'y a pas de mysql_query() oO
;)