[mysql] Requete possible ?

Requete possible ? [mysql] - SQL/NoSQL - Programmation

Marsh Posté le 06-06-2007 à 17:09:23    

Salut,
 
 
 
J'ai un doute sur la possibilité d'une telle requete, donc j'ai besoin d'un peu d'aide.
 
Je passe à ma methode qui contient ma requête 3 variables : $table qui contient la table à update, $ref qui est la nouvelle valeur à mettre à jour et $lref l'ancienne valeur qui doit être écrasée.
 
Dans mon UPDATE je lui passe le nom de la table à mettre à jour dans une variable parcequ'avant de faire la requête je travaille sur un formulaire qui peut appeler une dizaine de tables différentes.
 
Le problème est : Comment recuperer le nom du champ de ma table à mettre à jour ?
 
 
Voici la requete : $sql = "UPDATE `$table` SET libelle_% = '$ref' WHERE libelle_% = '$lref'";
 
 
Evidemment ca ne fonctionne pas. En fait le 2e champ de chaque table s'appelle "libelle_quelquechose" et c'est dans celui là à chaque fois que j'ai une valeur à mettre à jour.
 
 
Comment faire ?  :??:  
 
 
 
A vous.


---------------
~ Msi z270 Gaming Pro Carbon | i7 7700K @4.8Ghz + Dark Rock Pro4 | 16Go Corsair DDR4 2400 | RTX 2080 Ti | OS SSD 840 + Jeux Raid0 SSD 850 + 2*2To Seagate | Cooler Master Cosmos 1000 + Corsair CMPSU-620HX
Reply

Marsh Posté le 06-06-2007 à 17:09:23   

Reply

Marsh Posté le 06-06-2007 à 17:52:30    

Avant cette requete j'ai rajouté une autre methode qui effectue la requete "DESCRIBE" sur la table selectionnée, comme ca je recupere les champs de la table et je renvoi le bon pour ma 2e requete.
 
Voila ce que donne la requete :
 
$sql = "UPDATE `$table` SET '$champ' = '$ref' WHERE '$champ' = '$lref'";
 
 
Sauf que j'obtiens l'erreur suivante :
 
 
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''libelle_agence' = 'toto' WHERE 'libelle_agence' = 'Paris'' at line 1

Reply

Marsh Posté le 06-06-2007 à 17:57:17    

`$champ` (comme pour la table) et pas '$champ' (comme pour les chaines de caractéres)
 
Si tu n'utilises pas de mot réservé de mysql, qu'il n'y a pas de caractéres spéciaux dans le nom des champs et que les noms respectent les régles de base (par exemple pas d'espace dans le nom) alors tu n'as même pas besoin des " ` ".

Reply

Marsh Posté le 06-06-2007 à 17:59:16    

$sql = "UPDATE ".$table." SET ".$champ." = '".$ref."' WHERE ".$champ." = '".$lref."'";

Reply

Marsh Posté le 06-06-2007 à 18:29:24    

Nikel merci ca fonctionne avec `$champ`.
 
Faut que je fasse des pauses de tps en tps :p

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed