salut je ne peux pas mettre à jour une table qui a des clés étrangères sur elle. dans ce tableau, au lieu d'afficher les clés primaires de la clé étrangère, je choisis d'afficher leur nom: c'est un schéma simple: Voici mes tables étrangères:mise à jour simple de la clé étrangère dans le site Web PHP mysql
Taille Tableau:
sId sName
1 1x1
2 2x2
Marque Tableau:
bId bName
1 brand1
2 brand2
Tableau fournisseur:
sId sName
1 supp1
2 supp2
Alors voici mon tableau d'entrepôt en utilisant une instruction de jointure:
pId pName pSize pBrand pSupplier
1 prod1 1x1 brand1 supp1
2 prod2 2x2 brand2 supp2
ici est mon édition sous forme de php et mysql:
########### EDIT PRODUCT
if(isset($_POST['editproduct'])){
$product_id=$_POST["product_code"];
$product_name=$_POST["product_name"];
$size_name=$_POST["size_name"];
$brand_name=$_POST["brand_name"];
$supplier_name=$_POST["supplier_name"];
$sql = "UPDATE warehouse SET
product_name='$product_name'
,size_id='$size_id'
,brand_id='$brand_id'
,supplier_id='$supplier_id'
WHERE
product_code='$product_code'";
$result=mysql_query($sql,$connection) or die(mysql_error());
header("location: warehouse.php");
} ?>
la chose étrange est que le premier essai je modifier la table, il ne l'erreur pas . mais pour la deuxième fois, il me demande l'erreur de la contrainte de clé étrangère, :(
J'ai le sentiment que parce que j'utilise une déclaration de jointure dans ma table d'entrepôt, cela entre en conflit avec ma requête de mise à jour puisque celle que je mets à jour est la clé primaire et i afficher uniquement son nom.
[Soupir, php.] (http://www.reddit.com/r/programming/comments/dst56/today_i_learned_about_php_variable_variables/c12np38) Pour commencer, vous avez une injection SQL flagrante dans votre code. – wuputah
je suis désolé mais je n'ai pas d'éducation formelle en sql. – user480359