5568 sujets

Sémantique web et HTML

Bonjour
Ma requête Mysql ne fonctionne pas
 UPDATE........ WHERE equipe_nom=\''.$_POST['equipe_nom'].'\'');


alors que

<?php echo $_POST['equipe_nom']; ?>
me renvoie bien le nom adressé par le formulaire.

est-ce que ma syntaxe est juste ( \''. ) ? La requête fonctionne bien avec une variable nombre mais pas avec un nom

Merci
Bonjour,
attention aux guillemets simples et doubles emboîtés ...
mon conseil : utiliser deux lignes

$equipe_nom = $_POST['equipe_nom'];
... WHERE equipe_nom = '$equipe_nom' ";

merci, mais ta proposition me renvoie un message erreur de syntaxe. j'ai essayé beaucoup de formules... guillemets simples et doubles emboîtés et \
seule
WHERE equipe_nom=\''.$_POST['equipe_nom'].'\'');

passe bien sans erreur mais ne met pas à jour la base de données
Il faudrait avoir le code, mon exemple n'a pas d'erreur de syntaxe, je l'utilise très souvent, ais je n'ai pas mis le début de la requête, j'ai supposé qu'elle était entourée de guillemets doubles, montre tes essais, je suppose que tu définis une $query, ou autre nom, qui contient la requête ?
tu peux toujours afficher la requête pour voir ce qu'elle contient, et la lancer dans PHPMyAdmin, tu auras des infos sur des erreurs éventuelles,
sans code, difficile d'analyser, mais je pense qu'il s'agit d'une affaire de guillemets

mon exemple :
$equipe_nom = $_POST['equipe_nom'];
$query = "UPDATE table SET champ = '$variable' WHERE equipe_nom = '$equipe_nom' ";
ou directement, avec PDO :

$req = $conn->prepare("UPDATE table SET champ = '$variable' WHERE equipe_nom = '$equipe_nom' ");
j'utilise PDO.
j'ai renommé le titre de la colonne pour éviter toute confusion.
Mon code fonctionne avec
$req = $bdd->prepare('UPDATE table SET champ = ........
          WHERE id= 6 ');


il ne fonctionne pas avec
WHERE equipe = \''.$_POST['equipe_nom'].'\'');
mais ne signale pas d'erreur
il ne fonctionne pas avec
WHERE equipe = '$equipe_nom' ');
: signale erreur
il ne fonctionne pas avec
WHERE equipe = "$equipe_nom" ');
: ne signale pas d'erreur

les instructions
echo $_POST['equipe_nom'];

echo $equipe_nom;

me renvoient bien le nom de l'équipe
Salut,
Sinon, tu peux utiliser les requêtes préparées :

$req = $bdd->prepare('UPDATE ........ WHERE equipe_nom=?');
$req->execute(array("'".$_POST['equipe_nom']."'"));
var_dump($req->errorInfo()); //Va afficher l'erreur dans ta requête s'il y en a une

Ça donne quoi?
Sinon rien à voir, mais tu devrais contrôler ce qu'il y a dans $_POST (avec htmlspecialchars entre autres) pour éviter des problèmes de sécurité...
Merci à vous deux. Pour le moment je m'en tire avec l'utilisation de la variable id. Cela fonctionne.
$req = $bdd->prepare('UPDATE equipes SET participation....
 WHERE  (id = \''.$_POST['id'].'\')');

Quand mon programme sera terminé je rechercherai pourquoi cela ne fonctionnait pas